$obj という名前のオブジェクトがあります。__call
そのクラスの関数をオーバーライドしたので、呼び出すと次のように$obj->setVariableName($value)
なります$obj->variableName = $value
。$obj->setVariableName($value)
プロジェクトでいつ、どのように正確に呼び出されるのかわかりません。そのため、アプリケーションの実行中に次のことが起こります。
setVariable1($value) : works!
setVariable2($value) : works!
setVariable3($value) : It won't trigger __call()
setVariable4($value) : works!
そして、余分な関数を書くとsetVariable3
、それは機能します。によって直接呼び出されるのか、のような関数で呼び出されるのか、どのようsetVariable3
に呼び出されるのかわかりません。$obj->setVariable3
call_user_func_array
__call
うまくいかない問題は何setVariable3
ですか?
更新:setVariable3
これが a から呼び出され、$form->bind($user)
実行中$user->setVariable3('foo')
の作品であることがわかりました。(これは ZF2+Doctrine プロジェクトです)