php的魔術(shù)方法 __call

官方文檔

https://www.php.net/manual/en/language.oop5.overloading.php#object.call

官方示例

<?php
class MethodTest
{
    public function __call($name, $arguments)
    {
        // Note: value of $name is case sensitive.
        echo "Calling object method '$name' "
             . implode(', ', $arguments). "\n";
    }

    /**  As of PHP 5.3.0  */
    public static function __callStatic($name, $arguments)
    {
        // Note: value of $name is case sensitive.
        echo "Calling static method '$name' "
             . implode(', ', $arguments). "\n";
    }
}

$obj = new MethodTest;
$obj->runTest('in object context');

MethodTest::runTest('in static context');  // As of PHP 5.3.0
?>

這時(shí)候如果本身有這種方法

<?php
class MethodTest
{
    public function __call($name, $arguments)
    {
        // Note: value of $name is case sensitive.
        echo "Calling object method '$name' "
             . implode(', ', $arguments). "\n";
    }

    /**  As of PHP 5.3.0  */
    public static function __callStatic($name, $arguments)
    {
        // Note: value of $name is case sensitive.
        echo "Calling static method '$name' "
             . implode(', ', $arguments). "\n";
    }

    public function runTest() {
        echo "office runTest";
    }
}

$obj = new MethodTest;
$obj->runTest('in object context');

// MethodTest::runTest('in static context');  // As of PHP 5.3.0
?>

則不會(huì)執(zhí)行 __call

結(jié)論:
__call 作為魔術(shù)方法當(dāng)某個(gè)類執(zhí)行了沒(méi)有實(shí)現(xiàn)的方法時(shí), 會(huì)去執(zhí)行 __call .

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 魔術(shù)方法是PHP面向?qū)ο笾刑赜械奶匦?。它們?cè)谔囟ǖ那闆r下被觸發(fā),都是以雙下劃線開(kāi)頭,你可以把它們理解為鉤子,利用魔...
    四月不見(jiàn)閱讀 518評(píng)論 0 1
  • 1.認(rèn)識(shí)php php是服務(wù)端嵌入到HTML中的腳本語(yǔ)言。php的功能包括但不限于: 收集表單數(shù)據(jù) 生成動(dòng)態(tài)網(wǎng)頁(yè) ...
    楠哥哥_0b86閱讀 942評(píng)論 3 1
  • php.ini設(shè)置,上傳大文件: post_max_size = 128Mupload_max_filesize ...
    bycall閱讀 7,008評(píng)論 3 64
  • 參考PHP手冊(cè):魔術(shù)方法 1.__construct([ mixed $args [, $... ]] ) 具有構(gòu)...
    拿破侖蛋糕閱讀 558評(píng)論 0 1
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標(biāo)準(zhǔn)。 注意:講述HT...
    kismetajun閱讀 28,826評(píng)論 1 45

友情鏈接更多精彩內(nèi)容