Heim Backend-Entwicklung PHP-Tutorial So verwenden Sie Nicht-Trait-Methoden, um Mehrfachvererbung in Versionen vor PHP5.4 zu implementieren

So verwenden Sie Nicht-Trait-Methoden, um Mehrfachvererbung in Versionen vor PHP5.4 zu implementieren

Aug 26, 2017 am 10:13 AM
php5.4 trait 多继承

Sprachen wie PHP und Java unterstützen nur die Einzelvererbung, aber manchmal muss ich die Mehrfachvererbung verwenden. Natürlich können Merkmale nach PHP5.4 auch die Mehrfachvererbung besser lösen.

Im Folgenden stellen wir vor, wie man Nicht-Trait-Methoden verwendet, um mehrere Vererbungsfunktionen zu implementieren.

Dieser Code wurde von mir getestet und steht als Referenz zur Verfügung wie folgt:


Das Obige ist die von mir implementierte Funktion der PHP-Mehrfachvererbung. Der Code dient nur zum Lernen. Bitte verwenden Sie die Trait-Funktion von PHP5.4 in formalen Projekten.
<?php
/*
多继承基类
注:要想实现类多继承,必需首先继承此基类
*/
        
class multi_extends{
        
        public function __construct(){
                $this->_init_extends();
        }
        
        protected function _init_extends(){
                if(property_exists($this,&#39;_extends&#39;))
                {
                        $extends=&$this->_extends;
                        foreach($extends as $class)
                        {
                                $this->_extends($class);
                        }
                }
        }
        
        public function _extends($class_name){
                //分析目标
                $ref = new ReflectionClass($class_name);
                
                //继承公共属性
                $property_list=$ref->getProperties(ReflectionProperty::IS_PUBLIC);
                foreach($property_list as $property)
                {
                        $property_name=$property->name;
                        $property_value=$property->getValue(new $class_name);
                        if($property_name===&#39;_extends&#39;)
                        {
                                foreach($property_value as $c)
                                {
                                        $this->_extends[]=$c;
                                }
                        }else{
                                if(!property_exists($this,$property_name))
                                {
                                        $this->{$property->name}=$property_value;
                                }
                        }
                }
                
                //继承公共方法
                $method_list=$ref->getMethods(ReflectionMethod::IS_PUBLIC);
                foreach($method_list as $method)
                {
                        $this->_extends_method[$method->name]=$method->class;
                }
        }
        
        function __call($m,$a){
                if($c=$this->_extends_method[$m])
                {
                        eval("$c::$m(".&#39;$a&#39;.");");
                }
        }
}
header(&#39;content-type:text/html;charset=utf-8&#39;);
class a{
        public $a=5;
        
        public function say_name(){
                echo &#39;我叫&#39;.$this->name.&#39;<br>&#39;;
        }
}
class b{
        function say_age(){
                echo &#39;我今年&#39;.$this->age.&#39;岁<br>&#39;;
        }
        
}
class c extends multi_extends{
        public $_extends=array(&#39;a&#39;,&#39;b&#39;);
        
        
        public function say_hellow(){
                echo &#39;hellow &#39;.$this->name.&#39;<br>&#39;;
        }
}
class d{
        function say_goodbye(){
                echo &#39;goodbye &#39;.$this->name.&#39;<br>&#39;;
        }
        
}
class persion extends multi_extends{
        public $_extends=array(&#39;c&#39;,&#39;d&#39;);
        
        
        public $name="熊宝山";
        public $age="20";
        
        
        
}
//执行继承后的方法
$o=new persion();
$o->say_name();
$o->say_age();
$o->say_hellow();
$o->say_goodbye();
Nach dem Login kopieren

Artikeladresse: http://www.php.cn/php-weizijiaocheng-377482.html

Lernen Sie Programmieren auf der chinesischen PHP-Website

www.php.cn


~~~~

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Nicht-Trait-Methoden, um Mehrfachvererbung in Versionen vor PHP5.4 zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP-Merkmal DTO: Vereinfachung der Entwicklung von Datenübertragungsobjekten PHP-Merkmal DTO: Vereinfachung der Entwicklung von Datenübertragungsobjekten Oct 12, 2023 am 09:04 AM

PHPtraitDTO: Vereinfachung der Entwicklung von Datenübertragungsobjekten Einführung: In der modernen Softwareentwicklung spielen Datenübertragungsobjekte (kurz DataTransferObject, DTO) eine wichtige Rolle. DTO ist ein reiner Datencontainer, der zum Übertragen von Daten zwischen Schichten verwendet wird. Während des Entwicklungsprozesses müssen Entwickler jedoch eine große Menge ähnlichen Codes schreiben, um DTOs zu definieren und zu betreiben. Um diesen Prozess zu vereinfachen, wurde die Trait-Funktion in PHP eingeführt. Wir können die Trait-Funktion dazu verwenden

Ausführliche Erklärung der C++-Friend-Funktionen: Welche Rolle spielen Friend-Funktionen bei der Mehrfachvererbung? Ausführliche Erklärung der C++-Friend-Funktionen: Welche Rolle spielen Friend-Funktionen bei der Mehrfachvererbung? Apr 29, 2024 pm 06:39 PM

Friend-Funktionen ermöglichen Nicht-Mitgliedsfunktionen den Zugriff auf private Mitglieder und spielen eine Rolle bei der Mehrfachvererbung, sodass abgeleitete Klassenfunktionen auf private Mitglieder der Basisklasse zugreifen können.

Vertiefendes Verständnis der Entwurfsmuster und -praktiken von PHP Trait DTO Vertiefendes Verständnis der Entwurfsmuster und -praktiken von PHP Trait DTO Oct 12, 2023 am 08:48 AM

Vertiefendes Verständnis der Designmuster und -praktiken von PHPtraitDTO Einführung: In der PHP-Entwicklung sind Designmuster ein wesentlicher Bestandteil. Unter diesen ist DTO (DataTransferObject) ein häufig verwendetes Entwurfsmuster zum Kapseln von Datenübertragungsobjekten. Bei der Implementierung von DTO kann die Verwendung von Merkmalen (Features) die Wiederverwendbarkeit und Flexibilität des Codes effektiv verbessern. Dieser Artikel befasst sich mit den Entwurfsmustern und -praktiken von traitDTO in PHP

PHP-Merkmal DTO: ein wichtiges Werkzeug zur Optimierung des Datenübertragungsprozesses PHP-Merkmal DTO: ein wichtiges Werkzeug zur Optimierung des Datenübertragungsprozesses Oct 12, 2023 pm 03:10 PM

PHPtraitDTO: Ein wichtiges Tool zur Optimierung des Datenübertragungsprozesses. Es sind spezifische Codebeispiele erforderlich. Einführung: Während des Entwicklungsprozesses ist die Datenübertragung eine sehr häufige Anforderung, insbesondere wenn Daten zwischen verschiedenen Ebenen übertragen werden. Bei der Übermittlung dieser Daten müssen wir die Daten häufig verarbeiten, überprüfen oder konvertieren, um unterschiedliche Geschäftsanforderungen zu erfüllen. Um die Lesbarkeit und Wartbarkeit des Codes zu verbessern, können wir zur Optimierung PHPtraitDTO (DataTransferObject) verwenden

PHP-Merkmal DTO: Erzielung von Einfachheit und Flexibilität bei Datenübertragungsobjekten PHP-Merkmal DTO: Erzielung von Einfachheit und Flexibilität bei Datenübertragungsobjekten Oct 12, 2023 am 10:21 AM

PHPtraitDTO: Einfachheit und Flexibilität von Datenübertragungsobjekten implementieren Einführung: Im PHP-Entwicklungsprozess sind häufig die Datenübertragung und -verarbeitung beteiligt. Das DataTransferObject (kurz DTO) ist ein Entwurfsmuster, das zur Übertragung von Daten zwischen verschiedenen Schichten verwendet wird. Während des Übertragungsprozesses vereinfacht DTO Datenoperationen durch die Kapselung von Daten und die Bereitstellung öffentlicher Zugriffsmethoden. In diesem Artikel wird erläutert, wie Sie PHPtrait zur Implementierung von DT verwenden

Implementieren Sie ein hochgradig anpassbares Datenübertragungs-Framework mithilfe des PHP-Trait-DTO Implementieren Sie ein hochgradig anpassbares Datenübertragungs-Framework mithilfe des PHP-Trait-DTO Oct 12, 2023 pm 12:46 PM

Implementierung eines hochgradig anpassbaren Datenübertragungs-Frameworks mit PHPtraitDTO Da Websites und Anwendungen immer komplexer werden, wird die Datenübertragung immer wichtiger. In PHP kann die Verwendung von DataTransferObject (kurz DTO) zur Abwicklung der Datenübertragung den Code erheblich vereinfachen und die Wartbarkeit und Skalierbarkeit verbessern. In diesem Artikel wird erläutert, wie Sie mit PHPtrait und DTO ein hochgradig anpassbares Datenübertragungs-Framework implementieren und entsprechende Codebeispiele bereitstellen.

PHP-Merkmal DTO: elegantes Datenübertragungsobjektmuster PHP-Merkmal DTO: elegantes Datenübertragungsobjektmuster Oct 12, 2023 am 08:34 AM

PHPtraitDTO: Elegant Data Transfer Object Pattern Übersicht: Data Transfer Object (kurz DTO) ist ein Entwurfsmuster, das zum Übertragen von Daten zwischen verschiedenen Ebenen verwendet wird. In Anwendungen ist es häufig erforderlich, Daten von einer Datenbank oder einem externen Dienst abzurufen und sie zwischen verschiedenen Schichten der Anwendung weiterzugeben. Der DTO-Modus kann die Datenübertragung prägnanter und klarer gestalten und erleichtert außerdem die Erweiterung und Wartung. In PHP können wir Merkmale verwenden, um DTO zu implementieren

PHP-Merkmal DTO: ein wichtiges Werkzeug zur Optimierung des Datenübertragungsprozesses PHP-Merkmal DTO: ein wichtiges Werkzeug zur Optimierung des Datenübertragungsprozesses Oct 12, 2023 am 09:27 AM

PHPtraitDTO: Ein wichtiges Tool zur Optimierung des Datenübertragungsprozesses. Im Entwicklungsprozess sind spezifische Codebeispiele erforderlich. Die effiziente Übertragung von Daten ist zu einem der Probleme geworden, die Entwickler lösen müssen. In der PHP-Sprache kann die Verwendung von traitDTO (DataTransferObject) den Datenübertragungsprozess optimieren und die Effizienz der Datenübertragung verbessern. In diesem Artikel wird vorgestellt, was TraitDTO ist und wie man es zur Optimierung des Datenübertragungsflusses verwendet

See all articles