PHP:属性visibilty,静态等
问题描述:
我知道这是一个真正愚蠢的问题,但我并不真正了解某些东西,我每天都在使用它们,但我不确定它们是如何工作的。PHP:属性visibilty,静态等
class Bootstrap
{
public static $frontController = null;
public static $root = '';
什么是公共静态,保护,公共...之间的差异是什么?当它最好使用每一个...
问候
答
-
static
表示值通过self::$var
代替$this->var
访问,不是特定实例(即它也是静态方法可用)因而非常适合单身人士和类似的模式 - 一个
public
var为来自世界各地的,即无论是从类内外 - 一个
protected
VAR是从类中唯一的访问,从类继承访问其中变量被定义的类 - 一个
private
VAR是从类
既然你问OOP基础里面才能访问,这里有一些值得说明的是更多的关键字:
- 的
abstract
类不能被实例化,只能用作基类;包含抽象方法的类必须是抽象的,除非基类的所有抽象方法实际上是实现了一个类从一个抽象类继承必须是抽象 - 一个
final
类不能从
答
公共继承/私营/受保护是指能见度;
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方法应该是公共的,所以其他对象可以设置和获取值。
你可以让你的标题更好吗? (更具描述性,你也不需要在标题中用PHP标记它,因为我们有标签)。 ty :) – PeeHaa
参考:http://php.net/manual/en/language.oop5.php –
我不确定这是否是一个好的问题SO - OOP的原则是很多,系统地学习更容易来自一本书(当然还有一篇在线文章)。*的文章给出了一个概述,但它很难消化:http://en.wikipedia.org/wiki/Object_(computer_science) –