在PHP中基于父方法定义属性

时间:2011-11-11 21:30:19

标签: php oop methods properties

class UserInfo extends Database{

    private $privileges=
        $this
            ->connect()
            ->select("users", "DISTINCT privileges", "username= 'someuser'")
            ->getResult('privileges');

}

我似乎无法根据基于父类$privileges的方法定义此属性Database

值得指出的是,当我在不同的脚本中使用相同的函数并动态定义属性时,相同的功能可以很好地工作。每个类都由一个对象实例化,它可以工作(显然有适当的setter和getter。)

$db = new Database;
$user = new UserInfo;
$user-> privileges= 
    $db
        ->connect()
        ->select("users", "DISTINCT privileges", "username= '".$user->name."'")
        -> getResult('privileges');

2 个答案:

答案 0 :(得分:2)

在类中定义属性值时,不能放置表达式。使用构造函数:

<?php
class UserInfo extends Database
{
    // ...

    public function __construct()
    {
        // initialize the 'privileges' property
    }
}
?>

答案 1 :(得分:0)

初始化私有成员时,新实例(this)尚未就绪。您必须将该代码放入构造函数中。