私は、この PHP の動作を理解しようとしている Java 開発者です。次のメソッドを実行しました。
error_log(get_class($a) . "\n", 3, "c:\my-errors.log");
error_log(print_r(get_class_methods($a), true) . "\n", 3, "c:\my-errors.log");
印刷した
Mage_Catalog_Model_Product
Array
(
[0] => getStoreId
...
[90] => getWeight
[91] => getOptionInstance
[92] => getProductOptionsCollection
[93] => addOption
[94] => getOptionById
[95] => getOptions
[96] => getIsVirtual
...
[182] => flagDirty
)
しかし、次の行は、最初に出力したメソッドのリストに明らかに含まれていないメソッドを (エラーなしで) 実行します。
$a->getOption()
それで、どのようにそれが可能ですか?オブジェクトが持っているすべてのメソッドを知るにはどうすればよいですか? どのファイルが「コードの次の行」を実行するかを知る方法はありますか?プロジェクト全体にいくつかの「getOption」関数があり、どのファイルが実行されるのかわかりません。
多分これはあなたを助けることができます、私はMagento 1.7で作業しており、私が話しているコードは
\app\code\core\Mage\Bundle\Model\Product\Type.php@shakeSelections
どうもありがとう!