簡體   English   中英

如何在PHP中捕獲公共靜態函數的調用?

[英]How can i catch a call of public static function in PHP?

<?php
class A
{
    public static function foo()
    {
        // some action
    }

    public static function __callStatic($method, $args)
    {
        self::foo();
        static::$method($args);
    }
}

class B extends A
{
    public static function bar(){}
}

我搜索PHP公共靜態函數處理程序,我嘗試__callStatic()但它只調用私有和受保護的方法。

魔術方法,例如__call__callStatic Docs僅針對您的類中不存在的方法調用。 當正常的方法調用發生時,它們不會被觸發。 因此,使用公共方法無法實現這一目標。

但是,您可以將這些方法call_user_func private / protected,並使用call_user_funccall_user_func_array在魔術方法中調用它們。 當然,這些函數的返回值也應該通過魔術方法返回。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM