我想从数组中的对象获取值。 Object属性已设置为private。所以,我无法访问该值。
我尝试使用Php ReflectionClass将private转换为public。
数组中对象的Var_Dump($ obj数组)
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
}
}
将私有对象转换为公共的代码
foreach($obj_array as $key=>$value)
{
$r = new ReflectionObject($value);
$p = $r->getProperty('height');
$p->setAccessible(true);
echo $obj->height.'<br/>';
}
我希望得到物体的高度值7.5。它最终会出现此错误。
未捕获错误:无法访问私有属性PhpOffice \ PhpSpreadsheet \ Worksheet \ RowDimension :: $ height
提前致谢。
只需使用getRowHeight
函数,它就会在内部返回私有height
属性。 (如PhpSpreadSheet
的来源所示)
/**
* Get Row Height.
*
* @return float
*/
public function getRowHeight()
{
return $this->height;
}