a)在子类中常用到这两个对像。他们的主要区别在于self可以调用父类中的公有或受保护的属性,但parent不可以调用
b).self:: 它表示当前类的静态成员(方法和属性) 与 $this 不同,$this是指当前对像 附代码:
a)在子类中常用到这两个对像。他们的主要区别在于self可以调用父类中的公有或受保护的属性,但parent不可以调用
b).self:: 它表示当前类的静态成员(方法和属性) 与 $this 不同,$this是指当前对像 附代码:
| <?php | |
| /** | |
| * parent 只能调用父类中的公有或受保护的方法,不能调用父类中的属性 | |
| * self 可以调用父类中除私有类型的方法和属性外的所有数据 | |
| */ | |
| class User{ | |
| public $name; | |
| private $passwd; | |
| protected $email; | |
| public function __construct(){ | |
| //print __CLASS__." "; | |
| $this->name= 'simple'; | |
| $this->passwd='123456'; | |
| $this->email = '[email protected]'; | |
| } | |
| public function show(){ | |
| print "good "; | |
| } | |
| public function inUserClassPublic() { | |
| print __CLASS__.'::'.__FUNCTION__." "; | |
| } | |
| protected function inUserClassProtected(){ | |
| print __CLASS__.'::'.__FUNCTION__." "; | |
| } | |
| private function inUserClassPrivate(){ | |
| print __CLASS__.'::'.__FUNCTION__." "; | |
| } | |
| } | |
| class simpleUser extends User { | |
| public function __construct(){ | |
| //print __CLASS__." "; | |
| parent::__construct(); | |
| } | |
| public function show(){ | |
| print $this->name."//public "; | |
| print $this->passwd."//private "; | |
| print $this->email."//protected "; | |
| } | |
| public function inSimpleUserClassPublic() { | |
| print __CLASS__.'::'.__FUNCTION__." "; | |
| } | |
| protected function inSimpleUserClassProtected(){ | |
| print __CLASS__.'::'.__FUNCTION__." "; | |
| } | |
| private function inSimpleUserClassPrivate() { | |
| print __CLASS__.'::'.__FUNCTION__." "; | |
| } | |
| } | |
| class adminUser extends simpleUser { | |
| protected $admin_user; | |
| public function __construct(){ | |
| //print __CLASS__." "; | |
| parent::__construct(); | |
| } | |
| public function inAdminUserClassPublic(){ | |
| print __CLASS__.'::'.__FUNCTION__." "; | |
| } | |
| protected function inAdminUserClassProtected(){ | |
| print __CLASS__.'::'.__FUNCTION__." "; | |
| } | |
| private function inAdminUserClassPrivate(){ | |
| print __CLASS__.'::'.__FUNCTION__." "; | |
| } | |
| } | |
| class administrator extends adminUser { | |
| public function __construct(){ | |
| parent::__construct(); | |
| } | |
| } | |
| /** | |
| * 在类的实例中 只有公有属性和方法才可以通过实例化来调用 | |
| */ | |
| $s = new administrator(); | |
| print '-------------------'; | |
| $s->show(); | |
| ?> |