将对象的函数提取到全局函数

时间:2017-01-24 16:05:48

标签: php

所以我有这个课程:

class MyClass {
    public static function printMessage($text) {
        echo $text;
    }
}

我想以这些方式使用它:

MyClass::printMessage('test'); // test
printMessage('test'); // test

因此printMessage将作为一种方法,也可以作为一种功能。用PHP可以做到这一点吗? (类似自动加载的东西)我找不到一个好的解决方案,甚至回答 - no。对我来说没有必要,我只是好奇所以我不需要两次编写相同的功能结构。我知道我可以使用像public static function printMessage($text) { return printMessage($text); }这样的代码,但它并不是我想要的。

2 个答案:

答案 0 :(得分:0)

您可以将类函数映射/包装到全局函数中:

self.__class__.__var2

但是function printMessage($string){ MyClass::printMessage($string); } 没有。 函数调用必须在PHP中是唯一的。

你也可以这样做:

Is something like that possible with PHP?

获得简写$printMessage = function($string ){MyClass::printMessage($string);};

但最好是全面避免全球职能。 如果你要进行下一级编码,那么静态类方法也应该避免。

答案 1 :(得分:0)

您可以使用包装器:

public function printMessage($text){
    MyClass::printMessage($text);
}

或者将该函数声明为全局,这似乎不是您正在寻找的。