在 Zend 中使用变量调用 Class 属性

Calling Class property using variables in Zend

提问人:Chaosjosh 提问时间:6/13/2017 更新时间:6/13/2017 访问量:92

问:

我正在创建部分,其中项目属性名称从数组传递以访问这些属性的值,但是在定义 .我将如何让它工作?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}));
        }
    }
}
php zend-framework 变量类 属性

评论


答:

0赞 Dolly Aswin 6/13/2017 #1

如果您像这样访问该属性,则表示具有数组键作为值的 has 属性。这是说明$item->thumb{$thumb_size}$itemthumb

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

但是,如果您想象使用这种方式来访问 的属性,则无法将属性名称与变量连接起来。 如果要连接变量,请先进行,然后保存到变量中。然后使用变量名称访问该属性,如下所示$item->thumb{$thumb_size}$item

$thumbSize = "thumb" . $thumb_size;
if(!empty($item->$thumbSize)) {
    .
    .
    .
}