Dieser Artikel stellt hauptsächlich eine Zusammenfassung der PHP-Interview-Wissenspunkte vor, die einen gewissen Referenzwert haben. Jetzt können Freunde in Not darauf verweisen
Kopieren Sie es und erstellen Sie ein Inhaltsverzeichnis. Da ich die genauen Details nicht kenne, habe ich vor, langsam alle Fragen in der Liste zu studieren
PHP-Interview Best Practices in China
Dieses Warehouse fasst hauptsächlich Wissenspunkte zusammen, die in inländischen PHP-Interviews häufig gefragt werden. Es weist nur gezielt auf Wissenspunkte hin, und Sie müssen relevante Informationen finden und systematisch selbst studieren. Ich hoffe, Sie können nicht nur verstehen, was es ist, sondern auch warum und welche Prinzipien dahinter stehen.
Wenn Sie sehr systematische Informationen zu den entsprechenden Wissenspunkten haben, können Sie gerne PR-Links hinzufügen. Es wird nicht empfohlen, Fork zu verwenden, da die Informationen jederzeit aktualisiert werden.
Wenn Sie sich derzeit in den folgenden Situationen befinden, sind diese Informationen sehr gut für Sie geeignet:
Sie bereiten sich auf einen Jobwechsel vor, wissen aber nicht, wohin start
Ich bin auf einen technischen Engpass gestoßen und weiß nicht, was ich lernen soll
Ich bin bereit, PHP zu lernen, aber ich schaffe es nicht Ich weiß nicht, wie tief das Feld ist
Grundlagen
Die meisten Array-Verarbeitungsfunktionen verstehen
String-Verarbeitungsfunktionen (anders als die Funktionen der mb_-Serie)
& Zitat, kombiniert mit Fallanalyse
== Der Unterschied zwischen ===
Der Unterschied zwischen isset und empty
Alle magischen Funktionen verstehen
statisch , $this, Selbstunterschied
privater, geschützter, öffentlicher, endgültiger Unterschied
OOP-Gedanke
Jeweilige Verwendungsszenarien abstrakter Klassen und Schnittstellen
Merkmal Ja Was
echo, print, print_r Der Unterschied zwischen
__construct und __destruct
statische Funktion (unterscheiden zwischen Klassen und Funktionen)
__toString() Funktion
Unterschied zwischen einfachen Anführungszeichen
'
und doppelten Anführungszeichen"
Gängige HTTP-Statuscodes, was bedeuten sie
301 Was bedeutet 404
Erweitertes Kapitel
Verwenden Sie keine temporären Variablen, um die Werte von auszutauschen zwei Variablen
Autoload, Composer-Prinzipien
Session-Sharing, Überlebenszeit
Ausnahmebehandlung
So foreachen Sie Objekte iterieren
So arrangieren Sie das Operationsobjekt $obj[key]
So funktionalisieren Sie das Objekt $obj(123);
Was ist Ertrag?
Was ist PSR, PSR-1, 2, 4, 7
So erhalten Sie die Client-IP- und Server-IP-Adresse
So aktivieren Sie die PHP-Ausnahmeaufforderung
So geben Sie eine 301-Weiterleitung zurück
So erhalten Sie den Installationspfad für die Erweiterung
Das Prinzip des Vergleichs von Zeichenfolgen und Zahlen. Achten Sie auf das Oktalsystem, das mit 0 beginnt, und das Hexadezimalsystem, das mit 0x beginnt.
Was ist der BOM-Header? Wie entferne ich es?
Was ist MVC
Prinzip der Abhängigkeitsinjektion
Wie Befehle asynchron ausführen
Was ist eine Template-Engine, welche Probleme löst sie und welche Implementierungsprinzipien (Smarty, Twig, Blade)
Anleitung Kettenoperationen implementieren
$obj->w()->m()->d();
Was ist der Unterschied zwischen der Verwendung von Xhprof und
- Sortieren Sie bei einem zweidimensionalen Array nach einem bestimmten Feld
So bestimmen Sie den Upload-Dateityp, z. B.: Nur JPG-Upload ist zulässig
[1, 2]
['k1'=>1, 'k2'=>2]
=>
- strtoupper Beim Konvertieren von Chinesisch treten verstümmelte Zeichen auf. Wie können Sie das Problem lösen?
- Was bedeutet die Meldung „Header bereits gesendet“? Fehler bedeuten? , wie vermeide ich
Unterschiede zwischen Websocket, Long-Polling und Server-Sent Events (SSE)
$a=1; $b=2;
$a=2; $b=1;
Algorithmus
Schnellsortierung (handschriftlich)
Blasensortierung (handschriftlich)
Binäre Suche (verstehen)
Suchalgorithmus KMP (verstehen)
Tiefe und Breite erste Suche (verstehen)
LRU-Cache-Eliminierungsalgorithmus (verstehen Sie, Memcached verwendet diesen Algorithmus)
Artikel zur Datenstruktur (verstehen)
Heap- und Stack-Funktionen
Warteschlange
Hash-Tabelle
Verknüpfte Liste
Vergleich
Unterschied zwischen Cookie und Sitzung
GET
undPOST
Unterschied Der Unterschied zwischen
include
undrequire
include_once
und der Differenz zwischenrequire_once
Der Unterschied zwischen Memcached und Redis
MySQL-Speicher-Engines und ihre Unterschiede (Sie werden auf jeden Fall nach dem Unterschied zwischen MyISAM und Innodb fragen)
Der Unterschied zwischen HTTP und HTTPS
Der Unterschied zwischen Apache und Nginx
Der Unterschied zwischen define() und const
Der Unterschied zwischen Merkmalen und Schnittstellen Und welche Schwachstellen lösen Merkmale?
Der Unterschied zwischen Git und SVN
Datenbank
MySQL
Index, gemeinsamer Index (Trefferbedingung)
Unterdatenbank und Tabelle (
水平分表
,垂直分表
)Partition
verwendet
explain
, um SQL-Leistungsprobleme zu analysieren und die Bedeutung jedes Parameters zu verstehenLangsam Protokoll (mit Wofür wird es verwendet, wann wird es benötigt)
Wichtige Punkte, die es zu verstehen gilt
type
,rows
,key
CRUD
JOIN, LEFT JOIN, RIGHT JOIN, INNER JOIN
UNION
GROUP BY + COUNT + WHERE Kombinationsfall
Häufig verwendete MySQL-Funktionen, wie zum Beispiel: now(), md5(), concat(), uuid() usw.
1:1
,1:n
,n:n
gelten für jedes SzenarioVerstehen Sie, was ein Auslöser ist, und nennen Sie mir ein Nutzungsszenario
Methoden zur Datenbankoptimierung
MSSQL (verstehen)
Neueste Abfrage 5 Datenstücke
NOSQL
Persistenz
Unterstützt mehrere Datentypen
verfügbare CPU-Multicore
Speichereliminierungsmechanismus
ClusterCluster
SQL unterstützen
Leistungsvergleich
Transaktionen unterstützen
Anwendungsszenarien
Redis, Memcached, MongoDB
Vergleich und anwendbare Szenarien (vergleichbar aus folgenden Dimensionen)
Womit haben Sie das Problem zuvor gelöst, warum haben Sie es gewählt?
Serverkapitel
CPU, Speicher, Zeit, Systemversion und andere Informationen anzeigen
suchen, grep, um Dateien zu finden
awk, um Text zu verarbeiten
Zeigen Sie das Verzeichnis an, in dem sich der Befehl befindet
Haben Sie PHP schon einmal selbst kompiliert? So aktivieren Sie die Readline-Funktion
So überprüfen Sie die Speicher- und CPU-Auslastung des PHP-Prozesses
So fügen Sie PHP eine Erweiterung hinzu
Ändern Sie den Speicherort der PHP-Sitzung und die INI-Konfigurationsparameter
Welche Arten des Lastausgleichs gibt es, mit denen Sie vertraut sind? und erklären Sie das Prinzip
Wie wird die Datenbank-Master-Slave-Replikation M-S synchronisiert? Drücken oder ziehen? Wird es nicht synchron sein? Was zu tun ist
So stellen Sie die Verfügbarkeit von Daten sicher, auch wenn sie gelöscht werden, können sie auf Minutenebene wiederhergestellt werden. was werden Sie tun.
Es gibt zu viele Datenbankverbindungen, die den Maximalwert überschreiten. So optimieren Sie die Architektur. Wie bequem können wir damit umgehen?
502 Was ist der mögliche Grund? Wie kann ich 504 beheben?
Architekturkapitel
Teilbetrieb und Wartung (Verständnis):
Lastausgleich (Nginx , HAProxy, DNS)
Master-Slave-Replikation (MySQL, Redis)
Datenredundanz, Backup (MySQL inkrementell, vollständiges Prinzip)
Überwachungsprüfung (zwei Dimensionen des Überlebens und der Dienstverfügbarkeit)
MySQL, Redis, Memcached Proxy, Clusterzweck und -prinzip
Sharding
Hochverfügbarkeitscluster
RAID
Quellcode Kompilierung, Speicheroptimierung
Caching
Wo Caching während der Arbeit erforderlich ist, beschreiben Sie kurz, warum
Suchlösungen
Leistungsoptimierung
Überwachungslösungen für jede Dimension
Zentralisierte Protokollerfassungs- und -verarbeitungslösung
Internationalisierung
Datenbankdesign
Statische Lösung
Gemeinsames PHP-Anwendungsarchitekturdiagramm zeichnen
Framework-Artikel
ThinkPHP (TP) , CodeIgniter (CI), Zend (Nicht-OOP-Serie)
Yaf, Phalcon (C-Erweiterungssystem)
Yii, Laravel, Symfony (reine OOP-Serie)
Swoole, Workerman (Netzwerkprogrammier-Framework)
Vergleichsframeworks unterscheiden sich in mehreren Richtungen. Klicken Sie auf
Ob reines OOP
Methode zum Laden der Klassenbibliothek (schreiben Sie Ihren eigenen Autoload vs. Composer-Standard)
Benutzerfreundlichkeit (CI-Basisframework, Laravel ist ein Framework und Basiskomponenten mit hoher Entwicklungseffizienz)
Black Box (im Vergleich zum C-Erweiterungssystem)
Laufgeschwindigkeit (zum Beispiel: Laravel lädt viele Dinge)
Speicherverbrauch
Designmuster
Einzelfallmuster (Hervorhebung)
Fabrikmuster (Hervorhebung)
Beobachtermuster (Hervorhebung)
Abhängigkeitsinjektion (Hervorhebung)
Decorator-Muster
Proxy-Modus
Kombinierter Modus
Sicherheit
SQL-Injection
XSS und CSRF
Eingabefilterung
Cookie-Sicherheit
mysql_
Systemfunktion deaktivierenWas sollte getan werden, um die Sicherheit zu gewährleisten, wenn die Datenbank Benutzerkennwörter speichert?
Bestätigungscode Sitzungsproblem
Sichere Sitzungs-ID (damit diese auch nach dem Abfangen nicht simuliert werden kann)
Verzeichnisberechtigungssicherheit
Enthält lokale und Remote-Dateien
PHP-Skript zum Hochladen von Dateien
eval
Funktionsausführung Skript
disable_functions
Hochrisikofunktionen schließenFPM-unabhängige Benutzer und Gruppen, jedem Verzeichnis spezifische Berechtigungen erteilen
Verstehen Sie den Unterschied zwischen Hash und Encrypt
Fortgeschrittenes Kapitel
Grundlegende Implementierung des PHP-Arrays (HashTable + verknüpfte Liste)
Copy-on-Write-Prinzip, wann ist GC
PHP-Prozessmodell, Prozesskommunikationsmethode, Prozess-Thread-Unterschied
Ertrag Was ist das Kernprinzip
PDO-Vorbereitungsprinzip
Was ist der Unterschied zwischen PHP 7 und PHP 5
Swoole anwendbare Szenarien, Coroutine-Implementierungsmethoden
Front-End-Artikel
Nativ DOM-Knoten erhalten und Attribute
Box-Modell
CSS-Datei, Stil-Tag, Inline-Stil-Attributpriorität
HTML und JS-Laufreihenfolge (Seite JS von oben zur nächsten)
JS-Array-Operation
Typbeurteilung
dieser Bereich
.map() und diese spezifische Nutzungsszenarioanalyse
Lesen und Schreiben von Cookies
JQuery-Betrieb
Ajax-Anfrage (synchrone, asynchrone Differenz) Zufallszahl verhindert Caching
Was sind die Vorteile von Bootstrap?
Domänenübergreifende Anforderung von N-Lösungen
Neue Technologie (Verständnis)
ES6
Modular
Verpackung
Build Tools
Vue, React, Webpack,
Front-End-MVC
Optimierung
Einschränkungen der gleichzeitigen Anzahl von Browser-Einzeldomänennamen
Statisches Ressourcen-Caching 304 (If-Modified-Since- und Etag-Prinzipien)
Mehrere kleine Symbole werden zusammengeführt und Positionsbestimmungstechnologie verwendet, um Anfragen zu reduzieren
Statische Ressourcen werden in einer einzigen Anfrage zusammengefasst und komprimiert
CDN
Verzögertes Laden statischer Ressourcen Technologie, Vorladetechnologie
Keep-Alive
Optimierung von CSS im Kopf und JS im Schwanz (Prinzip)
Netzwerk
IP-Adresse zu INT
192.168.0.1/16 Was bedeutet das?
Was ist die Hauptfunktion von DNS?
Der Unterschied zwischen IPv4 und v6
Netzwerkprogrammierung
TCP-Drei-Wege-Handshake-Prozess
Unterschiede zwischen TCP und UDP bzw. anwendbare Szenarien
Gibt es eine Möglichkeit, eine hohe Verfügbarkeit von UDP sicherzustellen (verstehen)
Wie löst man TCP-Sticky-Pakete?
Warum ist ein Herzschlag nötig?
Was ist eine lange Verbindung?
Wie sorgt HTTPS für Sicherheit?
Der Unterschied zwischen Streams und Datagrammen
Es gibt verschiedene Möglichkeiten, zwischen Prozessen zu kommunizieren. Welche ist die schnellste?
fork()
Was wird passieren?API-Kapitel
Was ist RESTful?
- Anfragen
So fordern Sie an, wenn
, die mitDELETE
nicht RESTful ist unterstützt Was ist die Hauptfunktion vonDELETE
APP_ID
APP_SECRET
gängigen APIs im Browser kompatibel ist? Erklären Sie den ProzessWie kann sichergestellt werden, dass Daten nicht durch API-Anfragen manipuliert werden?
Der Unterschied zwischen JSON und JSONP
Der Unterschied zwischen Datenverschlüsselung und Signaturüberprüfung
RSA Ja Was
Umgang mit API-Versionskompatibilität
Strombegrenzung (Holzeimer, Token-Eimer)
In welchen Szenarien wird OAuth 2 hauptsächlich verwendet?
JWT
Was sind die Unterschiede zwischen
json_encode(['key'=>123]);
undreturn json_encode([]);
in PHP und welche Probleme werden auftreten? So lösen SieBonuspunkte
Verstehen Sie gemeinsame Sprachfunktionen und deren Anwendbarkeit in verschiedenen Szenarien.
PHP VS Golang
PHP VS Python
PHP VS JAVA
Erfahren Sie mehr über die Entwicklung von PHP-Erweiterungen
Kompetent in C
Erklärung
Diese Informationen richten sich nicht an Unternehmen und wir sind nicht für die Auswirkungen verantwortlich Informationen über Sie. Ich hoffe es zu wissen.
Ich wünsche Ihnen viel Glück
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das weitere Studium hilfreich ist. Bitte achten Sie auf die chinesische PHP-Website!
Verwandte Empfehlungen:
PHP-Experte geteilt: PHP-Code-Schreibspezifikationen, eine vollständige Zusammenfassung
Für PHP-Zusammenfassung der Fünf Prinzipien des objektorientierten Designs (SOLID)
Das obige ist der detaillierte Inhalt vonZusammenfassung der PHP-Interview-Wissenspunkte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!