Cet article présente principalement un résumé des points de connaissance des entretiens PHP, qui a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
. Copiez-le et faites une table des matières Comme je ne connais pas les détails précis, je prévois d'étudier lentement toutes les questions de la liste
Interview PHP. meilleures pratiques en Chine
Cet entrepôt résume principalement les points de connaissances qui sont souvent demandés lors des entretiens PHP nationaux. Il ne fait que souligner les points de connaissance de manière ciblée, et vous devez trouver les informations pertinentes et les étudier systématiquement par vous-même. J'espère que vous comprendrez non seulement de quoi il s'agit, mais aussi pourquoi et les principes qui le sous-tendent.
Si vous disposez d'informations très systématiques sur les points de connaissances correspondants, vous êtes invités à PR pour ajouter des liens. Il n'est pas recommandé d'utiliser fork, les informations seront mises à jour à tout moment.
Si vous êtes actuellement dans les situations suivantes, ces informations vous conviennent très bien :
Vous vous préparez à changer d'emploi, mais vous ne savez pas où aller start
J'ai rencontré un goulot d'étranglement technique et je ne sais pas quoi apprendre
Je suis prêt à apprendre PHP, mais je ne Je ne sais pas quelle est la profondeur du champ
Bases
Comprendre la plupart des fonctions de traitement des tableaux
Fonctions de traitement de chaînes (différentes des fonctions de la série mb_)
& Citation, combinées à l'analyse de cas
== La différence entre ===
La différence entre isset et vide
Comprendre toutes les fonctions magiques
statique , $this, différence de soi
privé, protégé, public, différence finale
Pensée POO
Scénarios d'utilisation de classe abstraite et d'interface respectivement
Trait is What
echo, print, print_r La différence entre
__construct et __destruct
Fonction statique (distinguer les classes et les fonctions)
__toString() Fonction
Différence entre les guillemets simples
'
et les guillemets doubles"
Codes d'état HTTP courants, que signifient-ils
301 Que signifie 404
Chapitre avancé
Ne pas utiliser de variables temporaires pour échanger les valeurs de deux variables
Chargement automatique, principes du compositeur
Partage de session, temps de survie
Gestion des exceptions
Comment itérer des objets pour chaque foreach
Comment mettre en tableau l'objet d'opération $obj[key]
Comment fonctionnaliser l'objet $obj(123);
Qu'est-ce que le rendement ? Parlons du scénario d'utilisation
Qu'est-ce que PSR, PSR-1, 2, 4, 7
Comment obtenir l'adresse IP du client et l'adresse IP du serveur
Comment l'activer Invite d'exception PHP
Comment renvoyer une redirection 301
Comment obtenir le chemin d'installation de l'extension
Le principe de comparaison des chaînes et des nombres. Faites attention au système octal commençant par 0 et au système hexadécimal commençant par 0x
Qu'est-ce que l'en-tête de la nomenclature et. comment le supprimer ?
Qu'est-ce que MVC
Principe de mise en œuvre de l'injection de dépendances
Comment faire exécuter des commandes de manière asynchrone
Qu'est-ce qu'un moteur de modèles, quels problèmes il résout et principes de mise en œuvre (Smarty, Twig, Blade)
Comment mettre en œuvre des opérations en chaîne
$obj->w()->m()->d();
Quelle est la différence entre l'utilisation de Xhprof et
- Étant donné un tableau bidimensionnel, trier en fonction d'un certain champ
Comment déterminer le type de fichier de téléchargement, tel que : seul le téléchargement jpg est autorisé
[1, 2]
['k1'=>1, 'k2'=>2]
=>
- strtoupper Il y a des caractères tronqués lors de la conversion du chinois, comment le résolvez-vous ?
- Que signifient les "En-têtes déjà envoyés" erreur moyenne ? , comment éviter
Différences entre Websocket, Long-Polling et les événements envoyés par le serveur (SSE)
$a=1; $b=2;
$a=2; $b=1;
Algorithme
Tri rapide (manuscrit)
Tri à bulles (manuscrit)
Recherche binaire (comprendre)
Algorithme de recherche KMP (comprendre)
Première recherche en profondeur et en largeur (comprendre)
Algorithme d'élimination du cache LRU (comprendre, Memcached utilise cet algorithme)
Article sur la structure des données (comprendre)
Fonctionnalités de tas et de pile
File d'attente
Table de hachage
Liste chaînée
Comparaison
Différence entre Cookie et Session
GET
etPOST
Différence La différence entre
include
etrequire
include_once
et la différence entrerequire_once
La différence entre Memcached et Redis
Les moteurs de stockage MySQL et leurs différences (vous poserez certainement des questions sur la différence entre MyISAM et Innodb)
La différence entre HTTP et HTTPS
La différence entre Apache et Nginx
La différence entre definition() et const
La différence entre les traits et les interfaces Et quels problèmes les traits résolvent-ils ?
La différence entre Git et SVN
Base de données
MySQL
Index, index conjoint (condition d'accès)
Sous base de données et table (
水平分表
,垂直分表
)Partition
utilisera
explain
pour analyser les problèmes de performances SQL et comprendre la signification de chaque paramètreLent Journal (avec A quoi sert-il, quand est-il nécessaire)
Points clés pour comprendre
type
,rows
,key
CRUD
JOINTURE, JOINTION À GAUCHE, JOINTURE À DROITE, JOINTURE INTÉRIEURE
UNION
GROUP BY + COUNT + WHERE cas de combinaison
Fonctions MySQL couramment utilisées, telles que : now(), md5(), concat(), uuid(), etc.
1:1
,1:n
,n:n
sont applicables à chaque scénarioComprenez ce qu'est un déclencheur et dites-moi un scénario d'utilisation
Méthodes d'optimisation des bases de données
MSSQL (comprendre)
Requête des dernières 5 éléments de données
NOSQL
Persistance
Prend en charge plusieurs types de données
CPU multicœur disponible
Mécanisme d'élimination de la mémoire
ClusterCluster
Prise en charge de SQL
Comparaison des performances
Prise en charge des transactions
Scénarios d'application
Redis, Memcached, MongoDB
Comparaison et scénarios applicables (peuvent être comparés à partir des dimensions suivantes)
Qu'avez-vous utilisé pour résoudre le problème auparavant, pourquoi l'avoir choisi ?
Chapitre sur le serveur
Afficher le processeur, la mémoire, l'heure, la version du système et d'autres informations
find, grep pour rechercher des fichiers
awk pour traiter le texte
Afficher le répertoire où se trouve la commande
Avez-vous déjà compilé PHP vous-même ? Comment activer la fonction readline
Comment vérifier l'utilisation de la mémoire et du processeur du processus PHP
Comment ajouter une extension à PHP
Modifiez l'emplacement de stockage de la session PHP et modifiez les paramètres de configuration INI
Quels sont les types d'équilibrage de charge que vous connaissez ? et expliquer son principe
Comment la réplication maître-esclave de la base de données M-S est-elle synchronisée ? Pousser ou tirer ? Sera-t-il désynchronisé ? Que faire
Comment assurer la disponibilité des données, même si elles sont supprimées, elles peuvent être restaurées au niveau de quelques minutes. que ferez-vous.
Il y a trop de connexions à la base de données, dépassant la valeur maximale. Comment optimiser l'architecture. De quelle commodité pouvons-nous le gérer ?
502 Quelle est la raison possible ? Comment dépanner 504 ?
Chapitre Architecture
Article sur le framework
Exploitation et maintenance partielles (compréhension) :
Équilibrage de charge (Nginx , HAProxy, DNS)
Réplication maître-esclave (MySQL, Redis)
Redondance des données, sauvegarde (MySQL incrémental, principe complet)
Contrôle de surveillance (deux dimensions de survie et de disponibilité du service)
MySQL, Redis, Memcached Proxy, Objectif et principe du cluster
Partage
Cluster haute disponibilité
RAID
Code source compilation, réglage de la mémoire
Mise en cache
Lorsque vous rencontrez le besoin de mise en cache pendant le travail, décrivez brièvement pourquoi <.>
- Solutions de recherche
- Réglage des performances
- Solutions de suivi pour chaque dimension
- Solution centralisée de collecte et de traitement des logs
- Internationalisation
- Conception de bases de données
- Solution statique
- Dessiner un schéma d'architecture d'application PHP commun
Modèle de conception
- ThinkPHP (TP), CodeIgniter (CI), Zend (série non-OOP)
- Yaf, Phalcon (système d'extension C)
- Yii , Laravel, Symfony (série POO pure)
- Swoole, Workerman (framework de programmation réseau)
- Les frameworks de comparaison diffèrent dans plusieurs directions Cliquez
- Qu'il s'agisse de POO pure
- Méthode de chargement de la bibliothèque de classes (écrivez votre propre standard de chargement automatique vs composer)
- Facilité d'utilisation (framework de base CI, Laravel est un framework et des composants de base à haute efficacité de développement)
- Boîte noire (par rapport au système d'extension C)
- Vitesse d'exécution (par exemple : Laravel charge beaucoup de choses)
- Utilisation de la mémoire
Sécurité
- Modèle de boîtier unique (souligné)
- Modèle d'usine (souligné)
- Observateur motif (accentuation)
- Injection de dépendances (accentuation)
- Modèle de décorateur
- Mode proxy
- Mode combiné
- Injection SQL
- XSS et CSRF
- Filtrage des entrées
- Sécurité des cookies
Désactiver
mysql_
Fonction systèmeLors du stockage des mots de passe des utilisateurs dans la base de données, que faut-il faire pour assurer la sécurité ?
Problème de session de code de vérification
ID de session sécurisé (même après interception, il ne peut pas être simulé)
Sécurité des autorisations d'annuaire
Contient des fichiers locaux et distants
Script PHP de téléchargement de fichiers
eval
Script d'exécution de fonction
disable_functions
Fermez les fonctions à haut risqueUtilisateurs et groupes indépendants FPM, accordez des autorisations spécifiques à chaque répertoire
Comprendre la différence entre Hash et Encrypt
Chapitre avancé
Implémentation sous-jacente du tableau PHP (HashTable + Liste liée)
Copier sur le principe d'écriture, quand GC
Modèle de processus PHP, méthode de communication de processus, différence de thread de processus
rendement Quel est le principe de base
Principe de préparation PDO
Quelle est la différence entre PHP 7 et PHP 5
Scénarios applicables Swoole, méthodes d'implémentation de coroutine
Articles front-end
Optimisation du CSS dans la tête et JS dans la queue (principe)
Obtenir nativement les nœuds et les attributs DOM
Modèle de boîte
Fichier CSS, balise de style, priorité d'attribut de style en ligne
HTML et Ordre de passage JS (page JS de haut en bas)
Opération de tableau JS
Jugement de type
ce périmètre
.map() et cette analyse de scénario d'utilisation spécifique
Lecture et écriture de cookies
Opération JQuery
Requête Ajax (différence synchrone et asynchrone) un nombre aléatoire interdit la mise en cache
Quels sont les avantages de Bootstrap
Quels sont les avantages de Bootstrap
Requêtes N cross-domaines
- Nouvelle technologie (compréhension)
ES6
Modulaire
Emballage
Outils de construction
vue, réagir, webpack,
- Mvc front-end
- Optimisation
Numéro simultané de nom de domaine unique du navigateur Limitations
Mise en cache des ressources statiques 304 (principes If-Modified-Since et Etag)
Plusieurs petites icônes sont fusionnées et utilisent la technologie de positionnement pour réduire les demandes
Les ressources statiques sont combinées en une seule demande et compressées
CDN
Chargement paresseux des ressources statiques Technologie, technologie de préchargement
keep-alive
Réseau
Adresse IP vers INT192.168.0.1/16 Qu'est-ce que cela signifie ?
Quelle est la fonction principale du DNS ?
La différence entre IPv4 et v6
Programmation réseau
Processus de négociation à trois voies TCP
Différences entre TCP et UDP, scénarios applicables respectivement
Existe-t-il un moyen d'assurer la haute disponibilité d'UDP (comprendre)
Comment résoudre les paquets persistants TCP ?
Pourquoi un battement de coeur est-il nécessaire ?
Qu'est-ce qu'une longue connexion ?
Comment HTTPS assure-t-il la sécurité ?
La différence entre les flux et les datagrammes
Il existe plusieurs façons de communiquer entre les processus, laquelle est la plus rapide ?
fork()
Que va-t-il se passer ?Chapitre API
Qu'est-ce que RESTful
- requêtes
Comment faire une requête qui ne prend pas en charge
qui est compatible avec lesDELETE
Quelle est la fonction principale deDELETE
APP_ID
APP_SECRET
API courantes sur le navigateur ? Expliquez le processusComment s'assurer que les données ne sont pas falsifiées par les requêtes API ?
La différence entre JSON et JSONP
La différence entre le cryptage des données et la vérification de signature
RSA Oui Quoi
Comment gérer la compatibilité des versions d'API
Limitation de courant (seau en bois, seau à jetons)
Dans quels scénarios OAuth 2 est-il principalement utilisé ?
JWT
Quelles sont les différences entre
json_encode(['key'=>123]);
etreturn json_encode([]);
en PHP et quels problèmes peuvent survenir ? Comment résoudre lesPoints bonus
Comprendre les fonctionnalités communes du langage et leur applicabilité dans différents scénarios.
PHP VS Golang
PHP VS Python
PHP VS JAVA
Découvrez le développement d'extensions PHP
Maîtrise de C
Déclaration
Ces informations ne s'adressent à aucune entreprise et nous ne sommes pas responsables de l'impact que ces informations ont sur vous. , j'espère savoir.
Je vous souhaite bonne chance
Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour un contenu plus connexe, veuillez faire attention au site Web PHP chinois !
Recommandations associées :
expert php partagé : spécifications d'écriture de code PHP, un résumé complet
Pour PHP Résumé du Cinq principes de conception orientée objet (SOLID)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!