Heim Backend-Entwicklung PHP-Tutorial Besprechen Sie ausführlich die Verwendung von öffentlichen, privaten, geschützten, abstrakten und anderen Schlüsselwörtern in PHP

Besprechen Sie ausführlich die Verwendung von öffentlichen, privaten, geschützten, abstrakten und anderen Schlüsselwörtern in PHP

Jul 04, 2018 pm 05:41 PM
abstract php private protected public

Der unten stehende Herausgeber wird einen Artikel mit Ihnen teilen, der die Verwendung von öffentlichen, privaten, geschützten, abstrakten und anderen Schlüsselwörtern in PHP ausführlich bespricht. Er hat einen guten Referenzwert und ich hoffe, dass er für alle hilfreich sein wird. Folgen wir dem Editor und werfen wir einen Blick darauf.

Häufig verwendete Schlüsselwörter in PHP

PHP enthält viele Einschränkungen für Funktionen und Klassen Dazu gehören normalerweise Abstract, Final, Interface, Public, Protected, Private, Static usw. Im Folgenden analysieren und sortieren wir ihre Verwendung.

Schlüsselwörter öffentlich, privat, geschützt für Variablen und Methoden

öffentlich hat die größte Autorität und kann von Unterklassen verwendet oder unterstützt werden, wenn es später aufgerufen wird Instanziierung,

geschützt bedeutet geschützt, und auf Zugriffsberechtigungen kann nur in Unterklassen zugegriffen werden, und diese Klasse

privat bedeutet privat, nur in der aktuellen Klasse zugänglich

<?php
//
/**
* Define MyClass
*/
class MyClass
{
 public $public = &#39;Public&#39;;
 protected $protected = &#39;Protected&#39;;
 private $private = &#39;Private&#39;;
 public function printHello()
 {
 echo $this->public;
 echo $this->protected;
 echo $this->private;
 }
 protected function pro_test(){
 var_dump(1);
 }
}
$obj = new MyClass();
echo $obj->public; // 这行能被正常执行
//echo $obj->protected; // 这行会产生一个致命错误
//echo $obj->private; // 这行也会产生一个致命错误
$obj->printHello(); // 输出 Public、Protected 和 Private
$obj->pro_test();//直接报错
?>
Nach dem Login kopieren

Schlüsselwort static < für Variablen und Methoden 🎜>

Die Funktion von static besteht darin, Werte oder Methoden zu ermöglichen In einer Klasse ohne Instanziierung aufgerufen. Gleichzeitig haben statisch modifizierte Variablen die Funktion, Werte zu speichern. Wenn wir beispielsweise keine statischen Variablen verwenden, ist das Ergebnis wie folgt:

<?php
function test(){
 $var=1;
 echo $var."</br>";
 $var++;
}
test();// 1
test();// 1
test();// 1
?>
Nach dem Login kopieren

Wenn wir der Variablen Statik hinzufügen, sieht es so aus

<?php
function test(){
 static $var=1;
 echo $var."</br>";
 $var++;
}
test();// 1
test();// 2
test();// 3
?>
Nach dem Login kopieren

Hier können Sie es vielleicht nicht erkennen Nehmen wir also zunächst an, dass der Leser mit JS vertraut ist. In JS gibt es kein statisches Schlüsselwort. Wenn wir also ein Programm implementieren möchten, können wir die Ergebnisse jeder Programmoperation nach Bedarf speichern Schreiben Sie ein Programm basierend auf der nächsten Operation wie dieser.

var glo=0;
 function test(){
 glo++;
 document.writeln(glo);
 }
 test();
 test();
 test();
Nach dem Login kopieren

Dies führt dazu, dass Glo in globale Variablen gelangt, was zu Speicherlecks führt (Speicherlecks beziehen sich auf Variablen, die zu viel Speicherplatz belegen). und wird nicht freigegeben)

<script>
 var glo=0;
 function test(){
 glo++;
 document.writeln(glo);
 }
 test();// 1
 test();// 2
 test();// 3 
</script>
Nach dem Login kopieren

Im Vergleich zu Sprachen, die nicht statisch definieren, hat es den Vorteil, dass Variablen beibehalten werden. Kein Speicherverlust führt nicht leicht dazu, dass globale Variablen missbraucht werden (da der Gültigkeitsbereich nicht global ist)

$age=0;
$age++;
function test1() {
 static $age = 100;
 $age++;
 echo $age."</br>";
}
function test2() {
 static $age = 1000;
 $age++;
 echo $age."</br>";
}
test1(); // 101
test2(); // 1001
Nach dem Login kopieren

Der Schlüssel zu Klassen und Methoden Das Wort final

final kann nur zum Ändern von Klasse und Funktion verwendet werden. Nach der Verwendung von final kann der folgende Code beispielsweise nicht direkt einen Fehler melden

class BaseClass {
 public $public = &#39;Public&#39;;
 function test() {
 echo "BaseClass::test() called\n";
 }
 final public function moreTesting() {
 echo "BaseClass::moreTesting() called\n";
 }
}
class ChildClass extends BaseClass {
 public function moreTesting() {
 echo "ChildClass::moreTesting() called\n";
 }
}
Nach dem Login kopieren

Spezielle Schlüsselwörter Schnittstelle, abstrakt

Die Bedeutung von Schnittstelle besteht darin, den Programmierstil zu standardisieren ist implementiert. Wenn wir eine Schnittstelle haben, müssen wir bei Verwendung dieser Schnittstellenklasse die darin enthaltenen Methoden implementieren, was bei der einheitlichen Benennung eine Rolle spielt.

Eine einzelne Vererbung zwischen Schnittstellen wird durch Erweiterungen erreicht. Die Beziehung zwischen Klasse und Schnittstelle wird durch Implementierungen hergestellt.

Beispielcode:

rrree

Die Funktion von Abstract ist eigentlich dieselbe wie die von Interface, aber alle Methoden in der Schnittstelle müssen implementiert werden, aber in durch Abstract modifizierten Klassen kann es eine oder mehrere abstrakte Modifikationsmethoden geben, also wir kann verstehen, dass die Schnittstelle ein Sonderfall der Abstraktion ist (wenn alle Methoden abstrakte Methoden sind, müssen sie implementiert werden). Abstract weist die folgenden Merkmale auf:

1. Solange mindestens eine Methode in der Klasse das Schlüsselwort abstract verwendet, ist die Klasse abstrakt und das entsprechende Schlüsselwort muss hinzugefügt werden

2. Abstrakte Methoden haben nur den Deklarationsteil der Methode und keinen Methodenkörper.

Aber meiner Meinung nach gibt es in der praktischen Anwendung von Zusammenfassungen mehrere Szenarien wie dieses.

1 Standardisieren Sie die Benennungsregeln für öffentliche Teile bei der Mehrpersonenprogrammierung (ohne Erklärung, das Prinzip ist dasselbe als Schnittstelle)

2. Um zu verhindern, dass das übergeordnete Element direkt instanziiert wird, verwenden Sie den Stilcode

wie folgt:

<?php
interface testA{
 function funcA();
}
interface testB{
 function funcB();
}
interface testC extends testA {
 function funcC();
}
class run implements testC ,testB {
 public function funcA()
 {
 // TODO: Implement funcA() method.
 }
 public function funcB()
 {
 // TODO: Implement funcB() method.
 }
 public function funcC()
 {
 // TODO: Implement funcC() method.
 }
}
?>
Nach dem Login kopieren

Der obige Artikel beschreibt ausführlich die Verwendung von öffentlichen, privaten, geschützten, abstrakten und anderen Schlüsselwörtern in PHP. Dies ist der gesamte vom Herausgeber geteilte Inhalt. Ich hoffe, dass er Ihnen eine Referenz geben kann, und ich hoffe, dass Sie PHP unterstützen Chinesische Website.

Artikel, die Sie interessieren könnten:

Erklärung, wie PHP eine neue Array-Instanz mit demselben Wert in einem Array bilden kann

Detaillierte Erklärung zur Lösung des Problems inkonsistenter PHP-Stringlängen

Die Befehlszeile führt die Konfigurationsmethoden $argv und $argc im aus php script_php example

Das obige ist der detaillierte Inhalt vonBesprechen Sie ausführlich die Verwendung von öffentlichen, privaten, geschützten, abstrakten und anderen Schlüsselwörtern in PHP. 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ßer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

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)

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

CakePHP erstellt Validatoren CakePHP erstellt Validatoren Sep 10, 2024 pm 05:26 PM

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

See all articles