Mam cechę. Ze względu na kreatywność, nazwijmy tę cechę. Cecha:Cechy wskazujące na typ PHP
trait Trait{
static function treat($instance){
// treat that trait instance with care
}
}
Teraz mam również klasę, która korzysta z tej cechy, Użytkownik. Kiedy próbujesz zadzwonić podarować z chwilą użytkownika, wszystko działa. Ale chciałbym, aby wpisać-wskazówkę, że tylko instancje klas korzystających cecha powinna być podane jako argumenty, tak:
static function treat(Trait $instance){...}
Niestety, choć powoduje to fatalnym strzałką, która mówi, że funkcja spodziewali instancję Cecha, ale przypadek Użytkownika został podany. Ten typ podpowiedzi typu doskonale sprawdza się w przypadku dziedziczenia i implementacji, ale jak mogę wpisać - wskazówkę do cechy?
Nie możesz. [Podręcznik] (http://php.net/manual/en/language.oop5.typehinting.php) wyraźnie to mówi. 'Wskazówki typów nie mogą być używane z typami skalarnymi, takimi jak int lub string. Cechy nie są dozwolone. " – DaveRandom
DaveRandom jest poprawny, musisz użyć instrukcji' use', aby zaimplementować cechy, ponieważ nie są tworzone instancjami. – phpisuber01
@DaveRandom myślę, że to jest inny php 'wtf' patrz http://eval.in/5936 jeśli nie będzie traktowany jako klasa, dlaczego otrzymujesz' Błąd krytyczny: nie można redeclare klasy Hello' – Baba