得到一个脚本,其中包含表示数据字段的字符串变量,就像它们在数据库中一样。因为这个项目是一个完整的混乱,这是一个清理它的阶段,而不必在许多地方重写字段名称。
所以一个脚本'DataKeys.php'
将变量设置为字段名称。
//results from query1
$keyField1 = 'field1';
$keyField2 = 'field2';
上面的这两个变量只是一个更长的列表的片段。
我想访问此文件并在格式化数据时使用这些变量对前端更友好。正在类中访问此脚本,但是在类中找不到脚本中定义的字段$keyField1
。我确实在那里有实际的字符串,但我认为单一访问点是最好的,所以当我进行未来的更改时,我不需要搜索整个项目。
class DataFormatter {
//put your code here
public function __construct() {
$documentRoot = filter_input(INPUT_SERVER, "DOCUMENT_ROOT");
include ($documentRoot . '/database/values/DataKeys.php');
}
public function cleanData($data){
if (is_null($data) || empty($data))
{
return;
}
foreach($data as $row){
$field1Value = $row[$keyField1];
unset($row[$keyField1]);
}
}
}
我也试过在类定义之外移动include。
$documentRoot = filter_input(INPUT_SERVER, "DOCUMENT_ROOT");
include ($documentRoot . '/database/values/DataKeys.php');
报告的错误是:
Undefined variable: keyField1
SOULTION 也许不是最佳方式,但我采用了include语句并将其放在函数中。上面的代码只是我试图实现的内容的演示,而不是我正在使用的实际代码。
答案 0 :(得分:0)
2个变量在“include”之后可用。 例如,您可以将2个值放在对象的属性中
include ...;
$this->keyField1 = $keyField1;
$this->keyField2 = $keyField2;
答案 1 :(得分:0)
您必须将 DataKeys.php 分配给班级成员。
class DataFormatter {
private $keyField1;
private $keyField2;
public function __construct($filename) {
include $filename;
$this->keyField1 = $keyField1;
$this->keyField2 = $keyField2;
}
}
$dataFormatter = new DataFormatter(filter_input(INPUT_SERVER, 'DOCUMENT_ROOT') . '/database/values/DataKeys.php');