0

我正在创建部分,其中项目属性名称从数组传递以访问这些属性的值,但Undefined property of Namespace\Entity::$variable在定义时收到一条错误消息$property->{$variable}。我将如何让这个工作?

以下是代码示例:

foreach ($items as $item) {
    $thumb_sizes = [];
    foreach ($image_sizes as $thumb_size) {
        if(!empty($item->thumb{$thumb_size})) {
            array_push($thumb_sizes, preg_replace('/^http:/i','https:',$item->thumb{$thumb_size}));
        }
    }
}
4

1 回答 1

0

如果您像这样访问属性$item->thumb{$thumb_size},则意味着$itemhas 属性thumb以数组键为值。这是插图

class Item
{
    public $thumb = ["100x100" => "value", "75x75" => "value"];
}

但是,如果您想象使用这种方式$item->thumb{$thumb_size}访问​​ 的属性$item,则不能将属性名称与变量连接起来。如果你想连接变量,请先做,然后保存到一个变量中。然后像这样使用变量名访问属性

$thumbSize = "thumb" . $thumb_size;
if(!empty($item->$thumbSize)) {
    .
    .
    .
}
于 2017-06-13T07:21:52.273 回答