Ben bir nesne var ve bu nesne "bla_" ile bu bir başlangıç var ne kadar yöntem döndüren bir yöntem istiyorum.
Tüm yöntem adları get_class_methods () hangi döner bulundu, ama sadece "bla_" ile başlar hangi isimleri istiyorum
Sen preg_grep()
a> filtrelemek kullanabilirsiniz:
$method_names = preg_grep('/^bla_/', get_class_methods($object));
Deneyin:
$methods = array();
foreach (get_class_methods($myObj) as $method) {
if (strpos($method, "bla_") === 0) {
$methods[] = $method;
}
}
===
burada gerekli olduğunu unutmayın. strpos()
döner false
eşleşme bulunamadı olsaydı bu yana ==
, çalışmaz. Nedeniyle PHPs dinamik yazarak bu 0
eşittir ve bu nedenle sıkı bir (tip güvenli) eşitlik kontrolü gereklidir.
Ben bu gibi biraz daha esnek şey (yöntem adları dinamik veya bilinmeyen olmadıkça) öneririm:
interface ITest
{
function blah_test();
function blah_test2();
}
class Class1 implements ITest
{
function blah_test()
{
}
function blah_test2()
{
}
function somethingelse()
{
}
}
$obj = new Class1();
$methods = array_intersect( get_class_methods($obj), get_class_methods('ITest') );
foreach( $methods as $methodName )
{
echo "$methodName\n";
}
Çıkışlar:
blah_test
blah_test2