私は形質があります。創造のために、のは、この形質形質を呼びましょう:PHP型ヒントの特徴
trait Trait{
static function treat($instance){
// treat that trait instance with care
}
}
は今、私はまた、ユーザーがこの特性を使用するクラスを持っています。ユーザーのインスタントで治療を呼び出そうとすると、すべてが機能します。しかし、私はタイプヒントする形質を使用して、クラスのインスタンスのみが引数として与えられなければならない、そのように希望:
static function treat(Trait $instance){...}
悲しいことに、しかし、これは、関数がのインスタンスを期待していたと言う致命的な矢印になりしかし、Userのインスタンスが与えられました。このタイプのヒントは継承と実装には完全に機能しますが、どのようにタイプヒントを作成しますか?
できません。 [マニュアル](http://php.net/manual/en/language.oop5.typehinting.php)には、特にこれが記載されています。 '型ヒントは、intやstringなどのスカラー型では使用できません。形質はどちらも許可されません。 – DaveRandom
DaveRandomは正しいです、形質がインスタンス化されていないので、それらを実装するために 'use'ステートメントを使う必要があります。 – phpisuber01
@DaveRandom私はこれが別のphp 'wtf'だと思うhttp://eval.in/5936なぜクラスとして扱われないのですか?致命的なエラー:クラスHelloを再宣言できません ' – Baba