代码之家  ›  专栏  ›  技术社区  ›  Elzo Valugi

如何在自定义magento类中调用静态方法

  •  3
  • Elzo Valugi  · 技术社区  · 15 年前

    我在自定义Magento模型中有一个带有静态函数的自定义模型:

    class ABC_Module_Model_ClassName
    {
        static public function send ( $something)
        {
             // do something static
        }
    }
    

    现在我这样调用函数:

    ABC_Module_Model_ClassName::send($something); // works and is nothing wrong with it
    

    Mage::getModel('abc/module_className')::send($something); // this is wrong
    // or 
    Mage::getModel('abc/module_className', send($something)); // with a callback or something
    
    1 回复  |  直到 12 年前
        1
  •  5
  •   Ali    15 年前

    如果任何方法 Mage::getModel() 将实际返回类的实例,您将动态调用它而不是静态调用它。你会做什么 $module->staticMethod(); 而不是 Module::staticMethod().

    所以你最好的办法就是

    • 要么将静态方法作为常规函数,这样它就可以全局使用,
    • Common
    • 或者只是静态地称之为你在问题中所做的事情 Module::method()

    最后,静态调用方法的唯一方法是通过 Class::method() .