我只是想知道使用public static function
或private static function
而不仅仅是public function
或private function
有什么好处?
答案 0 :(得分:22)
"正常"方法(通常称为实例方法)在它们定义的类的实例上调用。该方法将始终通过$this
访问其对象,因此它可以处理该对象携带的数据(并确实修改它)。这是面向对象编程的核心方面,它使得一个类不仅仅是一堆数据。
另一方面,对静态方法的调用与特定对象无关。在这方面,它们的行为就像常规功能一样;确实唯一的区别是它们可能被标记为private
,并且还可以访问其类的实例上的私有方法和变量。静态函数实际上只是程序编程的扩展。
例如,在对象上调用实例方法:
$object = new MyClass();
$result = $object->myInstanceMethod();
在类本身上调用静态方法:
$result = MyClass::myStaticMethod();