用户登录

下面再来看一下 protected 这个修饰符,如果想让属性还有方法只用在类的本身还有继承它的类里面,可以它。

打开 Track.php ... 把 track_name 这个属性前面的 private 换成 protected ... 这样它就变成了一个受保护的属性 ... 在类的外部是不能访问到它的。

回到 index.php ... 试一下去输出 track_name 这个属性的值 ...

回到浏览器 ... 提示 Fatal error: Cannot access protected property ... 不能访问受保护的属性 .. 说明在外部不能直接访问使用 protected 标记的属性 ... 不过这个属性在子类里面是可以访问的。

打开 Player.php ... 这里的 Player 这个类继承了 Track 类 ... 在这个类里,我们再去定义一个公开的方法 ... 叫做 the_track_name ...

在这个方法里,可以简单的去把继承过来的 track_name 这个属性的值输出到屏幕上 ...

<?php
class Player extends Track
{
public function the_track_name() {
echo $this->track_name;
}
}

再打开 index.php .... 用 Player 这个类去创建一个对象 ... 可以叫它 my_player ... 再去调用这个对象的 the_track_name 这个方法 ...

$my_player = new Player();
$my_player->the_track_name();

回到浏览器 ... 会显示 Magic 这个字符串 ... 这是在 Player 这个类里去访问继承过来的,用 protected 标记的 track_name 这个属性的值 ....

说明在子类里,可以访问到使用 protected 标记的属性 ...

再打开 Track.php ... 把这个 protected 换成 private ...

回到浏览器 ... 提示 Undefined property ... 未定义的属性。因为现在 track_name 这个属性是用 private 标记的,所以这个属性不会被继承。

访问控制 - protected《 PHP 面向对象 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点