本文目錄一覽:
如何在PHP中使用call
__call()函數是php類的默認魔法函數,__call() 在一個對象的上下文中,如果調用的方法不存在的時候,它將被觸發:
?php
class MethodTest {
public function __call($name, $arguments) {
// Note: value of $name is case sensitive.
echo “Calling object method ‘$name’ “
. implode(‘, ‘, $arguments). “\n”;
}
}
$obj = new MethodTest;
$obj-runTest(‘in object context’);
運行結果:
Calling object method ‘runTest’ in object context
php中怎麼用call
__call 是一個魔術方法,當調用一個不可訪問的對象方法(非靜態方法),會自動的執行該魔術方法。public funciton __call($name,$arr)
比如,在類外部,調用類中一個不存在的方法,就會自動執行這個__call方法( $name,$arr),參數$name代表的是你調用的方法名,$arr代表的是你調用這個方法裏面的所有參數。
class a {
pu blic function __call($name,$arr){
echo $name;
var_dump($arr);
}
}
$a = new a();
$a-testa(1,2,3);
此時,$name就是testa $arr就是array(1,2,3)組成的數組。
黑馬程序員的PHP是國內最早開設的真正人工智能課程。課程全面系統,緊跟時代潮流。
php中怎麼使用call
PHP5 的對象新增了一個專用方法 __call(),這個方法用來監視一個對象中的其它方法。如果你試着調用一個對象中不存在的方法,__call 方法將會被自動調用。
?php
class foo {
function __call($name,$arguments) {
print(“Did you call me? I’m $name!”);
}
} $x = new foo();
$x-doStuff();
$x-fancy_stuff();
?
這個特殊的方法可以被用來實現「過載(overloading)」的動作,這樣你就可以檢查你的參數並且通過調用一個私有的方法來傳遞參數。
?php
class Magic {
function __call($name,$arguments) {
if($name==’foo’) {
if(is_int($arguments[0])) $this-foo_for_int($arguments[0]);
if(is_string($arguments[0])) $this-foo_for_string($arguments[0]);
}
}
private function foo_for_int($x) {
print(“oh an int!”);
}
private function foo_for_string($x) {
print(“oh a string!”);
}
}
$x = new Magic();
$x-foo(3);
$x-foo(“3”);
?
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/187614.html