Strange error with PHP str_replace &$count argument


Strange error with PHP str_replace &$count argument

在Codeigniter控制器中,我有以下语句:

$txt=str_replace($t,$bracketd_var,$txt,&$count);

$count变量是通过引用传递的,我稍后在程序中使用它的更改值。

发现在使用PHP/5.3.3-7的新安装中,调用该控制器会在Firefox中给我这样的响应:

页面加载时重置了与服务器的连接

Apache访问日志中没有任何日志条目。在错误日志中,我注意到两个条目:【2013年8月26日星期一12:12:28】【通知】child pid 32048出口信号分段故障(11)〔Mon Aug 26 12:12:28 2013〕〔通知〕child pid 32082出口信号分段故障(11)

我尝试了其他几个浏览器,也尝试了Android和iPhone,但没有得到网页内容。

该语句不在所调用的函数中。在解析php文件的过程中,似乎出现了某种语法错误。

在搜索解决方案时,我发现这个str_replace语句没有给出错误:

$txt=str_replace($t,$bracketd_var,$txt,$count);

我确实临时做了更改,以便控制器的其他部分可以工作。但我需要使用一个经过多次更改的$count变量。有什么建议吗?

搜索时,我没有发现任何有用的错误。

不推荐使用通过引用的调用时间(在PHP>v5.3中,它在v5.4中被完全删除,此时它将引发致命错误)。您可以保持原样,$count应该更新,因为它由str_replace本身表示为引用。

参见http://php.net/manual/en/function.str-replace.php和http://php.net/manual/en/language.references.pass.php