// Access parent's parent variable
class Parent1 {
const PARENT_NAME = "ramesh Song";
const PARENT_AGE = "31";
const PARENT_EMAIL = "ilovephp@gmail.com";
protected $_normal_val = "HeHeHeHe";
}
class Parent2 extends Parent1 {
public function __construct(){}
}
class Child extends Parent2 {
public function __construct(){}
public function getParentName(){
return parent::PARENT_NAME;
}
public function getNormalVal(){
return $this->_normal_val;
}
}
$c = new Child();
echo $c->getParentName();
echo "br";
echo $c->getNormalVal();
/*
Output :
ramesh Song
HeHeHeHe
*/
// Access interface constant variable
interface Parent3 {
const PARENT_NAME = "ramesh Song";
const PARENT_AGE = "31";
const PARENT_EMAIL = "ilovephp@gmail.com";
//protected $_normal_val = "HeHeHeHe"; Error : Interfaces may not include member variables
}
class Parent4 implements Parent3 {
public function __construct(){}
public function getParentName(){
//return parent::PARENT_NAME; Error : current class scope has no parent
return self::PARENT_NAME;
}
}
class Child2 extends Parent4 {
public function __construct(){}
public function getParentName(){
return parent::PARENT_NAME;
}
public function getParentAge(){
return parent::PARENT_AGE;
}
}
$d = new Parent4();
echo $d -> getParentName();
echo "br";
$e = new Child2();
echo $e->getParentName();
echo "br";
echo $e->getParentAge();
/*
Output :
ramesh Song
ramesh Song
31
*/
0 comments:
Post a Comment