2017-06-12 61 views
0

我创建的partials中,项目属性名称从数组传递以访问这些属性的值,但在定义$property->{$variable}时收到错误Undefined property of Namespace\Entity::$variable。我将如何去做这个工作?在Zend中使用变量调用Class属性

下面是代码的一个例子:如果访问这样$item->thumb{$thumb_size}属性

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})); 
     } 
    } 
} 

回答

0

,它指的是具有$item属性thumb与数组键作为值。这里是ilustration

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

但是,如果你想像用这种方式$item->thumb{$thumb_size}访问的$item财产,你不能连接可变属性名。 如果要连接变量,请先执行,然后保存到变量中。然后使用这样的变量名称访问该属性

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