并能因此,我放心地重构的所有实例
class Blah
{
// ...
private $foo = null;
// ...
}
至
class Blah
{
// ...
private $foo;
// ...
}
?
并能因此,我放心地重构的所有实例
class Blah
{
// ...
private $foo = null;
// ...
}
至
class Blah
{
// ...
private $foo;
// ...
}
?
答案很简单,是的。 见http://php.net/manual/en/language.types.null.php
特殊的NULL值表示没有值的变量。 NULL是NULL类型唯一可能的值。
您可以轻松地通过试验var_dump()
的财产,你会看到这两种情况下这将是NULL
class Blah1
{
private $foo;
function test()
{
var_dump($this->foo);
}
}
$test1 = new Blah1();
$test1->test(); // Outputs NULL
class Blah2
{
private $foo = NULL;
function test()
{
var_dump($this->foo);
}
}
$test2 = new Blah2();
$test2->test(); // Outputs NULL
为空的属性默认值相同,没有默认值?
特殊的
NULL
值表示没有值的变量。
null
是尚未设置任何特定值的变量的概念。 这是比较容易区分的时候犯错误null
和空1倍的值。
private $foo = null;
完全等同于private $foo;
。 在两种情况下,类属性具有值定义null
。
isset
将返回正确false
为双方的声明$foo
; isset
是布尔相反is_null
,以及这些值,按照上述, null
。
作为参考,我建议您查看PHP类型比较表 。
1:在这种情况下,我指的是,对于返回true类型的值empty
功能,或以其他方式被认为是“falsey”。 IE null
, 0
, false
,空阵列( array()
和空字符串( ''
'0'
在技术上也空了,但我觉得这是PHP的一个怪异的语言。