使用 php 从数组中的对象(具有私有 属性)访问值

Access value from object(with private property) in array using php

我想从数组中的对象中获取值。对象 属性 已设置为私有。所以,我无法访问该值。

我尝试使用 Php ReflectionClass 将 private 转换为 public。

数组中对象的 VarDump($obj_array)

array(1) 
{
  [23]=>
  object(PhpOffice\PhpSpreadsheet\Worksheet\RowDimension)#6167 (7) 
   {
    ["rowIndex":"PhpOffice\PhpSpreadsheet\Worksheet\RowDimension":private]=>
    int(23)
    ["height":"PhpOffice\PhpSpreadsheet\Worksheet\RowDimension":private]=>
    string(3) "7.5"
    ["zeroHeight":"PhpOffice\PhpSpreadsheet\Worksheet\RowDimension":private]=>
    bool(false)
    ["visible":"PhpOffice\PhpSpreadsheet\Worksheet\Dimension":private]=>
    bool(true)
    ["outlineLevel":"PhpOffice\PhpSpreadsheet\Worksheet\Dimension":private]=>
    int(0)
    ["collapsed":"PhpOffice\PhpSpreadsheet\Worksheet\Dimension":private]=>
    bool(false)
    ["xfIndex":"PhpOffice\PhpSpreadsheet\Worksheet\Dimension":private]=>
    NULL
    }
}

将私有对象转换为 public

的代码
       foreach($obj_array as $key=>$value)
       {
         $r = new ReflectionObject($value);
         $p = $r->getProperty('height');
         $p->setAccessible(true); 
         echo $obj->height.'<br/>';
       }

我希望从对象中获得高度值,7.5。它以这个错误结束。

Uncaught Error: Cannot access private property PhpOffice\PhpSpreadsheet\Worksheet\RowDimension::$height

提前致谢。

只需在内部使用 getRowHeight 函数 returns 私有 height 属性。 (如 PhpSpreadSheet 的来源所示)

/**
 * Get Row Height.
 *
 * @return float
 */
public function getRowHeight()
{
    return $this->height;
}