4

重複の可能性:
呼び出し時の参照渡しは廃止されました。

私のコハナ サイトでは、ライブラリ ファイルでこのアラートを取得します。

Call-time pass-by-reference has been deprecated

それは問題の行です:

call_user_func('Formo_'.$name.'::load', & $this);

どうすればこれを解決できますか?

4

2 に答える 2

7

&前を削除し$thisます。

PHP5 ではそれを追加する必要はありません。すべてのオブジェクトはデフォルトでオブジェクト識別子として渡されます。PHP 4 で必要だった参照渡しでこれを模倣する必要はありません。

于 2012-05-29T12:36:36.293 に答える
3

&php5 で参照によって変数を渡すには、関数宣言を行う必要があります。関数を呼び出しているときではありません。

function call_user_func($param1, &$param2) {
  // $param2 will be a reference
  // as mentioned by damianb though objects are by default references
  // http://php.net/manual/en/language.oop5.references.php

}

これを呼び出すときは、params を通常どおりに渡すだけで、param2 は参照によって渡されます。

http://php.net/manual/en/language.references.pass.php

上記のリンクは、エラーを明確に説明しています。

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

于 2012-05-29T12:40:33.820 に答える