2009-02-28 25 views
18

簡単に簡単に質問できます。私はかなりPHPの新しいといくつかの既存のコードを見ています。私はGoogle上の私の質問への答えを見つけることを試みたが、役に立たない。パラメータ名の前に '&'を付けてください。

誰かがパラメータ$ varはありません前に、私は何& '記号を教えてくださいことはできますか?

function setdefault(&$var, $default="") 
{ 
    if (! isset($var)) 
    { 
    $var = $default; 
    } 
} 

答えて

46

参照渡し。

Huh? 参照渡しとは、値の代わりに変数のアドレスを渡すことを意味します。基本的には、変数へのポインタを作成しています。

http://us.php.net/language.references.pass

+6

+1 **のために**、私は笑った –

1

&手段参照渡し。そのコードが何をするかは、関数に渡された変数が実際にグローバルスコープ内に存在するかどうかをチェックすることです。 &がなければ、最初に変数のコピーを取ろうとします。存在しなければエラーが発生します。

19

これは、関数ではなく、値のコピーの引数$varの元の値への参照を、取得することを意味します。

例:

function add(&$num) { $num++; } 

$number = 0; 
add($number); 
echo $number; // this outputs "1" 

add()場合は、関数のシグネチャにアンパサンド記号を持っていないだろう、エコーは出力が「0」の元の値が変更されなかった、になるため。

2

これは、変数http://ca3.php.net/language.references.passによって変数を渡すことを意味します。単にこれは、関数が変数のコピーではなく実際の変数を取得していることを意味します。関数内でその変数に加えた変更は、呼び出し元に反映されます。

関連する問題