PHP中new static() 和 new self() 的区别介绍_php技巧
长夜漫漫啊!
今天领导本地搭建一个站。发现用PHP 5.2 搭建不起来,站PHP代码里面有很多5.3以上的部分,领导让苦逼我更改在5.2下能运行。
改着改着发现了一个地方
return new static($val);
这尼玛是神马,只见过
return new self($val);
于是上网查了下,他们两个的区别。
self – 就是这个类,是代码段里面的这个类。
static – PHP 5.3加进来的只得是当前这个类,有点像$this的意思,从堆内存中提取出来,访问的是当前实例化的那个类,那么 static 代表的就是那个类。
还是看看老外的专业解释吧。
self refers to the same class whose method the new operation takes place in.
static in PHP 5.3's late static bindings refers to whatever class in the hierarchy which you call the method on.
In the following example, B inherits both methods from A. self is bound to A because it's defined in A‘s implementation of the first method, whereas static is bound to the called class (also see get_called_class() ).
class A {
public static function get_self() {
return new self();
}
public static function get_static() {
return new static();
}
}
class B extends A {}
echo get_class(B::get_self()); // A
echo get_class(B::get_static()); // B
echo get_class(A::get_static()); // A
这个例子基本上一看就懂了吧。
原理了解了,但是问题还没有解决,如何解决掉 return new static($val); 这个问题呢?
其实也简单就是用 get_class($this); 如下
class A {
public function create1() {
$class = get_class($this);
return new $class();
}
public function create2() {
return new static();
}
}
class B extends A {
}
$b = new B();
var_dump(get_class($b->create1()), get_class($b->create2()));
/*
The result
string(1) "B"
string(1) "B"
*/

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Nexo: Es ist nicht nur ein Kryptowährungsaustausch, sondern auch Ihr digitaler Finanzmanager. Es ermöglicht Benutzern, Kredite in Kryptowährung als Sicherheiten zu erhalten und Dienstleistungen bereitzustellen, um Zinsen zu verdienen. Während Nexo auch Kryptowährungs -Kauf-, Verkaufs- und Einlösungsfähigkeiten anbietet, ist das Kerngeschäft die Krypto -Kreditvergabe. In diesem Artikel wird das Betriebsmodell und die Sicherheit von Nexo eingehend untersucht, um den Anlegern ein umfassenderes Verständnis zu vermitteln. Das Betriebsmodell von Nexo wurde im Jahr 2018 gegründet und hat seinen Hauptsitz in Zug, Schweiz, und ist ein Pionier auf dem Gebiet der digitalen Finanzen. Es unterscheidet sich von anderen zentralen Börsen und konzentriert sich mehr auf die Bereitstellung umfassender Finanzdienstleistungen. Benutzer können Kryptowährungen kaufen, verkaufen, handeln, ohne Vermögenswerte zu verkaufen und

Der Unterschied zwischen Ethereum und Bitcoin ist signifikant. Technisch gesehen verwendet Bitcoin POW, und Ether hat sich von POW nach POS verlagert. Die Handelsgeschwindigkeit ist für Bitcoin langsam und Ethereum ist schnell. In Anwendungsszenarien konzentriert sich Bitcoin auf den Zahlungsspeicher, während Ether intelligente Verträge und DApps unterstützt. In Bezug auf die Ausgabe beträgt der Gesamtbetrag von Bitcoin 21 Millionen und es gibt keine feste Gesamtmenge an Ethermünzen. Jede Sicherheitsherausforderung ist verfügbar. In Bezug auf den Marktwert ist Bitcoin an erster Stelle, und die Preisschwankungen beider sind groß, aber aufgrund unterschiedlicher Merkmale ist der Preistrend von Ethereum einzigartig.

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.

Der Kernunterschied zwischen Bohnenbrötchen und Deepseek ist die Genauigkeit und Komplexität der Wiederholung. 1. Doubao basiert auf dem Schlüsselwort, einfach und direkt, mit geringen Kosten, aber geringer Genauigkeit und ist nur für strukturierte Daten geeignet. Die endgültige Auswahl hängt vom Anwendungsszenario und den Ressourcenbeschränkungen ab.

Angst, Unsicherheit und Zweifel an Kryptoinvestitionen: Wie kann er fundierte Entscheidungen treffen? Viele Kryptoinvestoren stehen vor Angst vor „Dies ist der letzte Zyklus“ sowie Bedenken hinsichtlich der Dauer des Bullenmarktes sowie dem Druck anderer, was zusammen zu schlechten Investitionsentscheidungen führt. In diesem Artikel wird untersucht, wie diese Herausforderungen überwunden und intelligentere Investitionsentscheidungen treffen können. Potenzielles Risiko: Ablenkung: Verjüngen Sie blind und ignorieren Sie den Wert von Kernvermögen. Pessimismus und Zögern: Unsicherheit führt zu mangelndem Vertrauen, der Unfähigkeit, lange Zeit zu halten und sogar aus dem Markt zu verlassen. Mangel an Glauben: Mangel an eingehenden Forschungen zu Projekten und kann nicht mit der Marktvolatilität fertig werden. Mangelnde Gewinnstrategien: Positionen aus Angst vor Rückziehungen frühzeitig und fehlende potenzielle Renditen vorzeitig. Bewältigungsstrategien: 1. Fokus auf Kernbereiche:

Die Ouyi Okex Digital Asset Trading Platform unterscheidet sich vom traditionellen Wertpapiermarkt. Die Plattform wird jedoch im Voraus bekannt geben und die Handelszeit oder -regeln bei Systemwartungs -Upgrades oder speziellen Marktereignissen (z. B. extreme Marktbedingungen verursachen, die schwerwiegende Marktschwankungen verursachen), z. Daher wird empfohlen, dass Benutzer auf Plattformankündigungen und Markttrends genau Aufmerksamkeit schenken, Handelsmöglichkeiten nutzen und im Risikomanagement gute Arbeit leisten. Nur durch das Verständnis von Ouyi Okex Handelszeit und Regelanpassungen können Sie sich auf dem Markt für digitale Währung wohl fühlen.

Der Hauptunterschied zwischen Doubao und Deepseek ist: 1. DuaBao ist eine Keyword -Suchmaschine, die auf dem Schlüsselwort -Matching abhängt. 2. Die Quelle für Bohnensackdaten ist breit, aber die Qualität ist ungleichmäßig. 3. Die Bean -Bun -Ergebnisse werden in Listenformular dargestellt, und Deepseek kann umfangreichere Antworten und Kontextinformationen liefern. 4. Bohnenbrötchen sind einfach zu bedienen, und Deepseek erfordert möglicherweise komplexere Abfrageanweisungen. Bohnenbrot eignet sich daher zum schnellen Finden von Informationen, während Deepseek für eingehende semantische Such- und Informationsabbau geeignet ist, und die Auswahl hängt von den spezifischen Bedürfnissen ab.

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.
