私はcall_user_func_arrayで関数を呼び出したいと思いますが、引数が関数定義内の参照であり、call_user_func_arrayの単純な値である場合、次の警告が表示されます。 警告:test()ここでPHP変数が参照であるかどうかを知る方法?
を所定の基準値は、私が何をしようとしています何の簡単な例です:
<?php
$a = 0;
$args = array($a);
function test(&$a) {
$a++;
}
$a = 0;
call_user_func_array('test', $args);
?>
私の質問は:値($ argsをこの場合の最初の値)かどうかはどのように知ることができます参照かどうか?
私が見るすべては、2つの配列/オブジェクト/変数が1つを変更してかどうかをチェックすることで、同じメモリ領域を指しているかどうかをチェックする機能ですもう一方も変更されています。 私のコード(実際の例ではありません)では、私は引数の配列しか持っていません。一つの引数が参照であるかどうかを知りたいのです。 このように、コールバック関数が参照を必要とし、配列に単純な値が含まれていると、私はエラーをスローすることができます。 –
既に開発者向けの警告が表示されます。どのようなエラーが欲しいですか?動作を変更したい場合は、[カスタムエラーハンドラを設定する](http://php.net/set_error_handler)を使用できます。 – cmbuckley