2011-11-11 37 views
0
class UserInfo extends Database{ 

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

} 

它似乎並不像它可能對我來說,能夠定義基於基於Database父類的方法這個屬性$privileges的屬性。定義基於父母的方法在PHP

值得指出的是,當我在不同的腳本中使用相同的函數並動態定義屬性時,相同的函數可以出色地工作。每一類由一個對象實例化的,它的工作原理(很明顯,適當的getter和setter方法。)

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

這種繼承模型只是看起來錯了。 – NullUserException

+0

我不覺得這個評論有幫助。謹慎闡述? –

回答

2

在類中定義屬性值時,不能放置表達式。使用這個構造函數:

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

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

當私有成員初始化新的實例(this)沒有準備好。您必須將該代碼放入構造函數中。