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

不写public不是默认public么?为什么会报错呢?

<?php

class Car {

    public $speed = 10;


    //在这里使用重载实现speedDown方法

    function __call($name,$args){

        if($name=='speedDown'){

            $this->speed-=10;

        }

    }

}

$car = new Car();

$car->speedDown(); //调用不存在的speedDown方法

echo $car->speed;


正在回答

2 回答

1、什么是重载


1)PHP所提供的"重载"(overloading)是指动态地"创建"类属性和方法,我们是通过魔术方法来实现的。

2)当调用当前环境下未定义或不可见的类属性或方法时,重载方法会被调用。(屏蔽错误)

3)所有的重载方法都必须被声明为 public。

4)属性重载只能在对象中进行。在静态方式中,这些魔术方法将不会被调用。所以这些方法都不能被 声明为 static。

5)这些魔术方法的参数都不能通过引用传递。


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

新手村上路 提问者

好专业。。。
2019-01-07 回复 有任何疑惑可以回复我~

属性必须要加public  方法不加就是默认public 

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

举报

0/150
提交
取消

不写public不是默认public么?为什么会报错呢?

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