PHP -Tutorial

PHP-HOME PHP-Einführung PHP-Installation PHP-Syntax PHP-Kommentare PHP-Variablen PHP-Echo / Drucken PHP-Datentypen PHP-Strings PHP-Nummern PHP-Mathematik PHP-Konstanten PHP-Operatoren PHP If...Else...Elseif PHP-Schalter PHP-Schleifen PHP-Funktionen PHP-Arrays PHP-Superglobals PHP-RegEx

PHP -Formulare

Handhabung von PHP-Formularen PHP-Formularvalidierung PHP-Formular erforderlich PHP-Formular-URL/E-Mail PHP-Formular vollständig

PHP- Erweitert

PHP-Datum und -Zeit PHP einschließen Umgang mit PHP-Dateien PHP-Datei öffnen/lesen PHP-Datei erstellen/schreiben Hochladen von PHP-Dateien PHP-Cookies PHP-Sitzungen PHP-Filter PHP-Filter für Fortgeschrittene PHP-Callback-Funktionen PHP-JSON PHP-Ausnahmen

PHP -OOP

PHP Was ist OOP PHP-Klassen/Objekte PHP-Konstruktor PHP-Destruktor PHP-Zugriffsmodifikatoren PHP-Vererbung PHP-Konstanten Abstrakte PHP-Klassen PHP-Schnittstellen PHP-Eigenschaften Statische PHP-Methoden Statische PHP-Eigenschaften PHP-Namespaces PHP-Iterables

MySQL- Datenbank

MySQL-Datenbank MySQL Connect MySQL-DB erstellen MySQL-Tabelle erstellen MySQL-Daten einfügen MySQL Letzte ID abrufen MySQL Mehrfach einfügen MySQL vorbereitet MySQL Select-Daten MySQL-Wo MySQL-Reihenfolge nach MySQL-Daten löschen MySQL-Update-Daten MySQL-Limit-Daten

PHP- XML

PHP-XML-Parser PHP-SimpleXML-Parser PHP SimpleXML - Get PHP-XML-Expat PHP-XML-DOM

PHP -AJAX

AJAX-Einführung AJAX-PHP AJAX-Datenbank AJAX-XML AJAX Live-Suche AJAX-Umfrage

PHP- Beispiele

PHP-Beispiele PHP-Compiler PHP-Quiz PHP-Übungen PHP-Zertifikat

PHP- Referenz

PHP-Übersicht PHP-Array PHP-Kalender PHP-Datum PHP-Verzeichnis PHP-Fehler PHP-Ausnahme PHP-Dateisystem PHP-Filter PHP-FTP PHP-JSON PHP-Schlüsselwörter PHP-Libxml PHP-Mail PHP-Mathematik PHP-Sonstiges PHP MySQLi PHP-Netzwerk PHP-Ausgabesteuerung PHP-RegEx PHP-SimpleXML PHP-Stream PHP-String Umgang mit PHP-Variablen PHP-XML-Parser PHP-Zip PHP-Zeitzonen

PHP OOP - Eigenschaften


PHP - Was sind Traits?

PHP unterstützt nur die einfache Vererbung: Eine Kindklasse kann nur von einem einzigen Elternteil erben.

Was also, wenn eine Klasse mehrere Verhaltensweisen erben muss? OOP-Merkmale lösen dieses Problem.

Eigenschaften werden verwendet, um Methoden zu deklarieren, die in mehreren Klassen verwendet werden können. Merkmale können Methoden und abstrakte Methoden haben, die in mehreren Klassen verwendet werden können, und die Methoden können einen beliebigen Zugriffsmodifikator (öffentlich, privat oder geschützt) haben.

Merkmale werden mit dem trait Schlüsselwort deklariert:

Syntax

<?php
trait TraitName {
  // some code...
}
?>

Um ein Merkmal in einer Klasse zu verwenden, verwenden Sie das use Schlüsselwort:

Syntax

<?php
class MyClass {
  use TraitName;
}
?>

Schauen wir uns ein Beispiel an:

Beispiel

<?php
trait message1 {
public function msg1() {
    echo "OOP is fun! ";
  }
}

class Welcome {
  use message1;
}

$obj = new Welcome();
$obj->msg1();
?>

Beispiel erklärt

Hier deklarieren wir ein Merkmal: message1. Dann erstellen wir eine Klasse: Welcome. Die Klasse verwendet die Eigenschaft, und alle Methoden in der Eigenschaft sind in der Klasse verfügbar.

Wenn andere Klassen die Funktion msg1() verwenden müssen, verwenden Sie einfach die Eigenschaft message1 in diesen Klassen. Dadurch wird die Codeduplizierung reduziert, da dieselbe Methode nicht immer wieder neu deklariert werden muss.



PHP - Verwendung mehrerer Eigenschaften

Schauen wir uns ein anderes Beispiel an:

Beispiel

<?php
trait message1 {
  public function msg1() {
    echo "OOP is fun! ";
  }
}

trait message2 {
  public function msg2() {
    echo "OOP reduces code duplication!";
  }
}

class Welcome {
  use message1;
}

class Welcome2 {
  use message1, message2;
}

$obj = new Welcome();
$obj->msg1();
echo "<br>";

$obj2 = new Welcome2();
$obj2->msg1();
$obj2->msg2();
?>

Beispiel erklärt

Hier deklarieren wir zwei Traits: message1 und message2. Dann erstellen wir zwei Klassen: Welcome und Welcome2. Die erste Klasse (Welcome) verwendet das Merkmal message1 und die zweite Klasse (Welcome2) verwendet sowohl das message1- als auch das message2-Merkmal (mehrere Merkmale werden durch Kommas getrennt).