これは、「助けて」の質問というよりも、ディスカッションのトピックです。
奇妙な問題に遭遇したばかりです。変数(オブジェクト)は、どこにも渡されない場合にオーバーライドされます。
例;
var_dump($node->title);
$entity = $server->pull($item);
var_dump($node->title);
2つのvar_dumpsは、2つの異なる値を表示します。
$itemは無関係の文字列です。
この時点では、「pull()」メソッドの内容が適切であるとは思いません。これがどこでオーバーライドされているかについては興味がありません。どのようにオーバーライドされているかについては興味があります。
メソッドに渡されていない限り、PHPはどのように変数を変更できますか?
私の関数には参照がありません。ノードは直接渡されます。
function my_function($node) {
オブジェクトのクローンを作成して
も、変数の名前を変更しても
$my_node = $node;
複製されたオブジェクトは引き続きオーバーライドされます。
名前が変更されたオブジェクトは引き続きオーバーライドされます(つまり、名前とは関係ありません)。
これがどのように可能か知りたいです。pull()(または関連するメソッド)が、与えられていない変数をどのように乗り越えることができますか?
繰り返す必要があります。値がどこで変更されているかは関係ありません。メソッドに渡されていないときに値がどのように変更されているかは関係ありません。