Parent methods (regardless of visibility) are also available to a ReflectionObject. E.g.,
<?php
class ParentObject {
public function parentPublic( ) {
}
private function parentPrivate( ) {
}
}
class ChildObject extends ParentObject {
}
$Instance = new ChildObject();
$Reflector = new ReflectionObject($Instance);
var_dump($Reflector->hasMethod('parentPublic')); // true
var_dump($Reflector->hasMethod('parentPrivate')); // true
?>
ReflectionClass::hasMethod
(PHP 5 >= 5.1.0)
ReflectionClass::hasMethod — Checks if method is defined
Descripción
public bool ReflectionClass::hasMethod
( string $name
)
Checks whether a specific method is defined in a class.
Parámetros
- name
-
Name of the method being checked for.
Valores devueltos
TRUE if it has the method, otherwise FALSE
Ejemplos
Example #1 ReflectionClass::hasMethod() example
<?php
Class C {
public function publicFoo() {
return true;
}
protected function protectedFoo() {
return true;
}
private function privateFoo() {
return true;
}
static function staticFoo() {
return true;
}
}
$rc = new ReflectionClass("C");
var_dump($rc->hasMethod('publicFoo'));
var_dump($rc->hasMethod('protectedFoo'));
var_dump($rc->hasMethod('privateFoo'));
var_dump($rc->hasMethod('staticFoo'));
// C should not have method bar
var_dump($rc->hasMethod('bar'));
// Method names are case insensitive
var_dump($rc->hasMethod('PUBLICfOO'));
?>
El resultado del ejemplo sería:
bool(true) bool(true) bool(true) bool(true) bool(false) bool(true)
Ver también
- ReflectionClass::hasConstant() - Checks if constant is defined
- ReflectionClass::hasProperty() - Checks if property is defined
phoenix at todofixthis dot com
28-Oct-2010 04:47
hanguofeng at gmail dot com
20-Oct-2010 04:09
note that even if private method will also be 'has'.
