类范围和对象范围之间的差异

时间:2010-11-13 07:13:24

标签: php class dynamic static scope

有任何性能差异吗?最重要的是什么? 还有更多像

public static function
static public function

是一样的吗?

抱歉新手问题 感谢您的关注

Adam Ramadhan

2 个答案:

答案 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()。这只会浪费内存创建永远不会有不同内部状态的对象来跟踪。