通过“点概念”字符串访问对象的嵌套属性的简单方法是什么?
例如:
#..........................Classes..........................
class Colour | class Eye | class Person
{ | { | {
$hexValue = #36ff00 | $colour; | $eyes;
} | } | }
#..........................Example..........................
$john = new Person;
$eyes = [new Eye, new Eye];
$eyes[0]->color = new Colour;
$eyes[1]->color = new Colour;
$john->eyes = [new Eye, new Eye];
#..........................Question..........................
# How can we do something like this?
$eyeColour = Helper::dot($john, 'eyes[0].colour.hexValue');
最佳答案
没有简单的方法可以做到这一点。您必须解析路径字符串,然后逐步达到所需的值。
检查 Symfony PropertyAccess Component .它可以在没有框架其余部分的情况下用作独立库。
use Symfony\Component\PropertyAccess\PropertyAccess;
$accessor = PropertyAccess::createPropertyAccessor();
$eyeColour = $accessor->getValue($john, 'eyes[0].colour.hexValue');
关于javascript - PHP:通过点表示法访问嵌套对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38087783/