Heim Backend-Entwicklung PHP-Tutorial wie man Klassen in PHP lernt

wie man Klassen in PHP lernt

Aug 04, 2017 pm 04:08 PM
php 学习

Klassenstruktur: Die internen Funktionen einer Klasse können drei Dinge haben, nämlich Konstanten, Eigenschaften und Methoden. Funktionen können als Konstanten, Variablen und Funktionen außerhalb der Klasse verstanden werden.

Der Code lautet wie folgt:

<?php      
class TEST      
{      
    const NAME = &#39;value&#39;; // 常量      
    public $name = &#39;value&#39;; // 属性      
    public function name() // 方法      
    {      
        echo &#39;value&#39;;      
    }      
}      
?>
Nach dem Login kopieren


Dabei können Eigenschaften und Methoden drei verschiedene Schlüsselwörter verwenden: public, protected und private, um die Funktionen von Eigenschaften und Methoden zu kombinieren Der Gültigkeitsbereich wird weiter unterschieden. Eigenschaften und Methoden mit dem Schlüsselwort „private“ können nur von Methoden in der Klasse aufgerufen werden, in der sie sich befinden. Eigenschaften und Methoden mit dem Schlüsselwort „protected“ können von Methoden in ihrer eigenen übergeordneten Klasse und Unterklasse aufgerufen werden Es kann auch nach der Instanziierung mit dem Schlüsselwort public aufgerufen werden. Der größte Vorteil besteht darin, dass es allen Eigenschaften und Methoden einige beschreibende Funktionen hinzufügt, was die Organisation und Organisation des Codes erleichtert . Struktur. Das Schlüsselwort const wird zuerst übersprungen und später zusammen mit static besprochen.

Das statische Schlüsselwort ist ein weiterer Schlüsselworttyp, der sich von „public“, „protected“ und „private“ unterscheidet (es kann also in Kombination mit „public“, „protected“ und „private“ verwendet werden):

Der Code lautet wie folgt:

<?php      
class TEST      
{      
    public static function name()       
    {      
        echo &#39;value&#39;;      
    }      
}      
?>
Nach dem Login kopieren


Methoden mit dem Schlüsselwort static können direkt über das Symbol „::“ aufgerufen werden, ohne die Klasse zu instanziieren, und werden mit public, protected und private kombiniert , Sie können den Aufruf auch Berechtigungen unterscheiden lassen, aber er wird normalerweise mit public gepaart. Das oben erwähnte konstante Schlüsselwort const sollte vom öffentlichen statischen Typ sein, sodass Konstanten nur über self::NAME, TEST::NAME aufgerufen werden können Die folgenden Methoden sind __construct, __destruct und andere statisch.

Im Strukturteil der Klasse sind die letzten beiden eingeführten Schlüsselwörter „abstract“ und „final“. Das Schlüsselwort „abstract“ gibt an, dass diese Klasse von ihren Unterklassen überschrieben werden muss, und das Schlüsselwort „final“ gibt an, dass diese Klasse nicht überschrieben werden darf Durch die Unterklassenüberschreibung sind die Funktionen dieser beiden Schlüsselwörter genau entgegengesetzt. Methoden mit abstrakten Methoden werden als abstrakte Klassen bezeichnet. Es gibt zwei Hauptmöglichkeiten, die

-Klasse zu verwenden: Es gibt zwei Hauptmöglichkeiten, die

-Klasse zu verwenden: Eine besteht darin, das neue Schlüsselwort zu verwenden, die andere darin, das „::“ zu verwenden. Symbol:

PHP-Code

Der Code lautet wie folgt:

<?php      
class TEST      
{      
    public static function name()       
    {      
        echo &#39;value&#39;;      
    }      
}      
//方法1:使用new关键字      
$test = new TEST;      
$test->name();      
//方法2:使用“::”符号      
TEST::name();      
?>
Nach dem Login kopieren



(1): Verwenden Sie das neue Schlüsselwort, um zu werden Eine Instanziierung. Das obige $test ist eine TEST-Klasse. Für durch Instanziierung generierte Objekte wird $test->name() als Namensmethode des $test-Objekts bezeichnet.
(2): Wenn Sie das Schlüsselwort new zur Verwendung einer Klasse verwenden, können Sie mit $this auf die Klasse selbst verweisen.
(3): Voraussetzung für die Verwendung des Symbols „::“ ist, dass die Methode das Schlüsselwort „statisch“ haben muss öffentliches Schlüsselwort, geschützt, privat, der Standardwert ist öffentlich)
(4): Dieselbe Klasse kann über das neue Schlüsselwort in mehrere verschiedene Objekte instanziiert werden, diese sind jedoch voneinander isoliert Wird die Methode verwendet, wird sie von mehreren Benutzern gemeinsam genutzt:

PHP-Code

Der Code lautet wie folgt:

<?php      
class TEST1      
{      
    public $name = 0;      
    public function name()       
    {      
        $this->name = $this->name + 1;      
    }      
}      
$test1 = new TEST1;      
$test2 = new TEST1;      
$test1->name(); //$name1 == 1      
$test2->name(); //$name1 == 1      
/*--------------------------------------------*/     
class TEST2      
{      
    public static $name = 0;      
    public static function name()       
    {      
        TEST2::$name = TEST2::$name + 1;      
    }      
}      
TEST2::name(); // $name == 1      
TEST2::name(); // $name == 2      
?>
Nach dem Login kopieren

Beziehung zwischen Klassen:

Die Beziehung zwischen Klassen umfasst hauptsächlich Abstraktion, Schnittstelle und Vererbung:

PHP-Code

Der Code lautet wie folgt:

<?php      
abstract class TEST1 // 抽象      
{      
    abstract public function name1();      
    public function name2()      
    {      
    }      
}      
class TEST2 extends TEST1 implements TEST3 // 继承      
{      
    public function name1()      
    {      
    }      
}      
interface TEST3 // 接口      
{      
    public function name2();      
}      
?>
Nach dem Login kopieren



(1) Klassen mit dem Schlüsselwort abstract sind abstrakte Klassen, und Methoden mit dem Schlüsselwort abstract sind abstrakte Methoden. Abstrakte Methoden in abstrakten Klassen müssen in Unterklassen überschrieben werden.
(2) Eine Klasse mit dem Schlüsselwort interface ist eine Schnittstelle. Es ist nicht zulässig, dass alle Methoden in der Schnittstelle in Unterklassen überschrieben werden.
(3) Die Worte „KlasseA erweitert KlasseB“ oder „KlasseA implementiert KlasseB“ bedeuten, dass eine andere Klasse geerbt wird, und „implementiert“ bedeutet, dass eine andere Schnittstelle geerbt wird. Es kann jedoch jeweils nur eine Klasse erweitert werden, es können jedoch mehrere Schnittstellen implementiert werden.
(4) Abstrakte Klassen, Schnittstellen und letztendlich geerbte und implementierte Methoden müssen öffentlich sein.

Während des Vererbungsprozesses überschreibt die Unterklasse die Methode der übergeordneten Klasse mit demselben Namen. Wenn Sie zu diesem Zeitpunkt die Methode der übergeordneten Klasse in der Unterklasse aufrufen müssen, können Sie die übergeordnete Klasse verwenden Schlüsselwort oder der Klassenname plus ":: "Symbolaufruf:

PHP-Code

Der Code lautet wie folgt:

<?php      
class TEST1 extends TEST2      
{      
    public function name()      
    {      
        echo parent::name2();      
        echo TEST2::name2();      
    }      
}      
class TEST2      
{      
    public function name2()      
    {      
        echo &#39;value2&#39;;      
    }      
}      
$test = new TEST1;      
$test->name();      
?>
Nach dem Login kopieren



Hier ist eine weitere Erklärung der Methode „::“ in der Klasse. Unter den Funktionen besteht eine darin, Konstanten aufzurufen (eigentlich kann sie auch als statisch verstanden werden), statische Eigenschaften und Methoden ohne Instanziierung, und die andere darin, bequem zu erstellen diejenigen innerhalb der Klasse über den Kanal „Selbst“, „Eltern“ und „Klasse“.

Die Beziehung zwischen Objekten ist hauptsächlich "==" gleich, "===" alle gleich, nicht gleich und Klon: ​​

PHP-Code

<?php     
class TEST     
{     
    public function name()     
    {     
    }     
}     
$test1 = new TEST;     
$test2 = new TEST;     
$test3 = $test1;     
echo $test1 == $test2 ? true : false; // true     
echo $test1 == $test3 ? true : false; // true     
echo $test2 == $test3 ? true : false; // true     
echo $test1 === $test2 ? true : false; // false     
echo $test1 === $test3 ? true : false; // true     
echo $test2 === $test3 ? true : false; // false     
?>
Nach dem Login kopieren

(1)两个类只要拥有相同的属性和方法,就是“==”等于。
(2)两个类必须是指向的同一个对象,才能是“===”全等于。

clone比较特殊,在上面的例子中,$test3 = $test1的过程并不是给了 $test3 一份 $test1 对象的拷贝,而是让 $test3 指向了 $test1,如果一定要获得一份$test1的拷贝,就必须使用clone关键字:

PHP代码

代码如下:

<?php      
$test3 = clone $test1;      
?>
Nach dem Login kopieren

类的钩子:

__autoload:
是一个函数名,也是唯一一个在类的外部使用的钩子,在实例化一个对象的时候,如果没有预先载入类,就会调用这个钩子。

__construct
在类被实例话的时候,被调用的钩子,可以做一些初始化的操作。

__destruct
在类被销毁的时候,被调用的钩子。

__call
当对象试图调用一个不存在的方法的时候,被调用的钩子

__sleep
当使用serialize()函数对一个类进行序列话操作的时候,会调用这个钩子

__wakeup
当使用unserialize()函数对一个类进行反序列话操作的时候,会调用这个钩子

__toString
当一个对象将被转变为字符串的时候,会调用这个钩子(比如echo的时候)

__set_state
当调用var_export()函数操作一个类的时候,会调用这个钩子

__clone
当使用clone关键字对一个类进行拷贝操作的时候,会调用这个钩子

__get
在获取一个类中的属性值的时候,会调用这个钩子

__set
在设置一个类中的属性值的时候,会调用这个钩子

__isset
在使用isset()函数对类中的属性值进行判定的时候,会调用这个钩子

__unset
在使用unset()函数销毁一个属性值的时候,会调用这个钩子

类的小技巧:

在实例话一个类的时候,可以使用这样的形式给__construct钩子传递参数:

PHP代码

代码如下:

<?php      
class TEST      
{      
    public function __construct($para)      
    {      
        echo $para;      
    }      
}      
$test = new TEST(&#39;value&#39;); // 显示 value      
?>
Nach dem Login kopieren


foreach()函数可以用来对类或者对象中的属性进行遍历,遍历的时候会先判断public, protected, private的情况而显示:

PHP代码

代码如下:

<?php      
class TEST      
{      
    public $property1 = &#39;value1&#39;;      
    public $property2 = &#39;value2&#39;;      
    public $property3 = &#39;value3&#39;;      
    public function name()      
    {      
        foreach($this as $key => $value)      
        {      
            print "$key => $value\n";      
        }      
    }      
}      
$test = new TEST;      
foreach($test as $key => $value)      
{      
    print "$key => $value\n";      
}      
$test->name();      
?>
Nach dem Login kopieren


在给类中的方法传递参数的时候,可以对参数进行强制的判定,这里只支持对数组和对象的判定:

PHP代码

代码如下:

<?php      
class TEST1      
{      
    public function name( TEST2 $para )      
    {      
    }      
}      
class TEST2      
{      
}      
$test2 = new TEST2;      
$test1 = new TEST1;      
$test1->name(&#39;value&#39;); // 会报错,因为这个参数必须是TEST2实例化以后的对象      
$test1->name($test1); // 不会报错      
?>
Nach dem Login kopieren


兼容php4的语法:

php5的类是往下兼容php4的,这些php4时代的语法也得到了继承,但是并不建议在php5的环境中使用。

(1)使用var预设属性,会自动转换成public。

(2)使用类名作为构造函数,在没有__construct构造方法的情况下,会寻找和类名相同的函数作为构造函数。

Das obige ist der detaillierte Inhalt vonwie man Klassen in PHP lernt. 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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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 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.

7 PHP-Funktionen, die ich leider vorher nicht kannte 7 PHP-Funktionen, die ich leider vorher nicht kannte Nov 13, 2024 am 09:42 AM

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

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

Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Wie analysiert und verarbeitet man HTML/XML in PHP? Wie analysiert und verarbeitet man HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge Feb 07, 2025 pm 12:12 PM

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Erklären Sie die späte statische Bindung in PHP (statisch: :). Erklären Sie die späte statische Bindung in PHP (statisch: :). Apr 03, 2025 am 12:04 AM

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Apr 03, 2025 am 12:03 AM

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.

See all articles