2017-03-22 18 views

答えて

2

$source->next=$next; 

あなたはアドレスを割り当てているので、オブジェクトはデフォルトでアドレス$source->nextを指しています。

初めての場合var_dump($next->val) - >その値はまだ変更されていません。$next$source->nextに割り当てるだけです。

$source->next->valの値が次の行に変更されていますが、これは$nextを指しています。変数$nextの値が変更されます。

私は明確であり、これはあなたを助けるでしょう。

+0

はい、私はそのオブジェクトがデフォルトでアドレスによって渡されたことを知りませんでした...私はそれが別の変数に割り当てられていると思いました.. –

0

$source= (object) array('next'=>'hi', 'val'=>'bye'); 
$next= (object) array('val'=>'hello'); 
$source->next=$next; 
    var_dump($next->val);  // <----------------------- outputs "hello" 
$source->next->val = $source->val; 
    var_dump($next->val);  // <----------------------- outputs "bye" 
exit; 

あなたは、なぜ$next変数の出力を別の値(私が意味を、私に言うことができます

ここであなたはかなり明示的に変更した行です。この行で

$source->next->val = $source->val; 
関連する問題