Maison  >  Article  >  développement back-end  >  20 questions d'entretien PHP de base que vous devez connaître et connaître (avec réponses)

20 questions d'entretien PHP de base que vous devez connaître et connaître (avec réponses)

青灯夜游
青灯夜游avant
2021-06-03 18:42:366627parcourir

Cet article partagera avec vous 20 questions d'entretien PHP de base pour vous aider à consolider vos fondations. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

20 questions d'entretien PHP de base que vous devez connaître et connaître (avec réponses)

Apprentissage recommandé : "Tutoriel vidéo PHP"

1. Qu'est-ce que l'orienté objet ? Quelles sont les principales caractéristiques ?

L'orientation objet est une méthode de conception de programmes, qui contribue à améliorer la réutilisabilité des programmes et rend la structure du programme plus claire.

Caractéristiques principales : encapsulation, héritage, polymorphisme.

2. Quelle est la différence entre SESSION et COOKIE ? Veuillez expliquer les raisons et les fonctions du protocole ?

Le protocole http sans état ne peut pas distinguer si l'utilisateur est de A partir d'un même site Internet, un même utilisateur demandant des pages différentes ne peut pas être considéré comme le même utilisateur.

SESSION est stocké côté serveur et COOKIE est stocké côté client. La session est relativement sécurisée. Les cookies peuvent être modifiés par certains moyens et ne sont pas sécurisés. La session s'appuie sur des cookies pour la livraison. Après avoir désactivé les cookies, la session ne peut pas être utilisée normalement.

Inconvénients de la session : elle est enregistrée côté serveur, et chaque lecture est lue depuis le serveur, ce qui consomme des ressources sur le serveur. La session est enregistrée dans un fichier ou une base de données côté serveur. Elle est enregistrée dans un fichier par défaut. Le chemin du fichier est spécifié par session.save_path dans le fichier de configuration PHP. Les fichiers de session sont publics.

3. Que signifient les codes 302, 403 et 500 dans le statut HTTP ?

Un, deux, trois, quatre et cinq principes : (c'est-à-dire un : série de messages ; deux : série de succès ; trois : série de redirection ; quatre : série d'erreurs de demande ; cinq : série d'erreurs côté serveur .)

  • 302 : Transfert temporaire réussi, le contenu demandé a été déplacé vers le nouvel emplacement
  • 403 : Accès interdit
  • 500 : Erreur interne du serveur
  • 401 : représente un

non autorisé 4. Veuillez noter la signification du type de données (int char varchar datetime text) ; quelle est la différence entre varchar et char ?

  • Int entier
  • caractère de longueur fixe
  • caractère Varchar de longueur variable
  • Type de date et d'heure Datetime
  • Type de texte texte

La différence entre Varchar et char :

char est un type de caractère de longueur fixe, qui prend autant d'espace qu'il en alloue. Varchar est un type de caractère de longueur variable. Il prend autant d'espace que le contenu, ce qui peut effectivement économiser de l'espace. Étant donné que le type varchar est variable, le serveur doit effectuer des opérations supplémentaires lorsque la longueur des données change, l'efficacité est donc inférieure à celle du type char.

5. Quelles sont les différences fondamentales entre MyISAM et InnoDB ? Comment la structure de l’index est-elle mise en œuvre ?

Le type MyISAM ne prend pas en charge les transactions, les verrous de table et est sujet à la fragmentation. Il doit être optimisé fréquemment et a des vitesses de lecture et d'écriture rapides. 🎜>

Le type InnoDB prend en charge les transactions. , le verrouillage de ligne, a une capacité de récupération en cas de crash et la vitesse de lecture et d'écriture est plus lente que MyISAM. Il convient aux applications avec de nombreuses opérations d'insertion et de mise à jour. d'espace et ne prend pas en charge l'indexation de texte intégral.

Créer un index :

alert table tablename add index 索引名 (`字段名`) 

6. La différence entre isset() et empty()

isset détermine si la variable existe, et vous pouvez transmettre plusieurs variables, si l'une des variables n'existe pas, elle renvoie faux ; vide détermine si la variable est vide, ce qui est faux, et si elle est vide, elle renvoie vrai.

7. Veuillez expliquer la différence entre le passage par valeur et le passage par référence en PHP. Quand passer par valeur et quand passer par référence ?

Passez par valeur : toute modification apportée à la valeur dans la portée de la fonction sera ignorée en dehors de la fonction.

Passez par référence : toute modification apportée à la valeur dans la portée de la fonction sera également ignoré en dehors de la fonction Reflétant ces modifications

Avantages et inconvénients : Lors du passage par valeur, PHP doit copier la valeur. Surtout pour les chaînes et les objets volumineux, cela peut s'avérer une opération coûteuse. Le passage par référence ne nécessite pas de copier la valeur, ce qui est très utile pour améliorer les performances.

8. Quelle est la fonction de error_reporting en PHP ?

Définissez le niveau d'erreur de PHP et renvoyez le niveau actuel.

9. Parlez-moi de votre compréhension de la technologie de mise en cache ?

La technologie de mise en cache consiste à mettre en cache le contenu dynamique dans des fichiers et à accéder aux pages dynamiques dans un certain laps de temps pour appeler directement les fichiers mis en cache sans avoir à revisiter la base de données.

10. La structure à trois couches MVC est souvent utilisée dans la programmation de nos jours. À quelles trois couches MVC fait-il référence et quels sont ses avantages ?

Les trois couches de MVC font référence à : le modèle commercial, la vue et le contrôleur. La couche contrôleur appelle le modèle pour traiter les données, puis mappe les données à la couche de vue pour l'affichage. >

Les avantages sont :

① peut permettre la réutilisabilité du code et éviter la redondance du code

②M et V peuvent réaliser la séparation du code, de sorte que le même programme puisse utiliser des expressions différentes

11. Quels sont les avantages d’AJAX ?

ajax est une technologie de transmission asynchrone qui peut être implémentée via javascript ou le framework JQuery pour obtenir un rafraîchissement partiel, ce qui réduit la pression sur le serveur et améliore l'expérience utilisateur.

12. Dans le développement du programme, comment améliorer l'efficacité opérationnelle du programme ?

  • Optimisez les instructions SQL, essayez de ne pas utiliser select * dans les instructions de requête, utilisez quel champ pour vérifier quel champ ; > avec parcimonie Les sous-requêtes peuvent être remplacées par des jointures de tables ;

  • Utilisez des requêtes moins floues

  • Créez des index dans les tables de données ; >

  • Générer un cache pour les données fréquemment utilisées dans le programme.
  • 13. Pour les sites Web à fort trafic, quelles méthodes utilisez-vous pour résoudre le problème de trafic

Utiliser efficacement le cache ? augmenter le taux de réussite du cache

Utiliser l'équilibrage de charge

Utiliser Cdn pour stocker et accélérer les fichiers statiques
  • Idées pour réduire l'utilisation de la base de données
  • Afficher les statistiques Où est le goulot d'étranglement
  • Proxy inverse
  • 14. Quelle est la différence entre les instructions include et require Afin d'éviter d'inclure le même fichier plusieurs fois, quelles instructions peuvent être utilisées pour ? les remplacer ?
  • Différence : en cas d'échec : include génère un avertissement, tandis que require génère une interruption d'erreur directe require est chargé avant l'exécution et include est chargé au moment de l'exécution à la place :

15. Quelle est la différence entre foo() et @foo() ?

require_onceinclude_once @ représente tous les avertissements et est ignoré

16. décrire le mécanisme de garbage collection de PHP.

Les variables en php sont stockées dans le conteneur de variables zval En plus de stocker les types et les valeurs de variables, zval possède également les champs is_ref et refcount. refcount indique le nombre d'éléments pointant vers la variable et is_ref indique si la variable a un alias. Si refcount est 0, le conteneur de variables est recyclé.

Si le refcount d'un zval est supérieur à 0 après moins 1, il entrera dans le tampon poubelle. Lorsque le tampon atteint la valeur maximale, l'algorithme de recyclage parcourt le zval pour déterminer s'il s'agit d'un déchet et le libère.

17. Comment maximiser la sécurité de PHP ?

Comment éviter les vulnérabilités d'injection SQL et les vulnérabilités de cross-site scripting XSS ? Réponse : Principes de base : ne montrez pas les détails de conception du serveur ou du programme au monde extérieur (bloquez les erreurs), ne faites confiance à aucune donnée soumise par l'utilisateur (filtrez les soumissions des utilisateurs).

18. Différences entre echo, print_r, print et var_dump

echo: structure d'instruction

print: est une fonction avec une valeur de retour

print_r : peut imprimer des tableaux, des objets
  • var_dump : peut imprimer des tableaux d'objets et a des types de données
  • 19. Écrivez le caractéristiques des modèles intelligents
  • Vitesse rapide, compilation, technologie de mise en cache, mécanisme de plug-in, logique de performance puissante

20. utilisateur tel qu'il est, avant de saisir les données dans la base de données, quelle fonction doit être utilisée pour traiter ?

htmlspecialchars ou htmlentities

Pour plus de connaissances liées à la programmation, veuillez visiter : Vidéo de programmation ! !

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer