2016-06-19 6 views
1

&が、関数ヘッダーのパラメータ名に付加されているのはなぜですか?論理的には期待されるように、呼び出し元スコープの変数はありません。PHP参考文献 - &

<?php 

function func(&$par) 
{ 
    $par++; 
} 

$var=1; 
func($var); 
print $var; //prints 2 

?> 

同じことは、ありません($値として& $配列)

あなたは( & $値として$配列)を書くforeachのためのカッコ内目撃されています。たとえば

答えて

0

これはPHP自体からの回答です:

関数呼び出しの参照符号 - 関数 の定義のみ。関数の定義だけでは、引数を参照によって正しく に正しく渡すことができます。ここ

詳細:あなたが参照することにより、 `$の[値]を変更するため

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

+0

はこの答えに追加するには、あなたが'決して接触している($値として&$配列) ''ではありません$ array'、この変数は読み込むだけです。 – matiaslauriti

+0

単に参照することによって割り当てる場合、我々は、例えば書き込み、書き込みができる:$ VAR1 = 0。 $ var2の= &$var1; $ var2で++:$ var2のエコー。 // 2を印刷する – Searcherer

関連する問題