解析错误:语法错误,意外'}'在Wordpress插件激活PHP 5.5

时间:2015-01-19 15:53:53

标签: php wordpress wordpress-plugin

我在尝试激活本地主机上的自定义插件时出现此错误,我有一个运行php 5.2的网站的工作副本,其中不会发生此问题。

本地主机: PHP版本5.5.14

这是令人讨厌的片段,在最后一行:

...
// Widget Backend
public function form( $instance ) {
    if ( isset( $instance[ 'title' ] ) ) {
        $title = $instance[ 'title' ];
    } else {
        $title = __( 'Delivery', 'delivery_widget_domain' );
    }

    if (isset($instance['sub_title'])){
        $sub_title = $instance['sub_title'];
    } else {
        $sub_title = __('escolha uma categoria', 'delivery_widget_domain');
    }
    // Widget admin form
    ?>
    <p>
        <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>
        <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
    </p>
    <p>
        <label for="<?php echo $this->get_field_id('sub_title'); ?>"><?php _e('Sub Título:'); ?></label>
        <input class="widefat" id="<?php echo $this->get_field_id('sub_title');?>" name="<?php echo $this->get_field_name('sub_title'); ?>" type="text" value="<?php echo esc_attr($sub_title); ?>" />
    </p>
  <?php
} // <----- this line
...

为什么会这样?

编辑:粘贴文件的bin,错误在第55行 http://pastebin.com/hHxnfsDA

error message ( ! ) Parse error: parse error in /.../widgets/delivery.php on line 55
Call Stack
#   Time    Memory  Function    Location
1   0.0013  391472  {main}( )   ../plugins.php:0
2   0.8336  47175152    plugin_sandbox_scrape( )    ../plugins.php:153
3   0.8337  47177328    include( '/.../plugins/portalsabores-plugin/portalsabores-plugin.php' ) ../plugins.php:151

和cli:

Parse error: syntax error, unexpected '}' in Sites/portalsabores/wp-content/plugins/portalsabores-plugin/widgets/delivery.php on line 55

2 个答案:

答案 0 :(得分:1)

如果要在文件的其余部分中打开<?php,则第一个PHP标记(Pastebin文件的第1行)需要为<?(而不是<?php)。 / p>

看看这个测试脚本:

<?
if (true)
{
    ?>
    <?
}

if (true)
{
    ?>
    <?php
}
?>

此测试脚本的在线评估:http://3v4l.org/tg8SU

当您使用<?第5行打开PHP代码时,PHP按预期工作,但它会在第12行检测到解析错误。

答案 1 :(得分:0)

如果您不在课堂内,请删除&#34; public&#34;来自&#34;公共职能形式&#34;。