ereditato Ho un trattoPHP Trait chiamata di funzione
trait Foo{
protected static function foo(){
echo 'Hello';
}
}
e una classe
class Bar{
use Foo;
private static function foo(){
Foo::foo();
echo ' World!';
}
}
non posso usare Foo:foo()
. Cosa posso fare per ottenere l'effetto desiderato?
EDIT
Utilizzando
use Foo {foo as parentFoo}
private static function foo(){
self::parentFoo();
echo ' World!';
}
ha fatto il trucco.
vedere la risoluzione dei conflitti http://php.net/manual/en/language.oop5.traits.php – goat
Psst, si sta cercando di chiamare un metodo non statico in modo statico. Dovresti vedere un avvertimento a riguardo. Forse dovresti alzare il livello 'error_reporting'. – Charles
Oh, oops, ho dimenticato di aggiungere le parole chiave statiche nella descrizione. Sono entrambi statici nella realtà. - @rambocoder: Grazie, vedi modifica. Ha fatto il trucco. – arik