Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Einführung in die Verwendung von Merkmalen in PHP

Detaillierte Einführung in die Verwendung von Merkmalen in PHP

angryTom
angryTomOriginal
2019-07-16 10:48:122661Durchsuche

Dieser Artikel stellt hauptsächlich die Verwendung von Merkmalen in PHP vor. Ich persönlich denke, dass er jetzt mit Ihnen geteilt wird und als Referenz dient. Kommen Sie vorbei und schauen Sie sich gemeinsam um. Der Text beginnt unten.

Einfach ausgedrückt wird das Trait-Schlüsselwort in PHP verwendet, um das Problem zu lösen: Eine Klasse möchte die Attribute und Methoden einer Basisklasse integrieren, möchte dies aber auch haben Methoden anderer Basisklassen, und Trait wird normalerweise in Verbindung mit use verwendet. Bitte schauen Sie sich den Beispielcode unten an

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

Das Laufeffektdiagramm ist in der Abbildung dargestellt

Detaillierte Einführung in die Verwendung von Merkmalen in PHP

Im obigen Beispiel erbt die Student-Klasse Person, mit der Methode eat und durch die Kombination von Drive erhalten wir die Methode Driving und das Attribut carName.

Wenn es eine Eigenschaft oder Methode mit demselben Namen in Trait, Basisklasse und dieser Klasse gibt, welche wird verwendet am Ende behalten werden? Wo ist einer?

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

Der laufende Effekt ist wie in der Abbildung gezeigt

Detaillierte Einführung in die Verwendung von Merkmalen in PHPDaher wird der Schluss gezogen, dass, wenn die Methode oder das Attribut denselben Namen hat, Die Methode in Die aktuelle Klasse überschreibtdie Methode des Merkmals . In diesem Beispiel überschreibt die hello()-Methode des Schülers die hello()-Methode im Merkmal. Und die Methode von trait überschreibt die Methode in der -Basisklasse. In diesem Beispiel überschreibt die Methode „driving()“ des Merkmals die Methode „driving()“ in der Klasse „Person“.

Wenn Sie mehr über PHP erfahren möchten, können Sie zum PHP-Modul der Website gehen, um weitere interessante Kenntnisse zu erfahren.

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Verwendung von Merkmalen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn