Parse Error在Jquery和PHP中转义PHP
解析错误:语法错误,意外的''(T_ENCAPSED_AND_WHITESPACE),期望标识符(T_STRING)或变量(T_VARIABLE)或编号(T_NUM_STRING)在...
这是我得到的错误
<?php
function my_custom_js() {
echo " <script>" ;
echo " jQuery(document).ready(function(){
jQuery('#secondary-front .first h3').addClass('
<?php $options = get_option('mytheme_theme_options');
if(!empty($options['first_widget_icon'])) echo $options['first_widget_icon']?> ');
jQuery('#secondary-front .second h3').addClass('<?php $options = get_option('mytheme_theme_options');
if (!empty($options['second_widget_icon'])) echo $options['second_widget_icon'];?>');
jQuery('#secondary-front .third h3').addClass('<?php $options = get_option('mytheme_theme_options');
if (!empty($options['third_widget_icon'])) echo $options['third_widget_icon'];?>');
});
";
echo "</script> ";
}
add_action('wp_head', 'my_custom_js');
?>
我不能让这段代码正确地逃脱,我有php> jquery> php
问题是你的引号( "
)并不是双方都认真考虑的,也就是说,当我去研究这个问题的时候,我注意到你的代码有更糟糕的事情,所以我已经完全为你重写了它:
<?php
function my_custom_js() {
$options = get_option('mytheme_theme_options');
echo "<script>
jQuery(document).ready(function(){
jQuery('#secondary-front .first h3').addClass('" . ($options['first_widget_icon'] ?: NULL) . "');
jQuery('#secondary-front .second h3').addClass('" . ($options['second_widget_icon'] ?: NULL) . "');
jQuery('#secondary-front .third h3').addClass('" . ($options['third_widget_icon'] ?: NULL) . "');
});
</script>";
}
add_action('wp_head', 'my_custom_js');
?>
我做的一件事是移动$options = get_option('mytheme_theme_options');
到顶部。 我也删除了重复的电话。 此外,这具有可以在1语句中完成echo
巧妙效果,同时巧妙地使用三元运算符。
echo ($something ?: NULL);
意味着如果存在$ something,则回显它,否则不回应。
使用三字运算符和?:
简写符号需要PHP> = 5.3.0
对于低于此的版本,只需填写中间部分,即:
// PHP >= 5.3.0
($options['first_widget_icon'] ?: NULL)
// PHP < 5.3.0
($options['first_widget_icon'] ? $options['first_widget_icon'] : NULL)
当然,代码可能需要根据自己的喜好进行调整,但它应该是改进的基础。
链接地址: http://www.djcxy.com/p/12045.html