多说wordpress版Only variables should……报错处理

Posted by zhang on

最近在开发一款wordpress模板,但是因为比较懒,所以没有写commets.php,而采用『多说』来做评论。同时因为开启了debug模式,发现『多说』插件安装后会报一个notice的错。虽然不影响使用,但是作为一个有精神洁癖的我来说还是难以接受的。

报错如下:

Notice: Only variables should be passed by reference in /XXXXXXXX/wp-content/plugins/duoshuo/WordPress.php on line 443

问题会处在哪里呢?去指示的位置看了下,代码如下:

$script_name = array_pop( explode( ‘/’, $_SERVER[‘PHP_SELF’] ) );

通过度娘和谷哥,发现原来是在PhP 5.3以上版本的关于参数传递所引起的问题,应该也和配置有关。

因为array_pop的参数是引用传递的,PHP5.3以上默认只能传递具体的变量,而不能通过函数返回值.所以,我们只需要把这一条代码拆成两条就好了。

$script_name1 = explode(‘/’, string)
$script_name = array_pop( $script_name1 );