この記事は主にPHPでのトレイトの使い方を紹介したもので、個人的にとても良いと思ったので参考にさせていただきます。ぜひ一緒に見に来てください。本文は以下から始まります。
簡単に言うと、trait キーワードは、基本クラスの属性とメソッドを統合したいが、同時に必要な クラスの問題を解決するために PHP で使用されます。他の基本クラスのメソッドを持つため、特性は通常 use と組み合わせて使用されます。以下のサンプル コードを参照してください。
<?php header("Content-type:text/html;charset=utf-8"); trait Drive { //使用trait 创建一个基类 public $carName = 'trait'; //定义一个变量 public function driving() { //定义一个方法 echo "driving {$this->carName}<br>"; } } class Person { //创建一个基类 public function eat() { //定义一个方法 echo "eat<br>"; } } class Student extends Person { //创建一个子类继承Person类 use Drive; //使用trait定义的类Drive public function study() { //定义一个方法 echo "study<br>"; } } $student = new Student(); //创建对象 $student->study(); //调用自己定义的方法 $student->eat(); //调用父类方法 $student->driving(); //调用trait定义的类Drive的方法 ?>
実行効果図を図に示します。
上記の例では、Student クラスは次の内容を継承します。人、eat メソッドを使用し、Drive を組み合わせることで、運転方法と属性 carName が得られます。
同じ名前のプロパティまたはメソッドが Trait、base class、および this class に存在する場合、最終的にどれがどこにありますか?
<?php header("Content-type:text/html;charset=utf-8"); trait Drive { //使用trait定义一个类 public function hello() { //定义一个方法 echo "我是trait类的方法hello()<br>"; } public function driving() { echo "我是trait类的方法driving()<br>"; //定义一个方法 } } class Person { //创建父类 public function hello() { //定义一个方法 echo "我是父类的方法hello()<br>"; } public function driving() { //定义一个方法 echo "我是父类的方法driving()<br>"; } } class Student extends Person { //创建子类继承Person类 use Drive; //使用trait定义的类Drive public function hello() { //定义一个方法 echo "我是子类的方法hello()<br>"; } } $student = new Student(); //创建对象 $student->hello(); //调用hello方法 $student->driving(); //调用deiving方法 ?>
実行中の効果を図に示します
したがって、メソッドまたは属性が同じ名前を持つ場合、現在のクラス will特性をオーバーライドするメソッド、この例では、学生の hello() メソッドが特性の hello() メソッドをオーバーライドします。 特性 メソッドは、基本クラスの methods をオーバーライドします。この例では、トレイトの Driving() メソッドが Person クラスの Driving() メソッドをオーバーライドします。
php についてさらに詳しく知りたい場合は、Web サイトの php モジュール にアクセスすると、さらに興味深い知識が得られます。
以上がPHP でのトレイトの使用方法の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。