PHP反射类。如何获取属性的值? [英] PHP Reflection Class. How to get the values of the properties?

查看:972
本文介绍了PHP反射类。如何获取属性的值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在PHP中使用了反射类,但是我没有关于如何获得反射实例中属性值的线索。这是可能的?



代码:

 <?php 

class teste {

public $ name;
public $ age;

}

$ t = new teste();
$ t-> name ='John';
$ t->年龄='23';

$ api = new ReflectionClass($ t);

foreach($ api-> getProperties()as $ propertie)
{
print $ propertie-> getName()。 \\\
;
}

?>

如何在foreach循环中获取属性值?



最好的问候,

解决方案

>
  • ReflectionProperty :: getValue - 获取属性值。



  • 您的情况:

      foreach($ api-> getProperties()as $ propertie)
    {
    print $ propertie-> getName()。 \\\
    ;
    print $ propertie-> getValue($ t);
    }

    在旁注中,由于您的对象只有公共成员,因此您可以直接迭代

      foreach($ t as $ propertie => $ value)
    {
    print $ propertie。 \\\
    ;
    print $ value;
    }

    或者使用 get_object_vars 添加到数组中。


    I'm using the reflection class in PHP, but I'm with no clues on how to get the values of the properties in the reflection instance. It is possible?

    The code:

    <?php
    
    class teste {
    
        public $name;
        public $age;
    
    }
    
    $t = new teste();
    $t->name = 'John';
    $t->age = '23';
    
    $api = new ReflectionClass($t);
    
    foreach($api->getProperties() as $propertie)
    {
        print $propertie->getName() . "\n";
    }
    
    ?>
    

    How can I get the propertie values inside the foreach loop?

    Best Regards,

    解决方案

    How about

    In your case:

    foreach ($api->getProperties() as $propertie)
    {
        print $propertie->getName() . "\n";
        print $propertie->getValue($t);
    }
    

    On a sidenote, since your object has only public members, you could just as well iterate it directly

    foreach ($t as $propertie => $value)
    {
        print $propertie . "\n";
        print $value;
    }
    

    or fetch them with get_object_vars into an array.

    这篇关于PHP反射类。如何获取属性的值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆