文字

ReflectionProperty::__construct

(PHP 5)

ReflectionProperty::__constructConstruct a ReflectionProperty object

说明

public ReflectionProperty::__construct ( mixed $class , string $name )

Warning

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

参数

class

The class name, that contains the property.

name

The name of the property being reflected.

返回值

没有返回值。

错误/异常

Trying to get or set private or protected class property's values will result in an exception being thrown.

范例

Example #1 ReflectionProperty::__construct() example

<?php
class  String
{
    public 
$length   5 ;
}

// Create an instance of the ReflectionProperty class
$prop  = new  ReflectionProperty ( 'String' 'length' );

// Print out basic information
printf (
    
"===> The%s%s%s%s property '%s' (which was %s)\n"  .
    
"     having the modifiers %s\n" ,
        
$prop -> isPublic () ?  ' public'  '' ,
        
$prop -> isPrivate () ?  ' private'  '' ,
        
$prop -> isProtected () ?  ' protected'  '' ,
        
$prop -> isStatic () ?  ' static'  '' ,
        
$prop -> getName (),
        
$prop -> isDefault () ?  'declared at compile-time'  'created at run-time' ,
        
var_export ( Reflection :: getModifierNames ( $prop -> getModifiers ()),  1 )
);

// Create an instance of String
$obj = new  String ();

// Get current value
printf ( "---> Value is: " );
var_dump ( $prop -> getValue ( $obj ));

// Change value
$prop -> setValue ( $obj 10 );
printf ( "---> Setting value to 10, new value is: " );
var_dump ( $prop -> getValue ( $obj ));

// Dump object
var_dump ( $obj );
?>

以上例程的输出类似于:

===> The public property 'length' (which was declared at compile-time)
     having the modifiers array (
  0 => 'public',
)
---> Value is: int(5)
---> Setting value to 10, new value is: int(10)
object(String)#2 (1) {
  ["length"]=>
  int(10)
}

Example #2 Getting value from private and protected properties using ReflectionProperty class

<?php

class  Foo  {
    public 
$x  1 ;
    protected 
$y  2 ;
    private 
$z  3 ;
}

$obj  = new  Foo ;

$prop  = new  ReflectionProperty ( 'Foo' 'y' );
$prop -> setAccessible ( true ); 
var_dump ( $prop -> getValue ( $obj ));  // int(2)

$prop  = new  ReflectionProperty ( 'Foo' 'z' );
$prop -> setAccessible ( true ); 
var_dump ( $prop -> getValue ( $obj ));  // int(2)

?>

以上例程的输出类似于:

int(2)
int(3)

参见

  • ReflectionProperty::getName() - Gets property name
  • Constructors
上一篇: 下一篇: