


Zusammenfassung der neuesten klassischen PHP-Interviewfragen (Teil 2)
Zusammenfassung der PHP Junior Classic-Interviewfragen (Teil 1)
17. Der Unterschied zwischen isset, empty und is_null
isset bestimmt, ob die Variable definiert oder leer ist
变量存在返回ture,否则返回false 变量定义不赋值返回false unset一个变量,返回false 变量赋值为null,返回false
Leer: Bestimmen Sie, ob der Wert der Variablen leer ist. Alles, was in „false“ konvertiert werden kann, ist leer. Wenn es leer ist, wird „true“ zurückgegeben, andernfalls wird „false“ zurückgegeben.
"",0,"0",NULL,FALSE都认为为空,返回true 没有任何属性的对象都认为是空
is_null: Überprüfen Sie, ob der eingehende Wert (Wert, Variable, Ausdruck) null ist
定义了,但是赋值为Null 定义了,但是没有赋值 unset一个变量
18. Front-End-Debugging-Tools
Firefox Firebug
Chrome-Entwicklungstools
Emmet
Tool zur Überprüfung des JSON-Formats
19. Beschreiben Sie kurz die Unterschiede zwischen Index, Primärschlüssel, eindeutigem Index und gemeinsamem Index in MySQL und der Leistung der Datenbank Hat es Auswirkungen (sowohl beim Lesen als auch beim Schreiben) (Sina Technology Department)
Indizes sind eine besondere Art von Dateien (die Indizes in der InnoDB-Datentabelle sind ein integraler Bestandteil des Tabellenbereichs). enthalten die Referenzzeiger auf alle Datensätze in der Tabelle.
Die einzige Aufgabe eines normalen Index (ein durch das Schlüsselwort KEY oder INDEX definierter Index) besteht darin, den Zugriff auf Daten zu beschleunigen.
Normale Indizes ermöglichen, dass indizierte Datenspalten doppelte Werte enthalten. Wenn Sie feststellen können, dass eine bestimmte Datenspalte nur voneinander verschiedene Werte enthält, sollten Sie beim Erstellen eines Indexes für diese Datenspalte das Schlüsselwort UNIQUE verwenden, um diesen als eindeutigen Index zu definieren. Mit anderen Worten: Ein eindeutiger Index kann die Einzigartigkeit von Datensätzen sicherstellen.
Primärschlüssel ist ein spezieller eindeutiger Index. In einer Tabelle kann nur ein Primärschlüsselindex definiert werden. Der Primärschlüssel wird zur eindeutigen Identifizierung eines Datensatzes verwendet und wird mit dem Schlüsselwort PRIMARY KEY erstellt.
Ein Index kann mehrere Datenspalten abdecken, beispielsweise ein INDEX(SpalteA, SpalteB)-Index, bei dem es sich um einen gemeinsamen Index handelt.
Indizes können die Geschwindigkeit der Datenabfrage erheblich verbessern, verlangsamen jedoch die Geschwindigkeit des Einfügens, Löschens und Aktualisierens von Tabellen, da beim Ausführen dieser Schreibvorgänge die Indexdatei bedient werden muss.
20. Was ist eine Transaktion in einer Datenbank
Eine Transaktion ist eine geordnete Menge von Datenbankoperationen als Einheit. Eine Transaktion gilt als erfolgreich, wenn alle Vorgänge in der Gruppe erfolgreich sind. Auch wenn nur ein Vorgang fehlschlägt, ist die Transaktion nicht erfolgreich. Wenn alle Vorgänge abgeschlossen sind, wird die Transaktion festgeschrieben und ihre Änderungen werden auf alle anderen Datenbankprozesse angewendet. Wenn ein Vorgang fehlschlägt, wird die Transaktion zurückgesetzt und die Auswirkungen aller Vorgänge in der Transaktion werden aufgehoben. Die vier Hauptmerkmale von ACID sind Atomizität, Isolation, Konsistenz und Haltbarkeit.
21. Verstehen Sie XSS-Angriffe? Wie kann man es verhindern?
XSS ist ein Cross-Site-Scripting-Angriff. Zunächst wird die Cross-Site-Scripting-Schwachstelle genutzt, um ein vom Angreifer erstelltes Skript in einem privilegierten Modus auszuführen, und dann wird das unsichere Activex-Steuerelement verwendet, um böswillige Verhaltensweisen auszuführen .
Verwenden Sie die Funktion htmlspecialchars(), um den übermittelten Inhalt zu filtern und die Sonderzeichen in der Zeichenfolge zu materialisieren.
22. Was verursacht SQL-Injection-Schwachstellen? Wie kann man es verhindern?
Ursache der SQL-Injection: Während des Programmentwicklungsprozesses haben Sie nicht auf das standardmäßige Schreiben von SQL-Anweisungen und die Filterung von Sonderzeichen geachtet, was dazu geführt hat, dass der Client einige übermitteln konnte SQL-Anweisungen werden normalerweise über die globalen Variablen POST und GET implementiert.
Möglichkeiten, SQL-Injection zu verhindern:
Einstellungen „magic_quotes_gpc“ und „magic_quotes_runtime“ in der Konfigurationsdatei aktivieren
Beim Ausführen von SQL-Anweisungen verwenden addslashesSQL-Anweisungen konvertieren
Versuchen Sie beim Schreiben von SQL-Anweisungen, doppelte und einfache Anführungszeichen nicht wegzulassen.
Filtern Sie einige Schlüsselwörter in der SQL-Anweisung heraus: aktualisieren, einfügen, löschen, auswählen, *.
Verbessern Sie Ihre Benennungsfähigkeiten für Datenbanktabellen und -felder und benennen Sie einige wichtige Felder entsprechend den Merkmalen des Programms, sodass sie schwer zu erraten sind.
Register_globals in der PHP-Konfigurationsdatei auf „Aus“ setzen, globale Variablenregistrierung deaktivieren
Kontrolle Fehlermeldung, tun nicht durchsuchen Fehlerinformationen auf dem Server ausgeben und in die Protokolldatei schreiben.
23. Was sind die wichtigsten Angriffsmethoden auf PHP-Websites?
Befehlsinjektion
Evaluierungsinjektion
Client-Skript-Einfügung
Cross Site Scripting (XSS)
SQL-Injection
-
Cross Site Request
Forgeries, CSRF) Sitzungshijacking
Sitzungsfixierung
HTTP-Antwortaufteilung
Sicherheitslücke beim Hochladen von Dateien (Datei-Upload-Angriff)
Verzeichnisdurchquerung (Verzeichnisdurchquerung)
-
Remote-Inklusion-Angriff (Remote-Inklusion)
Dynamische Variable
Auswertung)URL-Angriff (URL-Angriff)
Formularübermittlung gefälschtes Formular
EinreichungenHTTP-Request-Spoofing-Angriff (gefälschte HTTP-Anfragen)
24. Was sind Einzeleingänge und Mehrfacheingänge im Rahmen?
Duokou erfüllt Benutzeranfragen, indem er auf verschiedene Dateien zugreift. Ein Webprogramm mit nur einem Eintrag leitet alle Anfragen an eine Skriptdatei weiter.
Ein einziger Zugang erleichtert die Kontrolle von Berechtigungen und erleichtert Sicherheitsüberprüfungen bei http-Anfragen.
Nachteile: Die URL sieht nicht so schön aus, vor allem nicht suchmaschinenfreundlich.
25. Für relationale Datenbanken ist die Indizierung ein sehr wichtiges Konzept:
a ), was ist der Zweck der Indizierung?
Schneller Zugriff auf spezifische Informationen in der Datentabelle und Verbesserung der Abrufgeschwindigkeit
Erstellen Sie einen eindeutigen Index, um die Einzigartigkeit jeder Datenzeile sicherzustellen die Datenbanktabelle sex.
Beschleunigen Sie Tabellen und Verknüpfungen zwischen Tabellen
Wenn Sie Gruppierungs- und Sortierklauseln für den Datenabruf verwenden, können Sie die Gruppierung in Abfragen und die Sortierzeit erheblich reduzieren
b) Welche negativen Auswirkungen haben Indizes auf das Datenbanksystem?
Negative Auswirkung:
Das Erstellen und Verwalten von Indizes nimmt Zeit in Anspruch, und diese Zeit nimmt zu, wenn die Datenmenge zunimmt; nicht nur Tabellen müssen Daten belegen Speicherplatz: Jeder Index muss auch physischen Speicherplatz belegen. Wenn die Tabelle hinzugefügt, gelöscht oder geändert wird, muss der Index dynamisch verwaltet werden, was die Datenwartungsgeschwindigkeit verringert.
c). Was sind die Prinzipien für die Indizierung von Datentabellen?
Erstellen Sie einen Index für die am häufigsten verwendeten Felder, um den Abfrageumfang einzugrenzen.
Indizes für häufig verwendete Felder erstellen, die sortiert werden müssen
d) Unter welchen Umständen ist es unangemessen, einen Index zu erstellen?
Es ist nicht angebracht, einen Index für Spalten zu erstellen, die selten an Abfragen beteiligt sind, oder für Spalten mit vielen doppelten Werten.
Für einige spezielle Datentypen ist es nicht geeignet, Indizes zu erstellen, wie z. B. Textfelder (Text) usw.
26. Beschreiben Sie kurz den Unterschied zwischen MyISAM und InnoDB in der MySQL-Datenbank
Das wichtigste Merkmal, das es von anderen Datenbanken unterscheidet, ist sein Plug Tabellenspeicher-Engine vom Typ -in. Denken Sie daran: Die Speicher-Engine basiert auf Tabellen, nicht auf Datenbanken.
Der Unterschied zwischen InnoDB und MyISAM:
InnoDB-Speicher-Engine: Hauptsächlich für OLTP-Anwendungen (Online Transaction Processing, Online-Transaktionsverarbeitung) ist es die erste ACID mit vollständiger Unterstützung Transaktionsspeicher-Engine (die erste Speicher-Engine von BDB, die Transaktionen unterstützt, hat die Entwicklung eingestellt).
Funktionen:
Zeilensperrendesign, Unterstützung von Fremdschlüsseln
Unterstützung ähnlich wie bei Oracle Stilkonsistentes, nicht sperrendes Lesen (dh: Lesevorgänge generieren standardmäßig keine Sperren);
InnoDB platziert Daten in einem logischen Tabellenbereich, der von InnoDB selbst verwaltet wird. Ab der MySQL 4.1-Version kann jede InnoDB-Speicher-Engine-Tabelle in einer unabhängigen ibd-Datei gespeichert werden.
InnoDB verwendet MVCC (Multi-Version Concurrency Control: Lesen blockiert das Schreiben und Schreiben). blockiert das Lesen nicht), um eine hohe Parallelität zu erreichen, und implementiert die 4 Isolationsstufen des SQL-Standards (die Standardeinstellung ist REPEATABLE-Stufe).
InnoDB bietet außerdem hohe Leistung und hohe Verfügbarkeit Funktionen wie Puffer einfügen, doppeltes Schreiben, adaptiver Hash-Index und Vorauslesen;
-
InnoDB verwendet eine Cluster-Methode, um Daten in der Reihenfolge zu speichern Primärschlüssel (wenn der Primärschlüssel beim Erstellen der Tabelle nicht explizit angegeben wird, generiert InnoDB für jede Zeile eine 6-Byte-ROWID und verwendet diese als Primärschlüssel). Die InnoDB-Tabelle verfügt über drei versteckte Felder: Zusätzlich zu der oben erwähnten 6-Byte-DB_ROW_ID gibt es auch eine 6-Byte-DB_TX_ID (Transaktions-ID) und eine 7-Byte-DB_ROLL_PTR (die auf die Adresse des entsprechenden Rollback-Segments zeigt). Dies kann über den Innodb-Monitor gesehen werden;
- MyISAM-Speicher-Engine: ist die offiziell von MySQL bereitgestellte Speicher-Engine, hauptsächlich für OLAP (Online Analytical Processing, Online-Analyse und Bearbeitung) von Anträgen.
Funktionen:
Unterstützt keine Transaktionen, unterstützt jedoch Tabellen und Volltextindizes. Die Betriebsgeschwindigkeit ist hoch;
-
Die MyISAM-Speicher-Engine-Tabelle besteht aus MYD und MYI, MYD wird zum Speichern von Datendateien und MYI zum Speichern von Indexdateien verwendet. Die MySQL-Datenbank speichert nur ihre Indexdateien und das Zwischenspeichern der Datendateien wird dem Betriebssystem selbst überlassen
Ab MySQL 5.0 unterstützt MyISAM standardmäßig 256T Einzeltabellendaten;
27. Erklären Sie die Unterschiede zwischen MySQL-Outer-Joins, Inner-Joins und Self-Joins
Was ist zunächst einmal Cross-Join: Cross-Join, auch kartesisches Produkt genannt, bezieht sich auf den direkten Abgleich aller Datensätze in einer Tabelle mit allen Datensätzen in einer anderen Tabelle, ohne dass irgendwelche Bedingungen verwendet werden müssen.
Inner Join ist eine Querverbindung, bei der nur Datensätze, die die Bedingungen erfüllen, gemäß einer bestimmten Bedingung herausgefiltert werden. Datensätze, die die Bedingungen nicht erfüllen, werden nicht im Ergebnis angezeigt festgelegt, das heißt, innere Verknüpfungen verbinden nur übereinstimmende Linien.
Äußerer Join Die Ergebnismenge enthält nicht nur Zeilen, die die Join-Bedingungen erfüllen, sondern auch alle Datenzeilen
in der linken Tabelle, der rechten Tabelle oder beiden Tabellen Sie sind „Left Outer Join“, „Right Outer Join“ und „Full Outer Join“.
Linker äußerer Join, auch linker Join genannt, die linke Tabelle ist die Haupttabelle, alle Datensätze in der linken Tabelle werden in der Ergebnismenge angezeigt, und die Datensätze, die in der rechten Tabelle nicht übereinstimmen, müssen trotzdem angezeigt werden angezeigt werden, rechts werden die entsprechenden Feldwerte mit NULL gefüllt. Rechter äußerer Join, auch rechter Join genannt. Die rechte Tabelle ist die Haupttabelle und alle Datensätze in der rechten Tabelle werden im Ergebnissatz angezeigt. Left-Joins und Right-Joins sind austauschbar und MySQL unterstützt derzeit keine vollständigen Outer-Joins.
28. Notieren Sie sich die Namen von mehr als drei MySQL-Datenbankspeicher-Engines (Tipp: Groß- und Kleinschreibung nicht beachten)
MyISAM, InnoDB, BDB (BerkeleyDB), Merge, Memory (Heap), Beispiel , Federated,
Archive, CSV, Blackhole, MaxDB und mehr als ein Dutzend Engines
29. Was ist objektorientiert? Was sind die Hauptmerkmale? Was sind die wichtigsten Prinzipien?
Objektorientiert ist ein Entwurfsmuster eines Programms, das dazu beiträgt, die Wiederverwendbarkeit des Programms zu verbessern und die Programmstruktur klarer zu machen. Die Hauptmerkmale sind: Kapselung, Vererbung und Polymorphismus.
Fünf Grundprinzipien: Prinzip der Einzelverantwortung; Prinzip der offenen und geschlossenen Schnittstelle;
statisches Routing und was sind seine Merkmale?
Referenzantwort: Statische Routen sind Routen, die durch Routing-Tabellen angegeben werden, die von Systemadministratoren entworfen und erstellt wurden. Es eignet sich für Netzwerke, in denen die Anzahl der Gateways begrenzt ist und sich die Netzwerktopologie nicht häufig ändert. Der Nachteil besteht darin, dass es sich nicht dynamisch an Änderungen der Netzwerkbedingungen anpassen kann. Wenn sich die Netzwerkbedingungen ändern, muss die Routing-Tabelle vom Netzwerkadministrator geändert werden.
Dynamisches Routing wird dynamisch erstellt, indem Routing-Protokolle den Inhalt von Routing-Tabellen in Echtzeit aktualisieren, indem sie ihre eigenen Routing-Informationen austauschen. Dynamisches Routing kann die Topologie des Netzwerks automatisch lernen und die Routing-Tabelle aktualisieren. Der Nachteil besteht darin, dass das Routing von Broadcast-Aktualisierungsinformationen viel Netzwerkbandbreite beansprucht.
Memcahce verwendet den LRU-Algorithmus, um abgelaufene Daten schrittweise zu löschen.
jQuery, Prototype, Dojo und MooTools.
Das Arbeitsprinzip von Ajax besteht darin, dass der angegebene Speicherort einer Seite den gesamten Ausgabeinhalt einer anderen Seite laden kann. Auf diese Weise kann eine statische Seite auch die zurückgegebenen Dateninformationen aus der Datenbank abrufen. Daher ermöglicht die Ajax-Technologie, dass eine statische Webseite mit dem Server kommuniziert, ohne die gesamte Seite zu aktualisieren, wodurch die Wartezeit des Benutzers verkürzt wird, wodurch der Netzwerkverkehr reduziert und die Freundlichkeit des Kundenerlebnisses verbessert wird.Bei der Verwendung von Ajax handelt es sich um eine Datenübertragung, also um die Rückgabe von Daten vom Server an den Client. Der Server und der Client verwenden unterschiedliche Skriptsprachen, um Daten zu verarbeiten, was ein gemeinsames Datenformat,
XML und JSON sind die beiden am häufigsten verwendeten, und JSON ist einfacher als XML. 33. Überblick über den Transaktions-Rollback-Mechanismus in Myql
Eine Transaktion ist eine vom Benutzer definierte Folge von Datenbankoperationen, die entweder alle oder keine ausgeführt werden Unter „Transaktions-Rollback“ versteht man das Rückgängigmachen der durch die Transaktion abgeschlossenen Aktualisierungsvorgänge an der Datenbank.
Wenn Sie zwei verschiedene Tabellen in der Datenbank gleichzeitig ändern möchten und es sich nicht um eine Transaktion handelt, kann beim Ändern der ersten Tabelle während des Änderungsprozesses der zweiten Tabelle eine Ausnahme auftreten und diese nicht geändert werden Zu diesem Zeitpunkt kann nur die zweite Tabelle geändert werden. Die beiden Tabellen befinden sich noch in ihrem unveränderten Zustand, während die erste Tabelle geändert wurde. Wenn Sie sie als Transaktion festlegen und die erste Tabelle geändert wird und die zweite Tabelle abnormal geändert wird und nicht geändert werden kann, kehren die erste Tabelle und die zweite Tabelle in den unveränderten Zustand zurück. Dies wird als Transaktions-Rollback bezeichnet.
Das obige ist der detaillierte Inhalt vonZusammenfassung der neuesten klassischen PHP-Interviewfragen (Teil 2). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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



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

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.

Das Arbeiten mit der Datenbank in CakePHP ist sehr einfach. In diesem Kapitel werden wir die CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen) verstehen.

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

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

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

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

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