Heim php教程 PHP开发 Demonstration der fortschrittlichen PHP-OOP-Technologie

Demonstration der fortschrittlichen PHP-OOP-Technologie

Dec 14, 2016 pm 01:32 PM

Serialisierung
PHP unterstützt keine persistenten Objekte. In OOP ist ein persistentes Objekt ein Objekt, das den Status und die Funktionalität zwischen Referenzen in mehreren Anwendungen beibehalten kann. Dies bedeutet, dass das Objekt in einer Datei oder Datenbank gespeichert werden kann. Die Möglichkeit, das Objekt später zu laden. Dies ist der sogenannte Serialisierungsmechanismus. PHP verfügt über eine Serialisierungsmethode, die für ein Objekt aufgerufen werden kann, und die Serialisierungsmethode kann eine Zeichenfolgendarstellung des Objekts zurückgeben. Allerdings speichert die Serialisierung nur die Mitgliedsdaten des Objekts und nicht die Methoden.
Wenn Sie in PHP4 das Objekt in die Zeichenfolge $s serialisieren, dann das Objekt freigeben und es dann
in $obj deserialisieren, können Sie die Methoden des Objekts weiterhin verwenden! Ich empfehle dies nicht, da (a) es in der Dokumentation keine Garantie dafür gibt, dass dieses Verhalten auch in zukünftigen Versionen weiterhin funktioniert. (b) Dies kann zu Missverständnissen führen, wenn Sie eine serialisierte Version auf der Festplatte speichern und das Skript beenden. Wenn Sie dieses Skript später ausführen, können Sie nicht erwarten, dass beim Deserialisieren eines Objekts die Methoden des Objekts vorhanden sind, da die Zeichenfolgendarstellung überhaupt keine Methoden enthält.
Kurz gesagt ist die Serialisierung in PHP sehr nützlich zum Speichern von Mitgliedsvariablen von Objekten. (Sie können auch verwandte Arrays und Arrays in eine Datei serialisieren.)
Beispiel:

Kopieren Sie den Code wie folgt:
<?php
$obj=new Classfoo();
$str=serialize($obj>); / Speichern Sie $str auf der Festplatte
//Ein paar Monate später
//Laden Sie str von der Festplatte

$obj2=unserialize($str)

Sie haben die Daten der Mitglieder wiederhergestellt , aber keine Methoden (laut Dokumentation). Dies ergibt die einzige Möglichkeit, auf Mitgliedsvariablen zuzugreifen (Sie haben keine andere Möglichkeit!), indem Sie beispielsweise $obj2->x verwenden. Probieren Sie es also nicht zu Hause aus.

Es gibt einige Möglichkeiten, dieses Problem zu lösen. Ich lasse sie weg, weil sie für diesen prägnanten Artikel zu schlecht sind. Ich würde mich über vollständig serialisierte Funktionen in nachfolgenden PHP-Versionen freuen.
Klassen zur Datenspeicherung verwenden Eines der großartigen Dinge an PHP und OOP ist, dass Sie ganz einfach eine Klasse definieren können, um etwas zu bearbeiten, und die entsprechende Klasse jederzeit aufrufen können, wenn Sie sie verwenden möchten. Angenommen, Sie verfügen über ein HTML-Formular, das es dem Benutzer ermöglicht, ein Produkt auszuwählen, indem er die Produkt-ID-Nummer auswählt. Die Datenbank enthält Produktinformationen und Sie möchten das Produkt, seinen Preis usw. anzeigen. Sie haben unterschiedliche Arten von Produkten und die gleiche Aktion kann für verschiedene Produkte unterschiedliche Bedeutungen haben. Beispielsweise kann die Anzeige eines Tons bedeuten, dass er abgespielt wird, bei anderen Arten von Produkten kann es jedoch bedeuten, dass ein in einer Datenbank gespeichertes Bild angezeigt wird. Sie können OOP oder PHP verwenden, um den Codierungsaufwand zu reduzieren und die Qualität zu verbessern.
Definieren Sie eine Produktklasse, definieren Sie die Methoden, die sie haben soll (z. B. Anzeige), und definieren Sie dann
Klassen für jeden Produkttyp, abgeleitet von der Produktklasse (SoundItem-Klasse, ViewableItem-Klasse usw. usw.). ), überschreiben Sie die Methoden in der Produktklasse, damit sie Ihren Vorstellungen entsprechend agieren.
Benennen Sie die Klasse entsprechend dem Typfeld jedes Produkts in der Datenbank. Eine typische Produkttabelle kann Felder (ID, Typ, Preis, Beschreibung usw.) enthalten. Anschließend können Sie sie im Verarbeitungsskript abrufen den Typwert aus der Datenbank und instanziieren ein Objekt mit dem Namen type:

Kopieren Sie den Code wie folgt:

<?php
$obj=new $type(
$obj-> ;action();

Dies ist eine sehr gute Funktion von PHP. Sie können die Anzeigemethode oder andere Methoden von $obj aufrufen, ohne den Objekttyp zu berücksichtigen. Mit dieser Technik müssen Sie das Skript nicht ändern, um einen neuen Objekttyp hinzuzufügen, sondern nur eine Klasse, die damit umgeht.

Diese Funktion ist sehr leistungsstark. Definieren Sie einfach Methoden, ohne die Typen aller Objekte zu berücksichtigen, implementieren Sie sie in verschiedenen Klassen in verschiedenen Methoden und verwenden Sie sie dann für jedes Objekt im Hauptskript, nein if...else , keine Notwendigkeit für zwei Programmierer,
einfach glücklich.
Nun stimmen Sie zu, dass die Programmierung einfach, die Wartung kostengünstig und die Wiederverwendbarkeit wahr ist?
Wenn Sie eine Gruppe von Programmierern leiten, ist es sehr einfach, die Arbeit zu verteilen. Jede Person kann für einen Objekttyp und
die Klasse verantwortlich sein, die damit umgeht.
Durch diese Technologie kann eine Internationalisierung erreicht werden. Wenden Sie einfach die entsprechende Klasse entsprechend dem vom Benutzer ausgewählten Sprachfeld usw. an.
Kopieren und Klonen
Wenn Sie ein Objekt von $obj erstellen, können Sie das Objekt mit $obj2=$obj kopieren. Das neue Objekt ist eine Kopie von $obj (keine Referenz), also hat es $ The Zustand des Objekts zu diesem Zeitpunkt. Manchmal möchten Sie dies nicht tun. Sie möchten einfach nur ein neues Objekt wie die obj-Klasse generieren. Sie können den Konstruktor der Klasse aufrufen, indem Sie die new-Anweisung verwenden. Dies kann auch in PHP durch Serialisierung und eine Basisklasse erreicht werden, alle anderen Klassen müssen jedoch von der Basisklasse abgeleitet werden.
Betreten der Gefahrenzone
Wenn Sie ein Objekt serialisieren, erhalten Sie eine Zeichenfolge in einem bestimmten Format. Wenn Sie interessiert sind, können Sie nachforschen, wo in der Zeichenfolge der Name der Klasse steht ( großartig!), Sie können es wie folgt herausnehmen:

Kopieren Sie den Code wie folgt:
<?php
$herring=serialize($obj);
$vec=explode(':',$herring);
$nam=str_replace ( "",'',$vec[2]);

Angenommen, Sie erstellen eine „Universum“-Klasse und erzwingen, dass alle Klassen vom Universum aus erweitert werden, können Sie eine Klonmethode wie folgt definieren:

Code wie folgt kopieren:
<?php
function clone() {
$herring=serialize($this);
$vec=explode (':',$ hering);
$nam=str_replace(""",'',$vec[2]);
$ret=new $nam;
return $ret;
}
}
//Dann
$obj=new Something();
//Expand from Universe
$other=$obj->clone();

Was Sie bekommen, ist ein neues Objekt der Something-Klasse, das mit dem Objekt identisch ist, das durch die Verwendung der neuen Methode und den Aufruf des Konstruktors erstellt wurde. Ich weiß nicht, ob das für Sie funktionieren wird, aber es ist eine gute Faustregel, dass die Universumsklasse den Namen der abgeleiteten Klasse kennt. Der Fantasie sind keine Grenzen gesetzt.
Diese Anweisung dient zum Schreiben der aktuellen Uhrzeit.

Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website (www.php.cn)!

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)

Dieser Artikel reicht aus, um etwas über autonomes Fahren und Flugbahnvorhersage zu lesen! Dieser Artikel reicht aus, um etwas über autonomes Fahren und Flugbahnvorhersage zu lesen! Feb 28, 2024 pm 07:20 PM

Die Trajektorienvorhersage spielt eine wichtige Rolle beim autonomen Fahren. Unter autonomer Fahrtrajektorienvorhersage versteht man die Vorhersage der zukünftigen Fahrtrajektorie des Fahrzeugs durch die Analyse verschiedener Daten während des Fahrvorgangs. Als Kernmodul des autonomen Fahrens ist die Qualität der Trajektorienvorhersage von entscheidender Bedeutung für die nachgelagerte Planungssteuerung. Die Trajektorienvorhersageaufgabe verfügt über einen umfangreichen Technologie-Stack und erfordert Vertrautheit mit der dynamischen/statischen Wahrnehmung des autonomen Fahrens, hochpräzisen Karten, Fahrspurlinien, Fähigkeiten in der neuronalen Netzwerkarchitektur (CNN&GNN&Transformer) usw. Der Einstieg ist sehr schwierig! Viele Fans hoffen, so schnell wie möglich mit der Flugbahnvorhersage beginnen zu können und Fallstricke zu vermeiden. Heute werde ich eine Bestandsaufnahme einiger häufiger Probleme und einführender Lernmethoden für die Flugbahnvorhersage machen! Einführungsbezogenes Wissen 1. Sind die Vorschaupapiere in Ordnung? A: Schauen Sie sich zuerst die Umfrage an, S

Das Stable Diffusion 3-Papier wird endlich veröffentlicht und die architektonischen Details werden enthüllt. Wird es helfen, Sora zu reproduzieren? Das Stable Diffusion 3-Papier wird endlich veröffentlicht und die architektonischen Details werden enthüllt. Wird es helfen, Sora zu reproduzieren? Mar 06, 2024 pm 05:34 PM

Der Artikel von StableDiffusion3 ist endlich da! Dieses Modell wurde vor zwei Wochen veröffentlicht und verwendet die gleiche DiT-Architektur (DiffusionTransformer) wie Sora. Nach seiner Veröffentlichung sorgte es für großes Aufsehen. Im Vergleich zur Vorgängerversion wurde die Qualität der von StableDiffusion3 generierten Bilder erheblich verbessert. Es unterstützt jetzt Eingabeaufforderungen mit mehreren Themen, und der Textschreibeffekt wurde ebenfalls verbessert, und es werden keine verstümmelten Zeichen mehr angezeigt. StabilityAI wies darauf hin, dass es sich bei StableDiffusion3 um eine Reihe von Modellen mit Parametergrößen von 800 M bis 8 B handelt. Durch diesen Parameterbereich kann das Modell direkt auf vielen tragbaren Geräten ausgeführt werden, wodurch der Einsatz von KI deutlich reduziert wird

DualBEV: BEVFormer und BEVDet4D deutlich übertreffen, öffnen Sie das Buch! DualBEV: BEVFormer und BEVDet4D deutlich übertreffen, öffnen Sie das Buch! Mar 21, 2024 pm 05:21 PM

In diesem Artikel wird das Problem der genauen Erkennung von Objekten aus verschiedenen Blickwinkeln (z. B. Perspektive und Vogelperspektive) beim autonomen Fahren untersucht, insbesondere wie die Transformation von Merkmalen aus der Perspektive (PV) in den Raum aus der Vogelperspektive (BEV) effektiv ist implementiert über das Modul Visual Transformation (VT). Bestehende Methoden lassen sich grob in zwei Strategien unterteilen: 2D-zu-3D- und 3D-zu-2D-Konvertierung. 2D-zu-3D-Methoden verbessern dichte 2D-Merkmale durch die Vorhersage von Tiefenwahrscheinlichkeiten, aber die inhärente Unsicherheit von Tiefenvorhersagen, insbesondere in entfernten Regionen, kann zu Ungenauigkeiten führen. Während 3D-zu-2D-Methoden normalerweise 3D-Abfragen verwenden, um 2D-Features abzutasten und die Aufmerksamkeitsgewichte der Korrespondenz zwischen 3D- und 2D-Features über einen Transformer zu lernen, erhöht sich die Rechen- und Bereitstellungszeit.

Das erste Weltmodell zur Erzeugung autonomer Fahrszenen mit mehreren Ansichten | DrivingDiffusion: Neue Ideen für BEV-Daten und Simulation Das erste Weltmodell zur Erzeugung autonomer Fahrszenen mit mehreren Ansichten | DrivingDiffusion: Neue Ideen für BEV-Daten und Simulation Oct 23, 2023 am 11:13 AM

Einige persönliche Gedanken des Autors Im Bereich des autonomen Fahrens sind mit der Entwicklung BEV-basierter Teilaufgaben/End-to-End-Lösungen hochwertige Multi-View-Trainingsdaten und der entsprechende Aufbau von Simulationsszenen immer wichtiger geworden. Als Reaktion auf die Schwachstellen aktueller Aufgaben kann „hohe Qualität“ in drei Aspekte zerlegt werden: Long-Tail-Szenarien in verschiedenen Dimensionen: z. B. Nahbereichsfahrzeuge in Hindernisdaten und präzise Kurswinkel beim Schneiden von Autos sowie Spurliniendaten . Szenen wie Kurven mit unterschiedlichen Krümmungen oder Rampen/Zusammenführungen/Zusammenführungen, die schwer zu erfassen sind. Diese basieren häufig auf der Sammlung großer Datenmengen und komplexen Data-Mining-Strategien, die kostspielig sind. Echter 3D-Wert – hochkonsistentes Bild: Die aktuelle BEV-Datenerfassung wird häufig durch Fehler bei der Sensorinstallation/-kalibrierung, hochpräzisen Karten und dem Rekonstruktionsalgorithmus selbst beeinträchtigt. das hat mich dazu geführt

GSLAM |. Eine allgemeine SLAM-Architektur und ein Benchmark GSLAM |. Eine allgemeine SLAM-Architektur und ein Benchmark Oct 20, 2023 am 11:37 AM

Plötzlich wurde ein 19 Jahre altes Papier namens GSLAM: A General SLAM Framework and Benchmark mit offenem Quellcode entdeckt: https://github.com/zdzhaoyong/GSLAM Gehen Sie direkt zum Volltext und spüren Sie die Qualität dieser Arbeit~1 Zusammenfassung der SLAM-Technologie hat in letzter Zeit viele Erfolge erzielt und die Aufmerksamkeit vieler High-Tech-Unternehmen auf sich gezogen. Es bleibt jedoch eine Frage, wie eine Schnittstelle zu bestehenden oder neuen Algorithmen hergestellt werden kann, um ein Benchmarking hinsichtlich Geschwindigkeit, Robustheit und Portabilität effizient durchzuführen. In diesem Artikel wird eine neue SLAM-Plattform namens GSLAM vorgeschlagen, die nicht nur Evaluierungsfunktionen bietet, sondern Forschern auch eine nützliche Möglichkeit bietet, schnell ihre eigenen SLAM-Systeme zu entwickeln.

„Minecraft' verwandelt sich in eine KI-Stadt und NPC-Bewohner spielen Rollenspiele wie echte Menschen „Minecraft' verwandelt sich in eine KI-Stadt und NPC-Bewohner spielen Rollenspiele wie echte Menschen Jan 02, 2024 pm 06:25 PM

Bitte beachten Sie, dass dieser kantige Mann die Stirn runzelt und über die Identität der „ungebetenen Gäste“ vor ihm nachdenkt. Es stellte sich heraus, dass sie sich in einer gefährlichen Situation befand, und als ihr dies klar wurde, begann sie schnell mit der mentalen Suche nach einer Strategie zur Lösung des Problems. Letztendlich entschloss sie sich, vom Unfallort zu fliehen, dann so schnell wie möglich Hilfe zu suchen und sofort Maßnahmen zu ergreifen. Gleichzeitig dachte die Person auf der Gegenseite das Gleiche wie sie... In „Minecraft“ gab es eine solche Szene, in der alle Charaktere von künstlicher Intelligenz gesteuert wurden. Jeder von ihnen hat eine einzigartige Identität. Das zuvor erwähnte Mädchen ist beispielsweise eine 17-jährige, aber kluge und mutige Kurierin. Sie haben die Fähigkeit, sich zu erinnern und zu denken und in dieser kleinen Stadt in Minecraft wie Menschen zu leben. Was sie antreibt, ist ein brandneues,

Mehr als nur 3D-Gauß! Aktueller Überblick über modernste 3D-Rekonstruktionstechniken Mehr als nur 3D-Gauß! Aktueller Überblick über modernste 3D-Rekonstruktionstechniken Jun 02, 2024 pm 06:57 PM

Oben geschrieben & Nach persönlichem Verständnis des Autors ist die bildbasierte 3D-Rekonstruktion eine anspruchsvolle Aufgabe, bei der aus einer Reihe von Eingabebildern auf die 3D-Form eines Objekts oder einer Szene geschlossen werden muss. Lernbasierte Methoden haben wegen ihrer Fähigkeit, 3D-Formen direkt abzuschätzen, Aufmerksamkeit erregt. Dieser Übersichtsartikel konzentriert sich auf modernste 3D-Rekonstruktionstechniken, einschließlich der Generierung neuartiger, unsichtbarer Ansichten. Es wird ein Überblick über die jüngsten Entwicklungen bei Gaußschen Splash-Methoden gegeben, einschließlich Eingabetypen, Modellstrukturen, Ausgabedarstellungen und Trainingsstrategien. Auch ungelöste Herausforderungen und zukünftige Ausrichtungen werden besprochen. Angesichts der rasanten Fortschritte auf diesem Gebiet und der zahlreichen Möglichkeiten zur Verbesserung der 3D-Rekonstruktionsmethoden scheint eine gründliche Untersuchung des Algorithmus von entscheidender Bedeutung zu sein. Daher bietet diese Studie einen umfassenden Überblick über die jüngsten Fortschritte in der Gaußschen Streuung. (Wischen Sie mit dem Daumen nach oben

Die zugrunde liegende Python-Technologie enthüllt: Wie man einen Hash-Algorithmus implementiert Die zugrunde liegende Python-Technologie enthüllt: Wie man einen Hash-Algorithmus implementiert Nov 08, 2023 pm 06:40 PM

Offenlegung der zugrunde liegenden Technologie von Python: Für die Implementierung eines Hash-Algorithmus sind spezifische Codebeispiele erforderlich. Zusammenfassung: Der Hash-Algorithmus ist eine der am häufigsten verwendeten Technologien im Computerbereich und wird zur schnellen Bestimmung der eindeutigen Identifizierung von Daten verwendet. Als Hochsprache bietet Python viele integrierte Hash-Funktionen, beispielsweise die Funktion hash() und die Implementierung verschiedener Hash-Algorithmen. In diesem Artikel werden die Prinzipien von Hashing-Algorithmen und die Details der zugrunde liegenden Implementierung von Python erläutert und spezifische Codebeispiele bereitgestellt. Einführung in den Hash-Algorithmus Der Hash-Algorithmus, auch Hash-Algorithmus genannt, ist eine Methode zum Konvertieren von Daten beliebiger Länge in

See all articles