4

このリポジトリを使用して 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 ファイルがないようです。開始する前にこれが必要です。」と表示されます。

これをレポの Github issue trackerに相互投稿しま​​したが、まだ応答がないため、誰かが答えを知っていることを期待してここにも投稿します。

4

2 に答える 2

13

&$countだけに置き換え $countます。&つまり、値ではなく参照によって変数を渡す必要があります。

ドキュメンテーションによると

関数呼び出しには参照記号はありません。関数定義のみです。参照によって引数を正しく渡すには、関数定義だけで十分です。PHP 5.3.0 以降、foo(&$a); で & を使用すると、「call-time pass-by-reference」は推奨されないという警告が表示されます。

したがって、関数への参照によって変数を渡したい場合は&、関数宣言で使用する必要があります。

これは次のように行う必要があります。

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

foo($foo);

しかし、そうではありません(この警告が表示されるため):

function foo($var) {
...
}

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

&$count行末の& 記号を削除します。

これはワードプレスのコア ハックであり、更新時に失われることに注意してください。.

于 2012-11-25T17:51:52.737 に答える