10

検討:

public function & get($name, $default = null)

なぜ&ですか?

4

3 に答える 3

12

PHPの構文では、これは関数が値ではなく参照を返すことを意味します。例えば:

<?php
    $foo = 'foo';

    function & get_foo_ref ()
    {
        global $foo;
        return $foo;
    }

    // Get the reference to variable $foo stored into $bar
    $bar = & get_foo_ref();
    $bar = 'bar';

    echo $foo; // Outputs 'bar', since $bar references to $foo.
?>

&上記の例では、関数宣言からを削除すると、$foo変数には「foo」が含まれます。これは、参照ではなく値のみが関数から返されたためです。

これは、PHP4でより頻繁に使用されました。これは、オブジェクトを参照によって渡さず、代わりにクローンを作成したためです。このため、不要なクローン作成を回避するために、オブジェクト変数を参照で渡す必要がありました。これはPHP5には当てはまらず、この目的で参照を使用しないでください。

ただし、参照を返す関数も完全に役に立たないわけではありません(または、オブジェクト参照の置き換えに使用されない場合は悪い習慣です)。

たとえば、個人的には、関数に「パス」を渡すスクリプトを作成するときにそれらを使用しました。このスクリプトは、そのパス内の変数への参照を返し、値を設定して値を読み取ることができます。関数の再帰的な性質のため、参照を返す必要がありました。

rithiurによって

于 2010-03-19T14:54:16.263 に答える
11

これは、結果のコピーではなく、結果への参照を返すことを意味します。

PHPで参照を返す

于 2010-03-19T14:50:22.973 に答える
0

PHPの参照メタ文字による受け渡し。参照による受け渡しを参照してください

于 2010-03-19T14:51:26.593 に答える