Maison  >  Article  >  développement back-end  >  Introduction détaillée à l'utilisation des traits en PHP

Introduction détaillée à l'utilisation des traits en PHP

angryTom
angryTomoriginal
2019-07-16 10:48:122599parcourir

Cet article présente principalement comment utiliser les traits en PHP, je pense personnellement que c'est plutôt bien, je vais le partager avec vous maintenant et le donner comme référence. Venez jeter un oeil ensemble. Le texte commence ci-dessous.

Pour faire simple, le mot-clé trait est utilisé en PHP pour résoudre le problème selon lequel une classe veut intégrer les attributs et les méthodes d'une classe de base, mais veut également avoir des méthodes d'autres classes de base, et le trait est généralement utilisé en conjonction avec use. Veuillez regarder l'exemple de code ci-dessous

<?php
    header("Content-type:text/html;charset=utf-8");
    trait Drive {                      //使用trait 创建一个基类
    public $carName = &#39;trait&#39;;         //定义一个变量
    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的方法
?>

Le diagramme d'effet de course est présenté dans la figure

Introduction détaillée à lutilisation des traits en PHP

Dans l'exemple ci-dessus, la classe Student hérite Person, with La méthode eat est combinée avec la méthode Drive pour créer la méthode de conduite et l'attribut carName.

S'il existe une propriété ou une méthode portant le même nom dans Trait, classe de base et cette classe, laquelle sera être retenu à la fin ? Où en est-on ?

<?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方法
?>

L'effet d'exécution est montré dans la figure

Introduction détaillée à lutilisation des traits en PHPPar conséquent, on conclut que lorsque la méthode ou l'attribut a le même nom, La méthode dans le la classe actuelle vaRemplacer la méthode du trait Dans cet exemple, la méthode hello() de l'élève remplace la méthode hello() dans le trait. Et la méthode du trait remplace la méthode dans la classe de base . Dans cet exemple, la méthode Driving() du trait remplace la méthode Driving() dans la classe Person.

Si vous souhaitez en savoir plus sur php, vous pouvez accéder au module php du site Web pour acquérir des connaissances plus intéressantes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn