ReflectionClass
在线手册:中文  英文

ReflectionClass::__construct

(PHP 5)

ReflectionClass::__construct构造一个 ReflectionClass 类

说明

ReflectionClass::__construct ( mixed $argument )

构造一个新的 ReflectionClass 对象。

Warning

本函数还未编写文档,仅有参数列表。

参数

argument

既可以是一个包含类名的字符串(string)也可以是一个对象(object)。

返回值

没有返回值。

范例

Example #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 ] {
    }
  }
}

参见


ReflectionClass
在线手册:中文  英文

用户评论:

gafisher at griasolutions dot com (2012-01-30 01:23:31)

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!');
    }
?>

cspray at gmail dot com (2011-06-12 19:14:26)

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.

ivo at jansch dot nl (2010-01-24 04:16:33)

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 )"]

易百教程