PHP

2012-07-20 19 views
11

sınıfındaki tüm genel fonksiyonların bir listesini nasıl duyduğumu duydum get_class_methods() duydum ama belli bir sınıftaki tüm kamu yöntemlerinin bir dizisini toplamak için PHP'de bir yol var mı?PHP

+0

Uhm, 'get_class_methods ($ class)' *, 'get_class_meth 'yi kullanmak istiyorsanız, belirli bir sınıfa ait tüm genel yöntemlerin bir dizisini toplamanın bir yoludur ... –

+0

SADECE SADECE kamu yöntemlerini almak için, sınıf dışında kullanılmalıdır .. – Federkun

+0

get_class_methods ($ class) genel olan ya da anahtar sözcük yok tüm yöntemleri döndürür. Yani herhangi bir özel yöntem iade edilmeyecek – daslicht

cevap

1

Bu şekilde denediniz mi?

$class_methods = get_class_methods(new myclass()); 

foreach ($class_methods as $method_name) { 
    echo "$method_name\n"; 
} 
+2

Bence Kristian özellikle kamu yöntemleri listelemek için soruyor. – Stegrex

7

get_class_methods($theClass) ile tüm yöntemleri aldıktan sonra böyle bir şey ile onların aracılığıyla döngü edebilirsiniz: get_class_methods() gibi

foreach ($methods as $method) { 
    $reflect = new ReflectionMethod($theClass, $method); 
    if ($reflect->isPublic()) { 
    } 
} 
8

kapsamı duyarlıdır, tüm alabilirsiniz Sınıfın dışından işlevi çağıran bir sınıfın genel yöntemleri '

sınıfı ( new Foo;) kapsamında içinden bir çağrı dönecekti iken

array 
    0 => string 'baz' (length=3) 
    1 => string '__construct' (length=11) 

: Aşağıdaki

class Foo { 
    private function bar() { 
     var_dump(get_class_methods($this)); 
    } 

    public function baz() {} 

    public function __construct() { 
     $this->bar(); 
    } 
} 

var_dump(get_class_methods('Foo')); irade çıkışı:

Yani, bu sınıf almak

array 
    0 => string 'bar' (length=3) 
    1 => string 'baz' (length=3) 
    2 => string '__construct' (length=11)