私はIs it possible to pass parameters by reference using call_user_func_array()?とhttp://php.net/manual/en/function.call-user-func-array.phpを見ました。 call_user_func_array()を使用して参照渡しするための承認されたテクニックは、パラメータ配列を変数参照の配列にすることによるものと思われます。たとえば、$parameters = array(&$some_variable)
と設定します。私の質問は、代わりに(参照ではなく)変数の配列をパラメータ配列にして、パラメータ配列全体を参照として渡すことができますか?これは、以下に示されている:機能toBeCalledを基準として第1の変数、および値としての第2を期待していることが変数参照の配列を渡すのではなく、call_user_func_array()を参照してパラメータ配列を渡すことはできますか?
function toBeCalled(&$parameter1, $parameter2) {
//...Do Something...
}
$changingVar = 'passThis';
$changingVar2 = 'passThisToo';
$parameters = array($changingVar, $changingVar2);
call_user_func_array('toBeCalled', &$parameters);
注意。私が尋ねる理由は、ここでの構文が便利で、動作するようです(DrupalのDruTexモジュールのこのPHP 5.3パッチを参照してください - http://drupal.org/node/730940#comment-4054054)が、私は専門家の意見をチェックしています。
最初のバージョンを使用してください。これは動作するためです。後者はPHP 5.3でさえも(あるいはあなたのためにあなたの仕事をしましたか?)、とにかくPHP 5.4から禁止されます(強制的に渡された参照のためのZend memleaks)。 – mario