亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

public function __call($name, $args)這里的$args是什么?

public function __call($name, $args)這里的$args是什么?

正在回答

3 回答

<?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

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

name為方法名,args形式是數組這里是參數數組。調用不存在的方法speedDown過程中,自動調用__call()方法,并且以數組的形式傳遞被調用的不存在的方法的多個參數。

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

慕粉4220271 提問者

謝謝,大概了解
2016-10-31 回復 有任何疑惑可以回復我~

傳遞進來的參數吧。

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

慕粉4220271 提問者

前面沒有這個參數啊
2016-10-30 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

public function __call($name, $args)這里的$args是什么?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號