2016-07-28 9 views
0

PHPでの参照についてこの記事を読んでいます。PHP:参照の割り当て、受け渡し、返却

PHP References: How They Work, and When to Use Them

私はその構文を知っているが、私はPHPでの参照を使用するときには少し混乱しています。あなたは、私が参考文献を適用することができる実際の世界の例を私に与えることができますか?参照を使用する必要があるのでしょうか、あるいは単に通常の形式の関数を使用できますか?参考文献の真の目的は何ですか?

私はこのことを私が容易に理解できるように説明することができますか?

答えて

0

参照を使用する理由は、たとえば関数に渡された値を変更するためです。

ここで私が参照して上記第二の例では、同じ結果を取得したい場合は今、私はこのようにそれを行うだろう例

$nameOfUser = "Mr. Jones"; 

function changeName($name) { // Not passing the value by reference 
    $name = "Foo"; 

    return $name; 
} 

changeName($nameOfUser); 

/** 
* The echo below will output "Mr. Jones" since the changeName() function 
* doesn't really change the value of the variable we pass in, since we aren't 
* passing in a variable by reference. We are only passing in the value of the 
* $nameOfUser variable, which in this case is "Mr. Jones". 
*/ 
echo $nameOfUser; 

$nameOfUser = changeName($nameOfUser); 

/** 
* This echo below will however output "Foo" since we assigned the returning 
* value of the changeName() function to the variable $nameOfUser 
*/ 
echo $nameOfUser; 

です:

$nameOfUser = "Mr. Jones"; 

function changeName(&$name) { // Passing the value by reference 
    $name = "Foo"; 

    return $name; 
} 

changeName($nameOfUser); 

/** 
* The echo below will output "Foo" since the changeName() function 
* changed the value of the variable we passed in by reference 
*/ 
echo $nameOfUser; 

私は私の例があったことを願っています私はあなたに参照の仕組みがどのように優れているかを洞察しました。

私は個人的に値を返して、それを設定する方が良いと思うので、参照が必要な場合の例はありません。関数に渡された変数を変更すると、その関数を使用するユーザーが混乱する可能性があります。

+0

- リファレンスを使用するとメリットはありますか? –

+0

唯一の利点は、PHPが最初のものへのポインタを使用しているので、別の変数を作成する必要がないことです。しかし、私はあなたがパフォーマンス上の違いを気づかないと思います。私はあなたが参照を使用する場合、コードを理解しにくくするだけだと思います。 – Marwzoor

+0

なぜプログラマーを混乱させてしまうのであればPHPに参照を入れるのはなぜですか? –

関連する問題