有任何性能差异吗?最重要的是什么? 还有更多像
public static function
static public function
是一样的吗?
抱歉新手问题 感谢您的关注Adam Ramadhan
答案 0 :(得分:2)
两者没有区别:
public static function
static public function
这两个课程都可以访问。在两者中,你不能在函数中使用$ this,因为静态函数不需要实例化对象。
考虑你有一个汽车课程。
// Constructors call to a private static function add_this_car();
$car1 = new Cars('bentley');
$car2 = new Cars('Porsche GT1');
// public static function get_created_cars();
$all_cars = Cars::get_created_cars();
这样一个类可以处理它的所有实例(以及对每个实例的引用)。应该由类本身处理的事情,并且不需要创建要创建的实例。
答案 1 :(得分:1)
想象一个充满静态方法的类,比如一个漂亮的容器来保存相关的函数。
假设您要创建一个充满您喜欢的字符串格式化函数的类。
然后你可以说MyClass::MakeUppercase($string)
使字符串大写。您可以说MyClass::MakeLowercase($string)
将字符串设为小写。
由于您的实用程序类不代表任何类型的对象,并且没有任何内部状态可供跟踪,因此您没有理由实例化它的对象。在使用这些功能之前,请先$myvar = new MyClass()
。这只会浪费内存创建永远不会有不同内部状态的对象来跟踪。