<?php
trait HelloWorld {
public function sayHello() {
echo 'Hello World!';
}
}
// Modification de la visibilité de la méthode sayHello
class MyClass1 {
use HelloWorld { sayHello as public; }
}
// Utilisation d'un alias lors de la modification de la visibilité
// La visibilité de la méthode sayHello n'est pas modifiée
class MyClass2 {
use HelloWorld { sayHello as private; }
}
$class1 = new MyClass1();
$class2 = new MyClass2();
echo $class1->sayHello();
echo $class2->sayHello();
Hello World!
Fatal error: Uncaught Error: Call to private method MyClass2::sayHello() from global scope in /in/rjZQj:23
Stack trace:
#0 {main}
thrown in /in/rjZQj on line 23
Process exited with code 255.
Hello World!
Fatal error: Uncaught Error: Call to private method MyClass2::sayHello() from context '' in /in/rjZQj:23
Stack trace:
#0 {main}
thrown in /in/rjZQj on line 23
Process exited with code 255.