我知道这是一个非常愚蠢的问题,但我真的不明白的东西,我每天使用它们,但我不确定它们是如何工作的。
class Bootstrap
{
public static $frontController = null;
public static $root = '';
public static, protected, public…所有人?什么时候最好使用每一个…
-
static
意味着通过self::$var
而不是$this->var
访问值,不是特定于实例的(即它也可以在静态方法中使用),因此非常适合单例模式和类似模式 - 一个
public
变量可以从任何地方访问,即从类内部和外部 -
protected
变量只能从类内部和从定义了该变量的类继承的类中访问 - 一个
private
变量只能在类 中访问
既然你问的是面向对象的基础知识,这里有一些更多的关键字值得解释:
-
abstract
类不能被实例化,只能作为基类使用;包含抽象方法的类必须是抽象的,从抽象类继承的类必须是抽象的,除非基类的所有抽象方法都实际实现了 - 不能从 继承
final
类Public/private/protected指可见性;
http://php.net/manual/en/language.oop5.visibility.phpstatic表示类的成员是与类本身关联还是与类的实例关联;
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%29Public和protected是可见性。Public每个人都可以访问,protected只有继承类和父类可以访问。
Static是一个对所有对象都通用的变量,而不是每个类都有自己的变量,它被所有对象"共享"。
现在到另一个问题,什么时候使用它:
- 所有属性都应该是私有的,以保护它们不被错误使用。
- 所有的getter和setter方法都应该是公共的,这样其他对象就可以设置和获取这些值。