不寫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;
2019-01-07
1、什么是重載
1)PHP所提供的"重載"(overloading)是指動態地"創建"類屬性和方法,我們是通過魔術方法來實現的。
2)當調用當前環境下未定義或不可見的類屬性或方法時,重載方法會被調用。(屏蔽錯誤)
3)所有的重載方法都必須被聲明為 public。
4)屬性重載只能在對象中進行。在靜態方式中,這些魔術方法將不會被調用。所以這些方法都不能被 聲明為 static。
5)這些魔術方法的參數都不能通過引用傳遞。
2019-11-28
屬性必須要加public? 方法不加就是默認public?