Strict Standards

#1 枝头的鱼

今天搜索之后出来了这个:Strict Standards: Only variables should be passed by reference in /var/www/html/cms/SpeedPHP/Core/spModel.php on line 436。请问这个怎么解决啊???

2012-07-04 10:26:57

#2 jake

帮你Google了一下,在php.ini中设置

error_reporting = E_ALL

就行。建议以后遇到问题最好先搜索。

2012-07-04 10:34:17

#3 枝头的鱼

jake 发表于 2012-7-4 10:34
帮你Google了一下,在php.ini中设置

error_reporting = E_ALL
改了也不行啊,在网上看过了,这行代码需要改吗?
on line 436:
$total_count = array_pop( array_pop( $this->model_obj->findSql("SELECT COUNT({$this->model_obj->pk}) as sp_counter FROM ($conditions) sp_tmp_table_pager1") ) );

2012-07-04 11:06:18

#4 jake

改了要重启服务器。

或改成

error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR

这样是没问题,目前一般框架都很难支持strict模式,所以只能收窄错误机制。

目前开发也不建议用strict模式。

2012-07-04 11:25:59

#5 枝头的鱼

jake 发表于 2012-7-4 11:25
改了要重启服务器。

或改成
还是不行啊,也重启了。别的页面也有用到这行代码的就没事,为什么这个页面就不行呢,头痛啊。。。

2012-07-04 11:50:24

#6 jake

枝头的鱼 发表于 2012-7-4 11:50
还是不行啊,也重启了。别的页面也有用到这行代码的就没事,为什么这个页面就不行呢,头痛啊。。。
...
这样说的话,就和这行代码没关系了。你看看别的代码有没有问题?

2012-07-04 12:00:43

#7 枝头的鱼

jake 发表于 2012-7-4 12:00
这样说的话,就和这行代码没关系了。你看看别的代码有没有问题?
好了,网上有这样的解释,把那句话拆开,就是要先定义变量,我改成了这样:
$addError = $this->model_obj->findSql("SELECT COUNT({$this->model_obj->pk}) as sp_counter FROM ($conditions) sp_tmp_table_pager1");
$addError2 = array_pop( $addError );
$total_count = array_pop( $addError2 );
然后就好了,

2012-07-04 12:19:27

#8 jake

mark,记录一下。

本帖转移到意见反馈区

2012-07-04 12:29:23