php - 如果 php 自动为您完成,是否需要将类内的属性初始化为 null?

标签 php

对来自两个类中的任何一个的对象执行 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/

相关文章:

php - 如何获得 SQL 中重复项求和的最佳项?

php - htmlspecialchars 的问题

PHP/MYSQL - 通过 as php 变量进行 mysql 查询相关的语法错误

php - paypal确认了哪些付款?

php - 服务器端 PDF 生成

php - CodeIgniter 分页 url 页码

php - mysql - 总是从表中获取最大id

php - 特定英国邮政编码区号所需的 preg_match 正则表达式

php - 进入单个查询

php - CakePHP 无法连接到 Postgres。但是 Pgadmin4 可以