que objetos objeto obj ejemplos clases array php arrays oop

objetos - PHP: obtenga todos los nombres de métodos de un objeto con el nombre "bla_"



php oop (4)

Tengo un objeto y quiero un método que devuelva la cantidad de método que tiene este objeto que comienza con "bla_".

Encontré get_class_methods () que devuelve todos los nombres de métodos, pero solo quiero nombres que comiencen con "bla_"


¿Por qué no solo crea su propia función que recorre la matriz desde get_class_methods () y prueba cada elemento con "bla_" y devuelve una nueva lista con cada valor coincidente?


Sugeriría algo un poco más flexible como este (a menos que los nombres de los métodos sean dinámicos o desconocidos):

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"; }

Salidas:

blah_test blah_test2


Tratar:

$methods = array(); foreach (get_class_methods($myObj) as $method) { if (strpos($method, "bla_") === 0) { $methods[] = $method; } }

Tenga en cuenta que === es necesario aquí. == no funcionará, ya que strpos() devuelve false si no se encontró ninguna coincidencia. Debido a la escritura dinámica de PHP, esto es igual a 0 y, por lo tanto, se necesita una verificación de igualdad estricta (de tipo seguro).


Puedes usar preg_grep() para filtrarlos:

$method_names = preg_grep(''/^bla_/'', get_class_methods($object));