2013-01-16 68 views
-1

我有下一个代码。为什么字段userId在InheritUser中不可见?字段继承

class User{ 
    private $userId; 

function User($userId){ 
    $this->userId = $userId; 
} 

    function getId(){ 
     return $this->userId; 
    } 
} 

class InhreritUser extends User{ 
    function someFunc(){ 
      echo $this->userId; // nothing 
    } 
} 

someFunc没有返回值:

$inheritUser = new InheritUser(1); 
$inheritUser->someFunc(); 
+2

因为它是私人的。这就是私人所做的。如果只希望继承类中的可见性,那么mark是受保护的 – ilias

回答

3

这就是private关键字的要点。如果您使用protected这将工作。

请参见:http://php.net/language.oop5.visibility

此外,该代码就会抛出一个错误,如果你没有在PHP中关闭错误(在开发过程中坏主意)。

1

它是私密的。改为保护它。

只有专业人员可以进入私人领域。受保护的字段也可用于子类。