class a
{
public function __construct()
{
$this->id = 123;
}
}
class b extends a
{
public function __construct()
{
ech开发者_JAVA百科o parent::id;
}
}
How do I pass variables that are set in the first class $this to the second class?
The correct way is to simply use $this->id in your subclass. All public/protected variables are available to subclasses this way. By assigning $this->id without declaring it, you've implicitly made it public. Generally you should explicitly declare the variable in the base class to document your intent to make it public:
class a
{
public $id;
public function __construct()
{
$this->id = 123;
}
}
Just remember to call parent::__construct() before you attempt to access members set by the parent class. Unlike some languages (C++) the parent class's constructor will not be automatically invoked for you.
class b extends a
{
public function __construct()
{
parent::__construct();
echo $this->id;
}
}
You can use parent::__construct() to get things that are initialized in the parent class. If you don't have anything to initialize in the child class you can avoid __construct() in the child class and it will automatically take the parent construct.
加载中,请稍侯......
精彩评论