【发布时间】:2017-08-24 04:08:45
【问题描述】:
我正在学习 php,但该语言仍有很多不清楚的地方。我想知道我们什么时候以及为什么要在课堂上使用private static properties。据我了解,私有属性只能由定义它的类访问。所以,私处明了,静的还不清楚。在文档中它说:
将类属性或方法声明为静态使它们可以访问 不需要类的实例化。声明为的属性 static 不能用实例化的类对象访问(尽管 静态方法可以)。
这是否意味着我可以在不实例化类的情况下访问静态属性。所以,例如:
class Foo{
static $bar;
public function __construct($bar){
$this->bar = $bar;
}
那么,我可以像这样访问类的 $bar 属性吗?
Foo::$bar
但是,如果我这样做,它就行不通了?
$foo = new Foo();
$foo::$bar
然后,如果确实创建了一个属性private static,我们会这样做,因为我认为我们将它们设为静态以便在类之外访问它们并将它们设为私有将使这成为不可能。如果有人能帮我解决这个问题,我将不胜感激。
【问题讨论】:
-
你如何访问静态属性?
-
如果您需要一个属性只能在类中访问,但也可以从类中的静态上下文访问(例如从静态函数中),那么您可以将其设为
private static $variable跨度> -
类::$aStaticProp; //按类名
-
@Leff 在 PHP 和许多其他语言中,一个类以两种形式存在。它作为用于制作对象的蓝图存在,也作为单独的对象存在。该单例对象是类“静态上下文”(忽略特定于语言的优化)总是被创建并可供程序使用。
标签: php