【问题标题】:str_replace - Only variables can be passed by reference [duplicate]str_replace - 只有变量可以通过引用传递[重复]
【发布时间】:2015-12-23 14:37:54
【问题描述】:

是什么导致了这个错误?

致命错误/var/www/application 中只能通过引用传递变量 /lib/testing/imageMaker/imageMaker.php24

$x=str_replace ($s1,'',$s2);
$y=str_replace ($s1,'',$s2, 1 ); //Line 24

【问题讨论】:

  • 也许可以查看手册。计数参数是通过引用
  • 它在哪里说通过引用传递?是否由& 指示?
  • 阅读说明:“如果通过,这将设置为执行的替换次数。”

标签: php


【解决方案1】:

如此处所述:PHP Manual: str_replace

count

如果通过,这将设置为执行的替换次数。

您不能传递 literals 而是传递参考:

$x=str_replace ($s1,'',$s2);
$y=str_replace ($s1,'',$s2, $count);
echo $count;

【讨论】:

  • 我有一段时间没有使用 PHP,但您的答案也确实通过了 $count 的引用。您需要使用str_replace($s1, '', $s2, &$count); 来传递对$count 变量的引用,而不是$count 的字面值。
  • @SpencerDoak 啊,很好。有那么一会儿,我有点不知所措;)
  • 斯宾塞弄错了。尽管有名称,但您在传递变量时并未定义引用。这样做会在 PHP 5.4 中产生致命错误,并在 5.3 中产生警告。你应该把它改回$count。阅读本页顶部附近的注释:php.net/manual/en/language.references.pass.php
  • @rjdown 那么按照我之前写的方式写它安全吗?
  • 是的,这是唯一的办法。
猜你喜欢
  • 2011-08-16
  • 2011-02-27
  • 2013-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-27
  • 2017-03-27
  • 1970-01-01
相关资源
最近更新 更多