PHP:属性可见性,静态等

时间:2011-11-06 22:42:09

标签: php oop

我知道这是一个真正愚蠢的问题,但我并不是真的明白了,我每天都会使用它们,但我不确定它们是如何工作的。

class Bootstrap
{
public static $frontController = null;
public static $root = '';

公共静态,受保护,公共......之间的差异是什么?什么时候最好使用每一个...

最好的问候

3 个答案:

答案 0 :(得分:2)

  • static表示通过self::$var而不是$this->var访问该值,不是特定于实例的(即它也可以在静态方法中使用),因此非常适用于单例和类似模式< / LI>
  • 可以从任何地方访问public var,即来自课堂内部和外部
  • protected var只能从类内部访问,并且可以从继承自定义var的类的类中访问
  • private var只能从课程内部访问

由于您在询问OOP基础知识,因此以下是一些值得解释的关键字:

  • abstract类无法实例化,只能用作基类;包含抽象方法的类必须是抽象的,并且从抽象类继承的类必须是抽象的,除非实际实现了基类的所有抽象方法
  • 无法继承final

答案 1 :(得分:1)

公共/私人/受保护是指可见性;

http://php.net/manual/en/language.oop5.visibility.php

static指的是类的成员是否与类本身或类的实例相关联;

http://www.php.net/manual/en/language.oop5.static.php

这些都是语言关键字。

http://php.net/manual/en/reserved.keywords.php

http://en.wikipedia.org/wiki/Keyword_%28computer_programming%29

答案 2 :(得分:1)

公开和受保护是可见性。公共每个人都有访问权限,仅受保护,父类可以访问。

静态是一个对所有对象都通用的变量,而不是每个类都有自己的变量,它由所有对象“共享”。

现在回答另一个问题,何时使用它:

  • 所有属性都应该是私有的,以防止它们被误用。
  • 所有getter和setter方法都应该是公共的,因此其他对象可以设置并获取值。
相关问题