必须使用静态操作符 :: 调用静态方法:

    1. namespace Test;
    2. class MyClass
    3. {
    4. protected static function _someHiddenMethod(a, b)
    5. {
    6. return a - b;
    7. public static function someMethod(c, d)
    8. {
    9. return self::_someHiddenMethod(c, d);
    10. }
    11. }

    您可以按照以下动态方式调用方法:

    Zephir 支持按名称或关键字参数调用方法参数。 如果您希望以任意顺序传递参数、记录参数的含义或以更优雅的方式指定参数,那么命名参数可能非常有用。

    请考虑下面的示例. 一个名为 Image 的类具有接收四个参数的方法:

    1. namespace Test;
    2. public function chop(width = 600, height = 400, x = 0, y = 0)
    3. {
    4. //...
    5. }
    6. }

    使用命名参数, 您可以:

    1. i->chop(width: 100); // width=100, height=400, x=0, y=0
    2. i->chop(height: 200); // width=600, height=200, x=0, y=0
    3. i->chop(x: 20, y: 30); // width=600, height=400, x=20, y=30

    当编译器(在编译时) 不知道这些参数的正确顺序时,必须在运行时解析它们。 在这种情况下,可能会有一个最小的额外额外开销: