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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 call_user_func() 調用類靜態和非靜態方法?

如何使用 call_user_func() 調用類靜態和非靜態方法?

PHP
慕容708150 2023-04-28 14:57:17
我在運行類方法的地方有自定義代碼:$object = new UserClass();$method = 'create';$params = ['name' => 'John'];$reflectionMethod = new \ReflectionMethod($object, $method);if($reflectionMethod->isStatic()) {    return $object::$method($params);} else {    return $object->$method($params);}我如何在不檢查方法類型是否為靜態的情況下運行類方法,如果可能的話用一行?
查看完整描述

1 回答

?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

class UserClass {

    public static function foo(string $name) {

        echo 'hi ', $name, "\n";

    }


    public function bar(string $name) {

        echo "bye ", $name, "\n";

    }

}


$object  = new UserClass();

$methods = ['foo', 'bar'];



foreach ($methods as $method) {

    call_user_func([$object, $method], "Bobby");

}

輸出:


hi Bobby

bye Bobby

call_user_func()不關心方法是否是靜態的。它在兩種情況下都有效。


查看完整回答
反對 回復 2023-04-28
  • 1 回答
  • 0 關注
  • 193 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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