我的应用程序此时有很多课程。我想通过定义一次有关字段/属性的信息来保存大量工作,然后在其他地方使用它来插入,更新,删除甚至记录数据。
看看这段代码:
protected $_visible_array = array(0 => 'No', 1 => 'Yes');
protected $_type_array = array(1 => 'Small', 2 => 'Medium', 3 => 'Large');
public function field_array() {
$array['visible'] = info_array('cmp_visible', 'int', 'Visible', $_visible_array);
$array['type'] = info_array('cmp_type', 'int', 'Type', $_type_array);
$array['name'] = info_array('cmp_name', 'string', 'Name');
$array['desc'] = info_array('cmp_desc', 'string', 'Description');
return $array;
}
我的info_array函数基本上使用索引'column','type','label','options'从4个参数创建一个数组,这样我以后就可以轻松获得这些值。
我遇到的第一个问题是,是否可能有类似的内容:
protected $_options['visible] = array(0 => 'No', 1 => 'Yes');
这样我就不必将第4个参数传递给info_array函数,因为我可以使用“visible”索引访问这个数组 问题是我在尝试这个时遇到PHP错误,不知道为什么......
我目前已经获得了所有属性的方法,但我想知道是否有类似下面的内容是可以的:
public function get($field) {
return $this->$field;
}
我希望能够使用我的field_array中的索引来获取该属性的值。
答案 0 :(得分:0)
我认为你的建议听起来像是一个好计划。
值得看看魔术函数__get()
和__set()
,因为我认为你可以用它做一些更好的抽象。
我可能会创建一个包含魔术方法的抽象类,并强制您在具体类中定义字段(您的$_options
数组)的元信息。
然后,您的具体类只需要定义字段的元信息,然后就可以了。