最近在开发一款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 );