我正在尝试使用此repo在Dotcloud上部署Wordpress,但日志中出现错误:
18:59:19: [www.0] Running postinstall script...
18:59:21: [www.0] PHP Fatal error: Call-time pass-by-reference has been removed in /home/dotcloud/rsync-1353715101184/dotcloud-scripts/feed-wp-config.php on line 86
查看line 86 in feed-wp-config.php,内容为:
$content = preg_replace('/(define\(\'' . $property . '\', \')(.*)(\'\);)/', '${1}' . $value . '${3}', $content, -1, &$count);
当我进入Wordpress开始页面时,它说:“似乎没有wp-config.php文件。在我们开始之前我需要这个。”
我cross-posted this to the repo's Github issue tracker,但由于还没有回复我在这里发布,希望有人知道答案。
答案 0 :(得分:13)
仅使用&$count
替换$count
。 &
表示您希望变量通过引用传递,而不是值:
函数调用上没有参考符号 - 仅在函数上 定义。单独的函数定义足以正确传递 参考的论点。从PHP 5.3.0开始,您将收到警告 当你使用& amp;时,不推荐使用“call-time pass-by-reference” 在foo(& $ a);。
因此,如果要通过引用函数来传递变量,则应在函数声明中使用&
:
现在应该这样做:
// right
function foo(&$var) {
...
}
foo($foo);
但不是这样(因为你收到这个警告):
function foo($var) {
...
}
foo(&$foo); // <--- wrong
答案 1 :(得分:3)
删除&amp;从该行末尾的&$count
开始签名。
请记住,这是wordpress中的核心攻击,在更新时会丢失。。