PHP构造方法问题

初学PHP构造方法,有这样一个简单的构造方法问题,请教如下:

class Name{
    //成员属性
    public $name;
    //构造方法
    public function __construct($name = 'php'){
        $this->name = $name;
    }
}

请解释一下:$this->name = $name; 这句怎么理解,是将$name的收到或者初始化的值赋给本类中的$name吗?还是怎么理解,非常感谢。

阅读 4.6k
4 个回答

是,Name::$name是类属性,实例出来的话就是对象属性。

new Name('php') 会创建一个 Name 的对象(或者叫做实例),将这个对象的 name 属性设置为 'php'

通过构造函数,实例化类的时候为对象的属性赋值,该值只属于该对象。

<?php
class User{
        public $name;
        public function __construct($name = 'php'){
                var_dump($this->name);
                $this->name = $name;
                var_dump($this->name);
        }
}
$user = new User();

可以看到输出NULL和php,是因为实例化类的时候,属性$name的默认值是null,$this->name = $name是将$name赋值给给类属性$name,php是其默认值

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题