2012-03-16 3 views
2

可変ポインタを受け取り、その値を変更する関数を呼び出すコードを記述する正しい方法は何ですか?OUT変数のパラメータとして使用する前にPHP変数を初期化する必要がありますか?

以下の作品が、私のIDEは$ vはそれが呼び出す関数が値を設定するまで、それは未定義の変数であることを不平を言う:

function foo(&$bar) { 
    $bar = 12345; 
} 

foo($v); 

は、私は私のIDEを満たすために最初のV $を初期化する必要がありますか?それとももっと良い方法がありますか?

$v = NULL; 
foo($v); 
+0

ちょうど不思議なことに、戻り値に対して可変参照を使用する正当な理由はありますか? – zzzzBov

+2

いいえ、あなたはそれを回避することはできません。関数呼び出しで未定義の変数を使用しています。警告は避けられない。 –

+0

@zzzzBov私たちのベンダーライブラリはこのパターンを使用しています(個人的に私はそれを嫌いです)。 –

答えて

4

関数を参照して変数を渡すときは、呼び出しコードの変数への参照が必要です。参照を持つには、変数が存在する必要があります。存在するには、変数を初期化する必要があります。

妥当なデフォルト値に設定することをお勧めします。合理的なデフォルト値がnullの場合は、nullを使用します。変数に保持する値のタイプに応じて、''または0を使用する方が適切な場合もあります。

関連する問題