ReflectionClass::getConstructor

(PHP 5, PHP 7)

ReflectionClass::getConstructorВозвращает конструктор класса

Описание

public ReflectionMethod ReflectionClass::getConstructor ( void )

Возвращает конструктор отраженного класса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект ReflectionMethod, отражающий конструктор класса, или NULL если у класса нет конструктора.

Примеры

Пример #1 Пример использования ReflectionClass::getConstructor()

<?php
$class 
= new ReflectionClass('ReflectionClass');
$constructor $class->getConstructor();
var_dump($constructor);
?>

Результат выполнения данного примера:

object(ReflectionMethod)#2 (2) {
  ["name"]=>
  string(11) "__construct"
  ["class"]=>
  string(15) "ReflectionClass"
}

Смотрите также

Коментарии

Автор:
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
2010-07-16 10:47:34
http://php5.kiev.ua/manual/ru/reflectionclass.getconstructor.html
Old constructors also count as contructor:

<?php

class SomeClass {

    function 
SomeClass($some_arg) {
    }

}

$refl = new ReflectionClass('SomeClass');

var_dump($refl->isInstantiable()); // bool(true)

echo $refl->getConstructor();

/* OUTPUT:
Method [ <user, ctor> public method SomeClass ] {
  @@ /var/www/vhosts/api.example.com/httpdocs/testRefl.php 5 - 6

  - Parameters [1] {
    Parameter #0 [ <required> $some_arg ]
  }
}
*/

?>

Some more behavior:

<?php

class SomeClass {

   function 
funcA($arg1$arg2) {

   }

}

$refl = new ReflectionClass('SomeClass');

var_dump($refl->isInstantiable()); // bool(true)

var_dump($refl->getConstructor()); // NULL

/* --------------- */

class AnotherClass {

   private function 
__construct() {
   }

   function 
funcB($arg1$arg2) {

   }

}

$refl = new ReflectionClass('AnotherClass');

var_dump($refl->isInstantiable()); // bool(false)

echo $refl->getConstructor();
/*
Method [ <user, ctor> private method __construct ] {
  @@ /testRefl.php 22 - 23
}
*/

?>

Tested on PHP 5.2.4
2011-05-13 11:13:02
http://php5.kiev.ua/manual/ru/reflectionclass.getconstructor.html
This method will return the parent's constructor, if the current class does not override it.

NULL will only be returned when the class has no constructor AND none of its parents have a constructor either.
2019-07-01 12:03:36
http://php5.kiev.ua/manual/ru/reflectionclass.getconstructor.html

    Поддержать сайт на родительском проекте КГБ