php中的魔術函數__call()用於類中。有沒有類似的魔術功能,但功能,而不是?像__autoload()是用於函數。魔術函數__call()函數?
例如像這樣
function __call($name, $arguments) {
echo "Function $name says {$arguments[0]} ";
}
random_func("hello");
php中的魔術函數__call()用於類中。有沒有類似的魔術功能,但功能,而不是?像__autoload()是用於函數。魔術函數__call()函數?
例如像這樣
function __call($name, $arguments) {
echo "Function $name says {$arguments[0]} ";
}
random_func("hello");
不,我不認爲這樣一個神奇的功能存在。此
一個解決辦法是把你的功能集成到一個靜態類,並添加__callStatic
魔術方法的那類(> PHP 5.3只,恐怕):
class Func
{
/** 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";
}
}
Func::random_func("hello!");
對於PHP < 5.3,你可以做同樣的事情,但你必須實例化一個對象並使用神奇的方法。
$Func = new Func;
$Func->random_func("hello!");
號調用並不致命錯誤存在將總是結果的功能。
**也許一個zend擴展可以攔截這與fcall_begin_handler
,但我不知道。