【发布时间】:2016-09-30 06:02:39
【问题描述】:
我想编写一个函数,允许我用数组中的连续值替换字符串中重复的标记,以便 WHERE name = ? and age ?、array('joe', 32) 变为 Where name = joe and age = 32。 (我知道变量绑定不应该“手动”完成;我正在尝试对传递给雄辩的 DB::select 语句的参数进行故障排除)。
这是我写的:
function str_replace_array($search, array $replace, $subject ) {
foreach ( $replace as $replacement ) {
$subject = str_replace($search, $replacement,$subject,1);
}
return $subject;
}
但是 php 5.6.20 给了我这个错误:
$ php -l str_replace_array.php
PHP Fatal error: Only variables can be passed by reference in str_replace_array.php on line 5
Errors parsing str_replace_array.php
我知道它是函数str_replace(),因为用虚拟函数替换它可以让它通过语法检查。虽然,没有一个变量与受让人和参数具有相同的变量——但是有什么表明这在这个函数中不起作用吗?
manual entry 并不表示任何参数都是通过引用传递的;它表示一个返回值,所有的例子都显示了赋值。
这里有什么问题?
【问题讨论】:
标签: php