課程
/后端開發
/PHP
/PHP進階篇
知道$name,但不清楚$args有什么用
2017-02-06
源自:PHP進階篇 2-9
正在回答
<?php
class Car {
? ? public $speed = 10;
? ? //在這里使用重載實現speedDown方法
? ??
? ? public function __call($name, $args) {
? ? ? ??
? ? ? ? ?$num=count($args); ?
? ? ? ? ? ? if($num==2){ ?
? ? ? ? ? ? if ($name == 'speedDown') {
? ? ? ? ? ? $this->speed -= 10;
? ? ? ? ? ? }
? ? ? ? } ?
? ? }
}
$car = new Car();
$car->speedDown('speedDown','223e'); //調用不存在的speedDown方法
echo $car->speed;
請看改過的這段代碼?$args其實就是傳遞的參數個數。這里傳遞$car->speedDown('speedDown','223e');兩個參數($car->speedUp(); 這樣寫也行 但是只能傳遞一個參數)所以在__call函數里判斷
?$num=count($args); ?
得到正確的結果 如果只傳遞一個參數 那么$arg的值就是1
你看一下這個例子就明白了。
楓雪孤城 提問者
這里的$name對應的是speedDown這個方法,$args是傳進來的參數以數組的形式存在,傳的是$car->speedDown()這個方法里面的值
舉報
輕松學習PHP中級課程,進行全面了解,用PHP快速開發網站程序
6 回答fopen()l里面的rb是什么?有啥作用?feof()函數有什么作用??
3 回答public function __call($name, $args)這里的$args是什么?
1 回答這種函數有什么用 和普通的函數有什么區別,在什么情況下會用這個
2 回答克隆函數里面的內容的$obj指的是什么
1 回答函數里面的return $this->name具體是什么意思?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-02-06
<?php
class Car {
? ? public $speed = 10;
? ? //在這里使用重載實現speedDown方法
? ??
? ??
? ? public function __call($name, $args) {
? ? ? ??
? ? ? ? ?$num=count($args); ?
? ? ? ? ? ? if($num==2){ ?
? ? ? ? ? ? if ($name == 'speedDown') {
? ? ? ? ? ? $this->speed -= 10;
? ? ? ? ? ? }
? ? ? ? } ?
? ? }
}
$car = new Car();
$car->speedDown('speedDown','223e'); //調用不存在的speedDown方法
echo $car->speed;
請看改過的這段代碼?$args其實就是傳遞的參數個數。這里傳遞$car->speedDown('speedDown','223e');兩個參數($car->speedUp(); 這樣寫也行 但是只能傳遞一個參數)所以在__call函數里判斷
?$num=count($args); ?
? ? ? ? ? ? if($num==2){ ?
得到正確的結果 如果只傳遞一個參數 那么$arg的值就是1
你看一下這個例子就明白了。
2017-02-06
這里的$name對應的是speedDown這個方法,$args是傳進來的參數以數組的形式存在,傳的是$car->speedDown()這個方法里面的值