为了账号安全,请及时绑定邮箱和手机立即绑定

protect方法

<?php

class Car {

    private $speed = 0;

    

    public function getSpeed() {

        return $this->speed;

    }

    

    protected function speedUp() {

        $this->speed += 10;

    }

    

    //增加start方法,使他能够调用受保护的方法speedUp实现加速10

    public function start(){

        $this->speedUp();

    }



}

$car = new Car();

$car->start();

echo $car->getSpeed();

这里的speedUp不是已经定义为protected了吗?怎么还能在外部调用echo $car->getSpeed();

正在回答

2 回答

看上面那句 //增加start方法,使他能够调用受保护的方法speedUp实现加速10

start()方法是public的,$car->start()调用的start()方法 ,

start()方法里边$this->speedUp(),这个在类的内部是可以调用speedUp()方法

0 回复 有任何疑惑可以回复我~
#1

丶Simple0 提问者

非常感谢!
2016-03-23 回复 有任何疑惑可以回复我~
#2

丶Simple0 提问者

不好意思 ,看错了,问下 如果在外部要调用受保护的方法怎么调用啊
2016-03-23 回复 有任何疑惑可以回复我~

protected表示受保护的,只有本类或子类或父类中可以访问;speedUp()还是在本类$car中

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
PHP进阶篇
  • 参与学习       181828    人
  • 解答问题       2577    个

轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序

进入课程

protect方法

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信