PHP:属性visibilty,静态等

PHP:属性visibilty,静态等

问题描述:

我知道这是一个真正愚蠢的问题,但我并不真正了解某些东西,我每天都在使用它们,但我不确定它们是如何工作的。PHP:属性visibilty,静态等

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

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

问候

+2

你可以让你的标题更好吗? (更具描述性,你也不需要在标题中用PHP标记它,因为我们有标签)。 ty :) – PeeHaa

+4

参考:http://php.net/manual/en/language.oop5.php –

+1

我不确定这是否是一个好的问题SO - OOP的原则是很多,系统地学习更容易来自一本书(当然还有一篇在线文章)。*的文章给出了一个概述,但它很难消化:http://en.wikipedia.org/wiki/Object_(computer_science) –

  • static表示值通过self::$var代替$this->var访问,不是特定实例(即它也是静态方法可用)因而非常适合单身人士和类似的模式
  • 一个public var为来自世界各地的,即无论是从类内外
  • 一个protected VAR是从类中唯一的访问,从类继承访问其中变量被定义的类
  • 一个private VAR是从类

既然你问OOP基础里面才能访问,这里有一些值得说明的是更多的关键字:

  • abstract类不能被实例化,只能用作基类;包含抽象方法的类必须是抽象的,除非基类的所有抽象方法实际上是实现了一个类从一个抽象类继承必须是抽象
  • 一个final类不能从
+0

如果声明一个受保护的变量,我不能在一个静态方法中访问它,只有那些被声明为static ..或者它必须被保护为静态的? – Uffo

+0

现在明白!非常感谢 – Uffo

公共继承/私营/受保护是指能见度;

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

静态是指是否一个类的成员与所述类本身或一个类的实例相关联;

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

公共及受保护的可见性。公共每个人都有权访问,只保护继承,父类可以访问。

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

现在到了另外一个问题,当使用它:

  • 所有属性应该是私有的,保护他们免受不好的用法。
  • 所有的getter和setter方法应该是公共的,所以其他对象可以设置和获取值。