【发布时间】:2013-10-24 15:13:21
【问题描述】:
所以我最近遇到了这样的代码段:
private static function FOO() {
static $c = null;
if ($c == null) {
$c = new ParentClass_InnerClass();
}
return $c;
}
那么这段代码是怎么回事?这与以下有何不同:
private static $C;
//other methods and fields
private static function FOO() {
if(!$self::c) {
$self::c = new ParentClass_InnerClass();
}
return $self::c;
}
或者它们甚至是同一个概念?
【问题讨论】:
-
第二个例子在技术上是不正确的。应该是
self::$c或static::$c。 -
在PHP: Variable scope - Manual阅读更多关于静态局部变量的信息
-
@ComFreek 哎呀,是的。
-
$c == null和!$c不完全一样,是吗? -
@SimonAndréForsberg 在这种情况下你是什么意思?这不像 $c 永远是布尔假。你真的在挑剔一段与问题无关的代码。