如何使用变量的值作为 属性

How to use the value of a variable as a property

我写了一个使用 PHPExcel 的 PHP-Skript。它应该使用配置文件来创建电子表格。当我尝试应用样式时,我的问题出现了。

我根据配置文件中给出的信息创建了一个样式数组。现在,当谈到例如对齐单元格或边框你会使用类似

的东西
'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER

其中 HORIZONTAL_CENTER 是所需的 属性。现在,我将这个 属性-name 存储在一个变量中,我不能使用类似

的东西
'horizontal' => PHPExcel_Style_Alignment::$variableWithPropertyName

但我需要使用变量的值,因为可以有不同的属性。

有什么想法吗?

您应该能够使用反射 API 来检索值,如下所示:

$property = new ReflectionProperty('PHPExcel_Style_Alignment', $variableWithPropertyName); 

然后可以像这样检索值:

'horizontal' => $property->getValue();
$alignmentsArray = (new ReflectionClass('PHPExcel_Style_Alignment'))->getConstants();

应该return一个可能的对齐值数组,由它们的名称索引,这样你就可以设置

'horizontal' => $alignmentsArray[$variableWithPropertyName]

其中 $variableWithPropertyName 是您的值,例如 HORIZONTAL_CENTER