在类里面,我们可以使用 __construct() 这个魔术方法,它是一个构造函数,这个函数会在创建对象的时候提前被自动调用。你想在创建对象之前去做点事,比如去初始化一些东西,从数据库里面提取数据等等。这些在创建对象之前必须要做的事情,都可以放在 __construct() 这个构造函数里面。
打开 index.php ,在这个 Track 类里面,可以使用一个 __construct 函数 ... public function __construct ... 在这个函数里,我们可以简单在屏幕上输出点文字 ... 初始化数据 ... 在它前面可以加上这个类的名称 ... __CLASS__ 可以表示这个类的名称 ...
public function __construct() {
echo '初始化数据...';
}
然后在下面,去创建一个 Track 类的对象 ...
$magic = new Track();
保存 ... 回到浏览器 .... 会显示 Track 初始化数据 ...
在子类中覆盖
在子类里面,我们同样可以使用 __construct() 函数去定义一下在子类里面创建对象的时候要做的事。这样,会覆盖掉父类里面定义的 __construct ...
回到 index.php ..
Player 这个类是 Track 类的子类,在这个类里,我们可以再去用一个 __construct() ... public function __construct .... 同样是在屏幕上输出点内容 ..
public function __construct() {
echo __CLASS__ . ' 初始化播放器...';
}
在下面,再去创建一个 Player 对象 ... (#去掉 $magic = new Track())
$my_player = new Player();
回到浏览器 ... 会显示 Player 初始化播放器 ...
在子类里面,重新定义父类里的方法,可以覆盖掉父类的方法 ... 在覆盖的时候,我们可以使用 parent 这个关键词,去引用父类里的方法 ... 回到 index.php ...
比如这里我们在 Player 的构造函数里,需要先去执行一下父类里的构造函数 ... 可以这样 ... parent ... 冒号冒号 ... __construct()
parent::__construct();
保存 ... 回到浏览器 ...
会显示,Track 初始化数据 ... 这行文字是在 Track 类的构造函数里要显示的内容 ... 接着是 Player 初始化播放器 ... 这行文字是在 Player 这个类里的构造函数要显示的内容。