Maison >développement back-end >tutoriel php >Venez poser quelques questions d'entretien de base sur PHP
Cet article résume quelques questions d'entretien PHP de base pour tout le monde. 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.
1. Quelle fonction peut être utilisée pour convertir les erreurs en gestion des exceptions ?
A : set_error_handler
B : error_reporting
C : error2exception
D : catch
Bonne réponse : *A *
Analyse de la réponse : set_error_handler () peut spécifier une fonction de rappel lorsqu'une erreur se produit, elle sera automatiquement traitée via la fonction de rappel spécifiée. Lancez simplement une nouvelle exception dans la fonction de rappel.
2. Laquelle des descriptions suivantes des fonctions shell est correcte ?
A : La fonction shell peut être appelée d'abord puis définie
B : La fonction shell doit être définie à l'aide du mot-clé function
C : Les variables dans le shell la fonction peut être déclarée en tant que variables locales
D : La fonction shell ne peut renvoyer une valeur que par retour, 1 est un succès, 0 est un échec
Réponse correcte : C
Analyse des réponses : fonction shell Elle doit être définie avant l'appel ; lors de la déclaration, il n'est pas nécessaire d'utiliser des mots-clés ; les variables locales dans la fonction peuvent être définies via la valeur de retour de la fonction shell, 0 est un succès, non- 0 est une erreur, les autres options sont correctes
3. Ce qui suit Concernant la technologie de récupération de texte intégral, la déclaration incorrecte est :
A : Solr est une nouvelle génération de composant de récupération de texte intégral. . Il est beaucoup plus efficace que Lucene dans la recherche et prend également en charge l'accès HTTP. Il est également très pratique d'appeler Solr depuis PHP.
B : Dans MySQL, en établissant un index FULLTEXT sur un champ, la récupération de texte intégral peut être réalisée. Actuellement, les tables MyISAM et InnoDB prennent en charge les index FULLTEXT.
C : Sphinx est un moteur de recherche en texte intégral basé sur SQL qui peut être combiné avec MySQL pour la recherche en texte intégral. Il peut fournir des fonctions de recherche plus professionnelles que la base de données elle-même.
D : L'analyseur de segmentation de mots binaires CJKAnalyzer fourni avec Lucene est très rapide en matière de segmentation de mots et peut répondre aux besoins de récupération générale de texte intégral.
Réponse correcte : *A *
Analyse de la réponse : Solr est une nouvelle génération de composant de récupération de texte intégral. Il est basé sur Lucene, cela n'a donc aucun sens. disons qu'il est plus rapide que Lucene :)
4. Quelle affirmation concernant le modèle singleton est fausse ?
A : Le but du mode singleton est de garantir qu'une seule instance d'une classe peut exister dans l'environnement global
B : Le mode mono-intérêt nécessite généralement que le constructeur soit défini to private
C : Définissez simplement le constructeur sur private pour vous assurer qu'il n'y a qu'une seule instance dans le monde
D : La fonction de connexion à la base de données est généralement implémentée en mode singleton
Bonne réponse :*C *
Analyse de la réponse : définir le constructeur sur privé garantit uniquement que de nouvelles instances ne peuvent pas être créées via new, mais que plusieurs instances peuvent toujours être créées via clone, désérialisation, etc.
5. Quelle est la mauvaise expression du moteur régulier ?
Les moteurs réguliers peuvent être principalement divisés en deux catégories : l'une est DFA et l'autre est NFA.
B De manière générale, le moteur NFA recherche plus rapidement. Mais DFA est orienté expression et plus facile à manipuler, c'est pourquoi les programmeurs préfèrent généralement les moteurs DFA !
C Dominé par l'expression NFA, dominé par le texte DFA.
D Vous pouvez indiquer s'il prend en charge l'ignorance des quantificateurs de priorité et la capture de groupe pour déterminer le type de moteur : prend en charge NFA, ne prend pas en charge DFA
Réponse correcte : B
Analyse de la réponse : L'énoncé correct doit être : De manière générale, le moteur DFA recherche plus rapidement. Mais NFA est orienté expression et plus facile à manipuler, donc les programmeurs préfèrent généralement les moteurs NFA !
6. Laquelle des options suivantes peut correspondre à l'expression régulière dans la case ?
/.Sd/
A.123
B.**1234
C. >
Bonne réponse : B
Analyse de la réponse : Le point clé de cette question est de comprendre le sens de cette expression régulière - de gauche à droite, le premier est zéro ou plus caractères arbitraires (.), suivis d'un astérisque (), puis de 123 et enfin d'un nombre. La réponse est donc B.
7. Laquelle des affirmations suivantes concernant les bases de données est fausse ? A : Pour plus d'efficacité, la base de données peut avoir plusieurs bibliothèques de lecture B : La base de données peut utiliser le maître-esclave comme secours chaud C : La base de données ne peut pas fournir plusieurs bibliothèques de lecture. architecture maître et multi-esclaveD : La base de données maître et esclave sont synchronisés via les logsRéponse correcte : C
Analyse de la réponse : La base de données peut fournir une architecture multi-maître et multi-esclave.
8. Lequel des éléments suivants ne constitue pas un moyen de corriger les vulnérabilités XSS ? A : Effectuer un filtrage htmlspecialchas sur les paramètresB : Utiliser le filtrage de liste blanche sur les paramètresC : Ne pas autoriser l'affichage du contenu d'entrée dans le navigateur D : Il est interdit de sortir le contenu saisi par l'utilisateur dans les balises jsRéponse correcte : *A *
Analyse des réponses : Ce type de filtrage peut résoudre les crochets d'angle tapez xss, Impossible de résoudre xss
dans la balise js 9. Lequel des éléments suivants n'est pas un mode PHP SAPI ? A.ISAPIB.CGIC.FastCGID.RESTFUL APIRéponse correcte : D
Analyse des réponses : A~C sont les modèles les plus couramment utilisés et D est une méthode d'organisation de l'interface.
10. Pour parcourir un fichier volumineux ligne par ligne, laquelle des méthodes suivantes est la plus performante ? A : Écrivez une classe qui implémente l'interface IteratorAggregate et utilisez le parcours foreach à travers cette classe. B : utilisez file_get_contents pour charger le contenu du fichier en mémoire en une seule fois, puis parcourez ligne par ligne. C : Grâce à la fonction exec, appelez l'outil shell pour parcourirD : Utiliser une bibliothèque de classes écrite par d'autres
Réponse correcte : A
Analyse de la réponse : Utilisez IteratorAggregate pour ouvrir le fichier ligne par ligne en déplaçant le pointeur Traversée, quelle que soit la taille du fichier. L'utilisation de file_get_contents pour traiter des fichiers volumineux peut facilement provoquer un débordement de mémoire PHP ; l'appel à exec créera des processus supplémentaires et affectera les performances ; la qualité des bibliothèques de classes écrites par d'autres peut ne pas être élevée.
11. Laquelle des options suivantes n'est pas un principe que les modèles de conception devraient suivre ?
A : La composition vaut mieux que l'héritage
B : Programmation pour les interfaces
C : Réduisez le couplage autant que possible
D : Essayez d'utiliser des -syntaxe de performance
Réponse correcte : D
Analyse de la réponse : L'objectif du modèle de conception est la maintenabilité et la réutilisabilité du code. L'option D n'est pas l'objectif de. le modèle de conception.
12. Laquelle des expressions suivantes concernant le retour en arrière est fausse ?
AB.LMN correspondant à ABCDEFLMNGHIJKLMN dans ABCDEFLMNGHIJKLMN
B AB.?lmn correspondant à ABCDEFLMN
C AB ?? C correspondant à ABC
dans lmnghijklmnD .*lmn correspond à abdeflmn dans abcdeflmnghijklmn
Réponse correcte : D
Analyse de la réponse : D est une correspondance gourmande, donc le résultat correspondant devrait être abcdeflmnghijklmn
13. Si la structure syntaxique try catch final est utilisée dans la fonction, où le retour doit-il être écrit ?
A : enfin en
B : essayer en
C : attraper en
D : n'importe quelle position
Correct Réponse : A
Analyse de la réponse : final continuera à s'exécuter après le retour dans try S'il y a également un retour dans final, la valeur de retour finale sera la valeur de retour dans final.
14. Laquelle des déclarations suivantes concernant NOSQL est incorrecte :
A : Redis ne prend pas en charge les structures de données telles que les chaînes, les hachages, les listes, les ensembles et les ensembles ordonnés. transactions.
B : MongoDB prend en charge AP dans le théorème CAP, MySQL prend en charge CA dans CAP, qui prennent tous en charge l'impossibilité.
C : MongoDB peut insérer des données directement sans créer au préalable la structure de collection. Actuellement, MongoDB ne prend pas en charge les transactions.
D : Memcache prend en charge à la fois le protocole TCP et le protocole UDP. Nous pouvons stocker la session PHP dans Memcache.
Bonne réponse : A
Analyse de la réponse : Redis prend en charge les transactions.
15. Quelle affirmation concernant le mécanisme de verrouillage Innodb est fausse ?
A : Innodb fournit deux mécanismes de verrouillage : le verrouillage de la table et le verrouillage des lignes
B : Le verrouillage de la table d'Innodb sera déclenché lorsque la table change
C : Innodb Pendant la mise à jour, exclusif les verrous seront automatiquement ajoutés aux lignes impliquées et une copie miroir sera créée. À ce moment, lors de la sélection, les données de la copie miroir seront interrogées
D : La lecture n'est pas affectée dans l'état de verrouillage de ligne Innodb. , l'écriture sera affectée (données impliquées)
Réponse correcte : A
16 Lequel des éléments suivants est créé tous les mercredis de 01h00 à 04h00. Exécuter crontab. commande une fois toutes les 3 minutes ?
A : 1,4 3 /bin/bash /home/sijiaomao/ok.sh
B : /3 1,4 3 /bin/bash /home/sijiaomao/ok.sh
C:/3 1-4 3 /bin/bash /home/sijiaomao/ok.sh
D:/3 1-4 * /bin/bash /home/sijiaomao/ok .sh
Réponse correcte : C
Analyse des réponses : A : Exécuté toutes les minutes à 1h04 tous les mercredis B : À chaque fois à 1h04 tous les mercredis Exécuter une fois toutes les 3 minutes C : Répondre aux exigences D : Exécuter une fois toutes les 3 minutes à 1h04 tous les jours
17. Avant le fractionnement, les données requises pour de nombreuses listes et pages de détails du système peuvent être traitées via la jointure SQL à compléter. Après le fractionnement, la base de données peut être distribuée sur différentes instances et différents hôtes, et la jointure deviendra très problématique. Laquelle des méthodes suivantes ne constitue pas une solution efficace à ce problème ?
Une table globale, certaines tables dont tous les modules du système peuvent dépendre sont enregistrées dans chaque bibliothèque.
Le champ B est redondant. Lors de l'enregistrement du « ID du vendeur » dans le « Tableau de commande », le champ « Nom » du vendeur est également redondant, de sorte que lors de l'interrogation des détails de la commande, il n'est pas nécessaire d'interroger le Surface « Utilisateur vendeur » ».
La réplication maître-esclave C sépare la lecture et l'écriture de la base de données.
Synchronisation des données D, la table tbl_a de la base de données A est régulièrement associée au tbl_b de la base de données B, et la table spécifiée peut être synchronisée entre maître et esclave à intervalles réguliers.
Bonne réponse : C
Analyse de la réponse : La réplication maître-esclave sépare la lecture et l'écriture de la base de données. Il ne peut qu'étendre la simultanéité de lecture, mais ne peut pas atténuer le problème de la jointure entre bases de données.
18. Concernant le modèle d'E/S du réseau, lequel des énoncés suivants est correct ?
A.Select est plus rapide qu'Epoll
B.nginx utilise le modèle select
C.apache prend en charge la commutation entre select et epoll
D.epoll peut prendre en charge une plus grande concurrence
Réponse correcte : D
Analyse des réponses : Un epoll est plus rapide. B nginx utilise le modèle epoll. C apache ne prend en charge que select
19. Lorsque PHP est exécuté, il y a le processus d'exécution suivant : Scanning (Lexing) - Compilation - Exécution - Analyse, leurs significations sont :
A : Convertir PHP code Pour les fragments de langage (Tokens), convertissez les Tokens en expressions simples et significatives, compilez les expressions en Opocdes et exécutez les Opcodes dans l'ordre
B : Convertissez le code PHP en fragments de langage (Tokens), Convertissez les Tokens en simples et expressions significatives, exécutez les Opcodes de manière séquentielle et compilez les expressions dans Opocdes
C : Convertir le code PHP en fragments de langage (Tokens), compiler des expressions en Opocdes, exécuter des Opcodes séquentiellement et convertir les Tokens en expressions simples et significatives
D : Convertir le code PHP Convertir en fragments de langage (Tokens) , compilez des expressions en Opocdes, convertissez les jetons en expressions simples et significatives et exécutez les Opcodes dans l'ordre
Réponse correcte : C
Analyse des réponses : La bonne réponse est C, et l'ordre correct est : Scanning (Lexing), Analyse, Compilation, Exécution
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!