php获取类的私有属性有哪些方法,你知道几个?
发布时间:2022-02-21 15:53:56 所属栏目:PHP教程 来源:互联网
导读:php获取类的私有属性有哪些方法?很多朋友想要知道php获取类的私有属性有多少种方法,这篇文章就给大家分享一下小编所了解的三种方法,分别是反射,转换成数组和闭包,感兴趣的朋友就继续往下看吧。 1. 反射 反射可以获取类的详细信息,要获取私有属性的值,
php获取类的私有属性有哪些方法?很多朋友想要知道php获取类的私有属性有多少种方法,这篇文章就给大家分享一下小编所了解的三种方法,分别是反射,转换成数组和闭包,感兴趣的朋友就继续往下看吧。 1. 反射 反射可以获取类的详细信息,要获取私有属性的值,只需将对应属性的ReflectionProperty实例设置为可访问再取值即可。示例代码如下: namespace tlanyan; class Foo { private $bar = "Foo bar!"; } // 获取反射类及反射属性 $class = new ReflectionClass(Foo::class); $property = $class->getProperty("bar"); // 设置属性可访问 $property->setAccessible(true); $foo = new Foo; // 获取对象属性值 // 注意:只能通过 ReflectionProperty 实例的 getValue 方法访问 // 不能这样直接访问: $foo->bar; echo $property->getValue($foo), PHP_EOL: // 输出: Foo bar! 2. 转换成数组 这种方法用将对象强制转换成数组,再通过键获取其值。示例代码如下: class Foo { private $bar = "Foo bar!"; } $foo = new Foo; // 强制转型 $attrs = (array)$foo; // 拼接key,注意 " |