3

这是我的代码:

class Subscriber extends DatabaseObject {

    protected static $table_name = "email_list";
    protected static $db_fields = array('id', 'email');

    public $id;
    public $email;

    function __construct() {
        self::$object = new Subscriber;
    }
}

在父类中,DatabaseObject问题是:

class DatabaseObject {

    protected static $object;
    protected static $db_fields;

    protected function attributes() {
    $attributes = array();
    foreach (self::$db_fields as $field) {
        // edited
    }
    return $attributes;
}

但是,我得到Warning: Invalid argument supplied for foreach()了因为这条线:

foreach (self::$db_fields as $field) {

为什么没有设置数组?我尝试constructor手动设置它,但它也不起作用。

4

1 回答 1

3

方法 inDatabaseObject将访问$db_fields属性 fromDatabaseObject而不是 fromSubscriber除非您通过关键字而不是使用后期静态绑定staticself

foreach (static::$db_fields as $field) { 

需要 PHP >= 5.3.0

于 2013-09-19T18:03:44.567 回答