Nucleus(JP)フォーラムNucleus(JP)フォーラムNucleusCMS日本語版ユーザーのためのサポートフォーラムです。疑問が生じたらまずは記事検索をご利用ください。登録ログインログインしていません。内部的に(C言語)そのままcall_user_funcから関数へ渡る。}の変数定義は無理され、渡した配列のアドレスそのまま代入されます。関数定義通りの動作をしますのでcall_user_func_arrayの変な挙動に振り回されなくて済みます。);は、同じ動作をします。※「呼び出し時の参照渡し」が廃止されたので引数が参照変数の関数を呼び出す場合はcall_user_func_arrayを使う必要があります。call_user_funcは、値渡しの関数です。参照渡しの受け取りはできません。全部参照渡しになっていることがわかります。「値渡し変数」と「参照渡し変数」が関数定義通りの動作をします。);を選択する必要があります。正常に動作しない場合、PHPをダウングレードすることで修正前のcall_user_funcと同じ挙動に戻すことができるからです。●徹底的にコードを修正する場合は、$this->plugins[$listener]->$event_funcname($data);を選択するほうが複数のPHPのバージョン間で関数定義どおりの正しい動作に導くことができます。この問題は、かなり根が深い・nucleusの問題ではないということでこれで調査を終了します。以下を参照して下さい。php.net裏付けをすることなく、自分の環境で発生した事象や自分の生半可な知識に基づいた仮説を主張することは、自他ともに利にならないことの方が多いのではないかと思いました。さんの発言:以下を参照して下さい。php.net裏付けをすることなく、自分の環境で発生した事象や自分の生半可な知識に基づいた仮説を主張することは、自他ともに利にならないことの方が多いのではないかと思いました。関数の個々の引数の変数トップレベルでの問題で要素ではないことを理解する必要があります。配列型という値であって、リファレンスではありません。子要素がなんであろうと関係ありません。配列を初期化するための言語構造ですということを理解しておく必要があります。&$parameter1)と等価です。「リファレンス渡し」ではないことも理解する必要があります。しつこいですが、array()は通常の関数ではありません。)とするといいでしょう。おさらいする必要があるのは、配列と代入です。子要素の型によっては、データアドレスが新規に作成され、そこに値が複製されます。代入に使った変数と異なったデータアドレスを持つ変数になることがあることを知っておく必要があります。「値渡し」:データは、複製され、関数外の渡した変数とは独立。変更を加えれば、関数外の変数も変更される。使う必要があることは理解できると思います。使ったほうが安全であることは理解できると思います。php5.4では、テストコードを実行すればわかりますが、適切に処理されているようです。