基本クラスではなく拡張クラスからプロパティの値を設定しようとするとエラーが発生しませんか?PHPプライベート変数が拡張クラスで動作するのはなぜですか?
<?php
class first{
public $id = 22;
private $name;
protected $email;
public function __construct(){
echo "Base function constructor<br />";
}
public function printit(){
echo "Hello World<br />";
}
public function __destruct(){
echo "Base function destructor!<br />";
}
}
class second extends first{
public function __construct($myName, $myEmail){
$this->name = $myName;
$this->email = $myEmail;
$this->reveal();
}
public function reveal(){
echo $this->name.'<br />';
echo $this->email.'<br />';
}
}
$object = new second('sth','[email protected]');
?>
いいえ、親クラスのプライベートプロパティにアクセスすることはできません(存在していることさえ知らない)ので、拡張クラス –
に新しいpublicプロパティを作成するだけです。 '$オブジェクトの' var_dump' 'あなたが答えを持っていると思います –