php __autoload功能

时间:2011-10-31 22:40:14

标签: php oop

我使用以下代码加载我的对象类;

function __autoload($class_name) {
    require_once ( 'classes/'.$class_name.'.class.php');
}

如果它想要它,如果它找不到文件,它会进入数据库,找到我想要访问的数据项的表。并在stop上创建一个标准对象,其中包含表示DB中列的变量。这可能吗?我知道如何检查文件是否与PHP一起存在,但是我不确定如何在使用正确的变量名称启动后返回新的标准对象。

非常感谢。

1 个答案:

答案 0 :(得分:0)

创建一个函数,将表的所有列名称作为数组返回(没有给出数据库规范,可能是MySQL?)。然后为每个对象初始化一个空值(NULL)的对象:

$names = get_table_column_names($table);
$values = array_fill(0, count($names), NULL);
$obj = (object) array_combine($name, $values);

$obj是包含这些列的标准PHP对象。

但是,这不适用于自动加载,因为您需要动态创建类定义以反映类型。我想说,你需要通过eval / include注入它,公共属性默认初始化为NULL。