使用 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;
}
我想从数组中的对象中获取值。对象 属性 已设置为私有。所以,我无法访问该值。
我尝试使用 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;
}