Ho fatto qualche modifica, ma continuo a non riuscire a stampare la $var3.
codice:
<?php trait MyTrait {
// Proprietà, non ridefinibili nelle classi
public $var1 = "A";
protected $var2;
private $var3;
// Metodi, ridefinibili nelle classi
public function function1() {
echo "function 1"."<br />";
}
protected function function2() {
echo "function 2"."<br />";
}
private function function3() {
echo "function 3"."<br />";
}
public static function function4() {
echo "function 4"."<br />";
}
abstract function function5();
public function setVar3($v) {
$this->var3 = $v;
}
}
class MyClass {
use MyTrait;
public function function5() {
echo "function 5 ", $this->var1;
}
public function writeVar3() {
echo $this->var3;
}
}
$myClass = new MyClass();
$myClass->function1(); // output => 'function 1'
$myClass->setVar3("B");
$myClass->writeVar3();
echo $myClass->var1; // output => 'A'
echo $myClass->var3; // errore
?>
Risultato:
function 1A
Fatal error: Cannot access private property MyClass::$var3 in /membri/gaspare/oop/trait.php on line 46