我是一名试图理解这种 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
非常感谢!