0

我可以设法从我的数据库中获取一个字段,该字段返回一个具有几个属性的对象,例如 id、height、width、top ……其中一个属性称为 props,其中包含属性名称的数组我需要的,例如它可以是:('top','bottom','left','right')。现在我要做的是遍历 $props 值并从原始对象中获取属性,并将其添加到字符串中。因此,假设从数据库中获取的类称为 $element,我有:

    $props=$element->props;
    foreach($props as $property){
        $style .= $property." : ".$element->{$property}."; ";
    }
    unset($property);

但我最终得到的 $style 是类似 top : ; left : ; bottom : ; right : ;的,显然$element->{$property}代码的一部分没有返回任何东西。我尝试了很多替代方案,但我无法弄清楚发生了什么,有人可以帮助我吗?

4

1 回答 1

0

如果您的对象确实具有诸如 的属性top,我会尝试这种方法,因为如果您尝试访问元素对象的 top|left|bottom|right 属性,则不需要花括号:

$props=$element->props;
foreach($props as $property){
    $style .= $property . " : " . $element->$property . "; ";
}

如果我可以建议进行一些小调整以使您在这里所做的事情更加明显,那么字符串连接可能会变得非常难看,尤其是如果您使用的是在 PHP 中有意义的分号:

$props = $element->props;
foreach($props as $property){
    $style_format = '%s : %s; ";
    $style .= sprintf($style_format, $property, $element->$property);
}
于 2013-01-13T04:27:18.313 回答