PHP Doku:: Gets constructor - reflectionclass.getconstructor.html

Verlauf / Chronik / History: (1) anzeigen

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

Ein Service von Reinhard Neidl - Webprogrammierung.

The ReflectionClass class

<<ReflectionClass::getConstants

ReflectionClass::getDefaultProperties>>

ReflectionClass::getConstructor

(PHP 5)

ReflectionClass::getConstructorGets constructor

Beschreibung

public object ReflectionClass::getConstructor ( void )

Gets the constructor from a class.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion hat keine Parameter.

Rückgabewerte

A ReflectionMethod object.

Siehe auch


Ein BenutzerBeitrag:
- Beiträge aktualisieren...
Rob McVey
16.07.2010 16:47
Just posting some example code for anyone wanting to mess around with this stuff:

<?php

class Say
{
    private
$what_to_say;
    public function
__construct($no_default, $word = "Hello World", $options = array('a', 'b'))
    {
       
$this->what_to_say = $word;
    }
   
    public function
speak()
    {
        echo
$this->what_to_say;
    }
}

$class = new ReflectionClass('Say');

$constructor = $class->getConstructor();

echo
$constructor;

/*     OUTPUTS:

Method [ <user, ctor> public method __construct ] {
  @@ /reflect.php 6 - 9

  - Parameters [3] {
    Parameter #0 [ <required> $no_default ]
    Parameter #1 [ <optional> $word = 'Hello World' ]
    Parameter #2 [ <optional> $options = Array ]
  }
}

*/

$parameters = $constructor->getParameters();

var_export($parameters);

/*    OUTPUT:

array (
  0 =>
  ReflectionParameter::__set_state(array(
     'name' => 'no_default',
  )),
  1 =>
  ReflectionParameter::__set_state(array(
     'name' => 'word',
  )),
  2 =>
  ReflectionParameter::__set_state(array(
     'name' => 'options',
  )),
)

*/

$nl = "\n";
echo
"$nl\tParameters$nl";
foreach(
$parameters as $param)
{
    echo
"****** $" . $param->name . " ******$nl";
    echo
"Nullable:\t\t" . $param->allowsNull() . $nl
        
."Default Value:\t\t";
    echo (
$param->isDefaultValueAvailable()) ? $param->getDefaultValue() : "None";
    echo
$nl ."Is Array:\t\t";
    echo (
$param->isArray()) ? "Yes" : "No";
    echo
$nl . "Optional:\t\t";
    echo (
$param->isOptional()) ? "Yes" : "No";
    echo
$nl;
}

/*    OUTPUT:

    Parameters
****** $no_default ******
Nullable:        1
Default Value:    None
Is Array:        No
Optional:        No
****** $word ******
Nullable:        1
Default Value:    Hello World
Is Array:        No
Optional:        Yes
****** $options ******
Nullable:        1
Default Value:    Array
Is Array:        No
Optional:        Yes

*/

?>

To clarify the possibly confusing behavior of ReflectionParemeter::isArray(), it will return true if the parameter has type hinting:

<?php
...
public function
__construct($no_default, $word = "Hello World", array $options = array('a', 'b'))
...
?>

Calling isArray() will now return true for the $options parameter



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",...)