Zusammenfassung der PHP-Interview-Wissenspunkte

不言
Freigeben: 2023-04-03 07:46:02
Original
1545 Leute haben es durchsucht

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

  • 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

    [1, 2]['k1'=>1, 'k2'=>2]

    So bestimmen Sie den Upload-Dateityp, z. B.: Nur JPG-Upload ist zulässig

Verwenden Sie keine temporären Variablen, um die Werte von auszutauschen zwei Variablen
    =>
  • strtoupper Beim Konvertieren von Chinesisch treten verstümmelte Zeichen auf. Wie können Sie das Problem lösen?

  • Unterschiede zwischen Websocket, Long-Polling und Server-Sent Events (SSE) $a=1; $b=2;$a=2; $b=1;

  • Was bedeutet die Meldung „Header bereits gesendet“? Fehler bedeuten? , wie vermeide ich

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 und POSTUnterschied Der Unterschied zwischen

  • include und require

  • include_once und der Differenz zwischen require_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 verstehen

    • Langsam 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 Szenario

    • Verstehen 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 deaktivieren

  • Was 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

  • evalFunktionsausführung Skript

  • disable_functionsHochrisikofunktionen schließen

  • FPM-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?

  • So fordern Sie an, wenn DELETE nicht RESTful ist unterstützt Was ist die Hauptfunktion von DELETE

    , die mit
  • Anfragen
  • APP_IDAPP_SECRET gängigen APIs im Browser kompatibel ist? Erklären Sie den Prozess

  • Wie 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]); und return json_encode([]); in PHP und welche Probleme werden auftreten? So lösen Sie

Bonuspunkte

  • 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!

Verwandte Etiketten:
Quelle: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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage