Maison  >  Article  >  développement back-end  >  Résumé des points de connaissance de l'entretien PHP

Résumé des points de connaissance de l'entretien PHP

不言
不言original
2018-07-14 11:41:381546parcourir

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é

  • 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

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

    Comment déterminer le type de fichier de téléchargement, tel que : seul le téléchargement jpg est autorisé

Ne pas utiliser de variables temporaires pour échanger les valeurs de deux variables
    =>
  • strtoupper Il y a des caractères tronqués lors de la conversion du chinois, comment le résolvez-vous ?

  • Différences entre Websocket, Long-Polling et les événements envoyés par le serveur (SSE)$a=1; $b=2;$a=2; $b=1;

  • Que signifient les "En-têtes déjà envoyés" erreur moyenne ? , comment éviter

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 et POST Différence La différence entre

  • include et require

  • include_once et la différence entre require_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ètre

    • Lent 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énario

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

  • 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

Article sur le framework

  • 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

Modèle de conception

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

Sécurité

  • Injection SQL

  • XSS et CSRF

  • Filtrage des entrées

  • Sécurité des cookies

  • Désactiver mysql_ Fonction système

  • Lors 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 risque

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

  • 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

Optimisation du CSS dans la tête et JS dans la queue (principe)

  • Réseau

    Adresse IP vers INT
  • 192.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

  • Comment faire une requête qui ne prend pas en charge DELETE Quelle est la fonction principale de DELETE

    qui est compatible avec les
  • requêtes
  • APP_IDAPP_SECRET API courantes sur le navigateur ? Expliquez le processus

  • Comment 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]); et return json_encode([]); en PHP et quels problèmes peuvent survenir ? Comment résoudre les

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

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn