ReflectionClass::__construct

(PHP 5)

ReflectionClass::__constructСоздаёт объект класса ReflectionClass

Описание

ReflectionClass::__construct ( mixed $argument )

Создаёт новый объект класса ReflectionClass.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

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

argument

В качестве аргумента может принимать строку (string), содержащую имя исследуемого класса, либо объект (object).

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

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Простой пример использования ReflectionClass

<?php
Reflection
::export(new ReflectionClass('Exception'));
?>

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

Class [ <internal:Core> class Exception ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [7] {
    Property [ <default> protected $message ]
    Property [ <default> private $string ]
    Property [ <default> protected $code ]
    Property [ <default> protected $file ]
    Property [ <default> protected $line ]
    Property [ <default> private $trace ]
    Property [ <default> private $previous ]
  }

  - Methods [10] {
    Method [ <internal:Core> final private method __clone ] {
    }

    Method [ <internal:Core, ctor> public method __construct ] {

      - Parameters [3] {
        Parameter #0 [ <optional> $message ]
        Parameter #1 [ <optional> $code ]
        Parameter #2 [ <optional> $previous ]
      }
    }

    Method [ <internal:Core> final public method getMessage ] {
    }

    Method [ <internal:Core> final public method getCode ] {
    }

    Method [ <internal:Core> final public method getFile ] {
    }

    Method [ <internal:Core> final public method getLine ] {
    }

    Method [ <internal:Core> final public method getTrace ] {
    }

    Method [ <internal:Core> final public method getPrevious ] {
    }

    Method [ <internal:Core> final public method getTraceAsString ] {
    }

    Method [ <internal:Core> public method __toString ] {
    }
  }
}

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

Коментарии

It's very useful to know that you can also use the ReflectionClass to inspect interfaces, even thouth Interfaces are not classes. Example:

<?php

 
interface Edible
 
{
    public function 
eat();
  }

 
$refl = new ReflectionClass("Edible");
 
$methods $refl->getMethods();
?>

[Edit by danbrown AT php DOT net - Contains a bugfix by (dbl AT bnet DOT com) on 18-AUG-2010 with the following message: "underline had to be removed for it to work ( new Reflection_Class -> new ReflectionClass )"]
2010-01-24 06:16:33
http://php5.kiev.ua/manual/ru/reflectionclass.construct.html
Useful to know that if you pass a string into the construct and the class cannot be instantiated for some reason a SPL LogicException will be thrown. 

This code was ran on a Mac OS X 10.6.7, AMP, PHP 5.3+

<?php

   
//  index.php
   
try {
       
$ReflectedClass = new ReflectionClass('NonExist');
    } catch (
LogicException $logicDuh) {
       
print_r($logicDuh);
    }
   
?>

Will return a deeply nested array full of useful information about the error.
2011-06-12 22:14:26
http://php5.kiev.ua/manual/ru/reflectionclass.construct.html
Running the following code on Windows Vista (I know, I know), PHP 5.3.9, the ReflectionClass constructor actually throws a ReflectionException when the desired class cannot be instantiated:

<?php
   
try {
       
$ReflectedClass = new ReflectionClass('NonExist');
    } catch (
LogicException $Exception) {
        die(
'Not gonna make it in here...');
    } catch (
ReflectionException $Exception) {
        die(
'Your class does not exist!');
    }
?>
2012-01-30 03:23:31
http://php5.kiev.ua/manual/ru/reflectionclass.construct.html
Example of usage:

    public static function getClassData($class)
    {
        // Trying to create a new object of ReflectionClass class
        $class = new ReflectionClass($class);

        $details = sprintf('%s - %s%s%s%s%s%s%s%s',
            $class->getName(),
            $class->isInternal()     ? 'internal class,' : 'user-defined class,',
            $class->isTrait()        ? '  is trait,'  : '',
            $class->isInterface()    ? '  is interface,'  : '',
            $class->isAbstract()     ? '  is abstract,'  : '',
            $class->isFinal()        ? '  is final,'  : '',
            $class->isCloneable()    ? '  is cloneable,'  : '',
            $class->isInstantiable() ? ' is instantiable,'  : '',
            $class->isIterateable()  ? ' is iterable  : ''
        );

        return '<pre class="debug">' . rtrim($details, ',') . '</pre>';
    }
2013-10-29 01:09:02
http://php5.kiev.ua/manual/ru/reflectionclass.construct.html
To reflect on a namespaced class in PHP 5.3, you must always specify the fully qualified name of the class - even if you've aliased the containing namespace using a "use" statement. 

So instead of: 

<?php 
use App\Core as Core
$oReflectionClass = new ReflectionClass('Core\Singleton'); 
?> 

You would type: 

<?php 
use App\Core as Core
$oReflectionClass = new ReflectionClass('App\Core\Singleton'); 
?>
2015-05-22 21:47:44
http://php5.kiev.ua/manual/ru/reflectionclass.construct.html

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