第一个错误是
严格标准:只应在第196行的/home/.sites/143/site2/dispatch.php中通过引用传递变量
dispatch.php的第196行看起来像是
$table_name = array_pop(split('/',$controller));
第二个错误是
严格标准:只应在第18行的/home/.sites/143/site2/lib/referer.php中通过引用传递变量
referer.php的第18行看起来像这样
$agentInfo = array_pop($db->get('agencies','company_name,enabled',"id='$agent_id'"));
第三个错误是
严格标准:在978行的/home/.sites/143/site2/controllers/step4.php中,只能通过引用传递变量
step4.php的第978行看起来像是
$info = array_pop($this->db->get_records_by_sql($sql));
答案 0 :(得分:2)
在您的代码中,您将split()
函数的返回值传递给array_pop()
,但array_pop()
期望数组通过引用传递,而不是值。
您可以通过查看array_pop()
的文档中的功能说明来验证这一点:
mixed array_pop(array & $ array )
&
符号表示函数需要通过引用传递数组。
您可以使用数组变量来存储函数的输出来解决此问题。另请注意,split()
已弃用。请改用explode()
:
$array = explode('/', $controller);
$table_name = array_pop($array);
更改所有类似的事件。
答案 1 :(得分:0)
尝试将第一个更改为
$r=explode('/',$controller);
$table_name = array_pop($r);
然后
$q=$db->get('agencies','company_name,enabled',"id='$agent_id'");
$agentInfo = array_pop($q);
和
$q=$this->db->get_records_by_sql($sql);
$info = array_pop($q);
这是因为函数array_pop
返回对变量的引用,即最后一个数组成员。请注意这只是严格的警告,而不是错误。
答案 2 :(得分:0)
最佳的是,你应该继续使用5.2版本的项目,将来只需使用5.4。您发现了这些错误,但是您可以在将来发现任何其他错误,并且不是在项目中消除所有错误的好方法。
答案 3 :(得分:0)
错误意味着PHP函数array_pop()需要引用变量而不是值。看到小&在这个页面上的$ array参数旁边?
http://www.php.net/manual/es/function.array-pop.php
您可以使用以下内容解决此问题:
$data = $this->db->get_records_by_sql($sql);
$info = array_pop($data);