echo "Hello World!\n"; } } class MyClass1 { use HelloWorld { sayHello as public; } } class MyClass2 { use HelloWorld { sayHello as final; } } class MyClass3 { use HelloWorld { sayHello as protected final; } public function sayHi() { return $this->sayHello(); } } $a = new MyClass1(); $a->sayHello(); $a = new MyClass2(); $a->sayHello(); $a = new MyClass3(); $a->sayHi();
{ use HelloWorld { sayHello as protected; } } /** * x */ class MyClass2 { use HelloWorld { sayHello as private myPrivateHello; } public function say() { $this->myPrivateHello(); } } /** * x */ class MyClass3 extends MyClass1 { public static function say() { self::sayHello(); } } MyClass3::say(); $myclass = new MyClass2(); $myclass->say();