課程
/后端開發
/PHP
/PHP進階篇
public function __call($name, $args)這里的$args是什么?
2016-10-30
源自: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為方法名,args形式是數組這里是參數數組。調用不存在的方法speedDown過程中,自動調用__call()方法,并且以數組的形式傳遞被調用的不存在的方法的多個參數。
慕粉4220271 提問者
傳遞進來的參數吧。
舉報
輕松學習PHP中級課程,進行全面了解,用PHP快速開發網站程序
2 回答請問 【public function __call($name,$args)】中$name ,$args 在屬性上有什么區別?
4 回答求答復__call($name, $args) 中的 $args 是干嘛使得
4 回答?__call($name,$args)這兩個參數分別代表什么?
3 回答這里的 $name 和$args 分別代表什么 真心不懂
2 回答重載函數里面的$args有什么用?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-12-10
<?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
2016-10-30
name為方法名,args形式是數組這里是參數數組。調用不存在的方法speedDown過程中,自動調用__call()方法,并且以數組的形式傳遞被調用的不存在的方法的多個參數。
2016-10-30
傳遞進來的參數吧。