首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP:在str_replace()中"...变量可以通过引用传递“?

PHP:在str_replace()中"...变量可以通过引用传递“?
EN

Stack Overflow用户
提问于 2011-04-30 22:25:40
回答 2查看 15.1K关注 0票数 23

我创建了一个函数,根据我在另一个StackOverflow question中找到的内容,打印一个包含变量的prepared-statement-sql-string。

下面是我的代码:

代码语言:javascript
复制
foreach($params as $idx => $param) {
    if ($idx == 0) continue;
    $sql = str_replace('?', "'" . $param . "'", $sql, 1);
}
printError($sql);

当我运行下面的命令时,我得到的是:第3行的Fatal error: Only variables can be passed by reference

$sql = preg_replace('/\?/', "'" . $param . "'", $sql, 1);

对于第三行,它工作得很好。

知道为什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-30 22:30:19

最后一个参数count是通过引用传递的。您可以在http://us.php.net/str_replace的描述中看到这一点,在该变量前面有一个&

这意味着您不能在那里使用文字1。你必须这样做:

代码语言:javascript
复制
$sql = str_replace('?', "'" . $param . "'", $sql, $count);
echo $count;

现在,您已经在屏幕上显示了替换了多少个实例。

票数 40
EN

Stack Overflow用户

发布于 2011-04-30 22:28:54

查看preg_replacestr_replace的文档,您就会明白其中的原因。str_replace的第四个参数必须通过引用传递,但preg_replace并非如此。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5842366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档