对来自两个类中的任何一个的对象执行 var_dump 会得到相同的结果
Class Node{
public $parent = null;
public $right = null;
public $left = null;
function __construct($data){
$this->data = $data;
}
}
Class Node{
public $parent;
public $right;
public $left;
function __construct($data){
$this->data = $data;
}
}
例如
$a = new Node(2);
var_dump($a);
为上述任一类返回以下内容
object(Node)#1 (4) {
["parent"]=>
NULL
["right"]=>
NULL
["left"]=>
NULL
["data"]=>
int(2)
}
这似乎不是变量的情况。
$b;
var_dump($b);
如果您打算让该属性的值为 null
,是否需要显式地写入该值,因为 php 似乎会自动为您执行此操作?
另外 - 根据这个答案 https://stackoverflow.com/a/6033090/784637 ,如果您尝试获取未初始化变量的值,C++ 会给出未定义的行为。如果该属性未初始化为值,C++ 是否会像 php 那样自动将类中的属性值设置为 null
?
最佳答案
不,不需要将它们初始化为 null
-- PHP 会自动执行此操作并且您自己执行不会产生任何可观察到的差异。
C++ 不会将类字段的值设置为 null
(在 C++ 中实际上没有“真正的”null
值,除非你在 C++ 11 中计算 nullptr
);它零初始化或值初始化它们,这是不一样的。您可以阅读有关零和值初始化的信息 here .
关于php - 如果 php 自动为您完成,是否需要将类内的属性初始化为 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14310171/