4

我正在尝试使用此 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

查看feed-wp-config.php 中的第 86 行,它显示:

$content = preg_replace('/(define\(\'' . $property . '\', \')(.*)(\'\);)/', '${1}' . $value . '${3}', $content, -1, &$count);

当我进入 Wordpress 开始页面时,它说:“似乎没有 wp-config.php 文件。在我们开始之前我需要这个。”

我已将其交叉发布到 repo 的 Github 问题跟踪器,但由于尚未收到回复,我也将其发布在这里,希望有人知道答案。

4

2 回答 2

13

替换 &$count$count. &意味着您希望通过引用而不是值传递变量:

文档说

函数调用没有参考符号 - 仅在函数定义上。仅函数定义就足以通过引用正确传递参数。从 PHP 5.3.0 开始,当您在 foo(&$a); 中使用 & 时,您将收到一条警告说“调用时传递引用”已被弃用。

所以如果你想通过引用函数来传递变量,你应该&在函数声明中使用:

现在应该这样做:

// right
function foo(&$var) {
...
}

foo($foo);

但不是这样(当您收到此警告时):

function foo($var) {
...
}

foo(&$foo);   // <--- wrong
于 2012-11-25T17:53:26.543 回答
3

删除行&$count尾的 & 符号。

请记住,这是 wordpress 中的核心 hack,它会在更新时丢失。.

于 2012-11-25T17:51:52.737 回答