您好,登錄后才能下訂單哦!
<?php declare(strict_types=1);//開啟強類型模式 //不可訪問的方法:private/protected/不存在的方法 class Person{ public function say(){ echo "Hello world"; echo "\r\n"; } } (new Person())->say();//調用類中存在的方法 (new Person())->eat('food');//調用類中不可訪問的方法
調用類中不存在的方法 PHP Fatal error: Uncaught Error: Call to undefined method Person::eat() in /home/zrj/www/zhangrenjie_test/test/36.php:26 Stack trace: #0 {main} thrown in /home/zrj/www/zhangrenjie_test/test/36.php on line 26
class Person { public function say() { echo "Hello world"; echo "\r\n"; } // 在對象中調用一個不可訪問方法時,__call() 會被調用。 public function __call($functionName, $arguments) { echo "您調用了類中不存在的方法:" . $functionName . "\r\n"; echo "接受的參數為:" . print_r($arguments, true); } } (new Person())->say(); (new Person())->eat('food', 'chicken', 'bull');
Hello world
您調用了類中不存在的方法:eat
接受的參數為:Array
(
[0] => food
[1] => cocal
[2] => bull
)
class Person { public function __call(string $name, array $arguments) { echo "Call not exists dynamic method :" . $name . "\r\n"; echo $name . " : " . $arguments[0] . "\r\n\r\n"; } /** PHP 5.3.0之后版本 */ public static function __callStatic(string $name, array $arguments) { echo "Call not exists static method :" . $name . "\r\n"; echo $name . " : " . $arguments[0] . "\r\n\r\n"; } } (new Person())->say('hello world'); (new Person())->__call('say', ['hello world']); Person::do('coding php'); Person::__callStatic('do', ['coding java']);
Call not exists dynamic method :say
say : hello world
Call not exists dynamic method :say
say : hello world
Call not exists static method :do
do : coding php
Call not exists static method :do
do : coding java
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。