PHP Doku:: Checks if method is defined - reflectionclass.hasmethod.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzVariablen- und typbezogene ErweiterungenReflectionThe ReflectionClass classReflectionClass::hasMethod

Ein Service von Reinhard Neidl - Webprogrammierung.

The ReflectionClass class

<<ReflectionClass::hasConstant

ReflectionClass::hasProperty>>

ReflectionClass::hasMethod

(PHP 5 >= 5.1.0)

ReflectionClass::hasMethodChecks if method is defined

Beschreibung

public bool ReflectionClass::hasMethod ( string $name )

Checks whether a specific method is defined in a class.

Parameter-Liste

name

Name of the method being checked for.

Rückgabewerte

TRUE if it has the method, otherwise FALSE

Beispiele

Beispiel #1 ReflectionClass::hasMethod() example

<?php
Class {
    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'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)

Siehe auch


2 BenutzerBeiträge:
- Beiträge aktualisieren...
phoenix at todofixthis dot com
28.10.2010 18:47
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
?>
hanguofeng at gmail dot com
20.10.2010 18:09
note that even if private method will also be 'has'.



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)