2011-06-07 100 views
0

我希望能夠通過http文章調用我的php類。所以我想出了這個。全局類方法?

$method = $_POST['method']; 
$data = $_POST['data']; 
$class_methods = get_class_methods('myclass'); 
if($method, $class_methods){ 
    $save = $myclass::$method($data);  
    echo $save; 
} 

是否有任何全局方法存在於一般的類中,可能允許有人調用我沒有定義的方法?

謝謝大家。

回答

1

如果我理解正確的話,看看:

http://php.net/manual/en/language.oop5.magic.php

結構,如:

<?php 
class Foo 
{ 
    public static function bar() { 
    } 
} 

$className = 'Foo'; 
$method = 'bar'; 

$return = call_user_func_array(array($className, $method), array() /* << the params go here */); 

也是可能的,並在PHP 5.3+,你可以這樣做:

$return = $className::$method(); 

直接。

+0

非常感謝,這應該有所幫助。 – Justin 2011-06-07 14:32:16

0

有一種神奇的方法__call()當您嘗試調用尚未定義的方法,該方法被調用。

但是,您需要明確地將__call()方法分配給您的類,否則您將得到一個錯誤,您將調用未定義的方法。