⊗ppOpTrMP 82 of 107 menu

PHPのOOPにおけるトレイトのメソッド優先順位

クラスとトレイトに同名のメソッドが存在する場合、 クラスのメソッドがトレイトのメソッドをオーバーライドします:

<?php trait TestTrait { // methodという名前のメソッド: public function method() { return 'trait'; } } class TestClass { use TestTrait; // 同じくmethodという名前のメソッド: public function method() { return 'test'; } } $test = new TestClass; echo $test->method(); // 'test' を出力 - クラス自体のメソッドが動作した ?>

クラス自体がそのようなメソッドを持たないが、 トレイトのメソッドと親クラスのメソッドの間で 名前の競合がある場合、トレイトのメソッドが 優先されます:

<?php trait TestTrait { // methodという名前のメソッド: public function method() { return 'trait'; } } // 親クラス: class ParentClass { // methodという名前のメソッド: public function method() { return 'parent'; } } // クラスは親からmethodメソッドを継承する: class TestClass extends ParentClass { use TestTrait; } $test = new TestClass; echo $test->method(); // 'trait' を出力、トレイトが優先されるため ?>
日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否