Maison  >  Article  >  développement back-end  >  Quelques questions d'entretien classiques en 2018

Quelques questions d'entretien classiques en 2018

王林
王林original
2019-08-19 13:50:365217parcourir

Aujourd'hui, j'ai rassemblé quelques questions d'entretien pour vous. J'espère que cela vous sera utile. Merci !

Tutoriels vidéo recommandés sur PHP : https://www.php.cn/course/list/29/type/2.html

1. Un avantage majeur du langage PHP est qu'il est multiplateforme. Qu'est-ce que le multiplateforme ?

La combinaison optimale de l'environnement d'exploitation PHP est Apache+MySQL+PHP. dans différents systèmes d'exploitation (tels que Windows, Linux, etc.) et n'est pas limité par le système d'exploitation, c'est pourquoi on l'appelle multiplateforme

2. Combien de méthodes existe-t-il pour la soumission des données dans Développement WEB ? Quelles sont les différences ? Quelle méthode Baidu utilise-t-il ?

Méthodes d'obtention et de publication

Différences :

1. et la publication transmet les données au serveur

2. Get transmet La valeur est visible dans l'url, mais la publication n'est pas visible dans l'url

3 La valeur transmise par Get est généralement comprise dans. 2 Ko, et la taille de la valeur transmise par post peut être définie dans php.ini

4 Get est sécurisé Les performances ne sont pas faibles, la sécurité de la publication est plus élevée, mais l'efficacité d'exécution est supérieure à celle de la publication.

Recommandations :

1. Le type get est moins sécurisé que le type de publication et il contient des informations confidentielles. Il est recommandé d'utiliser les données Post pour soumettre la formule ;

2. . Il est recommandé d'utiliser la formule Get pour la requête de données ; il est recommandé d'utiliser la méthode Post pour ajouter, modifier ou supprimer des données ;

La méthode get utilisée par Baidu, car elle est visible à partir de son URL. Out

3. Comprendre quels frameworks, moteurs de modèles, systèmes, etc. de PHP

Framework : Il existe de nombreux frameworks, tels que zendframe, CI, Yii, etc. Celui que nous avons appris est thinkphp

Moteurs de modèles : il y en a beaucoup, les incluant dans les manuels scolaires. Ce que nous avons appris est intelligent

Système : il y en a beaucoup, comme les produits de Kangsheng (uchome, supesite. , discuzX, etc. ), Empire System, DEDE(Dream Weaver), ecshop, etc.

4. Quelles sont les technologies web front-end que vous maîtrisez ? 🎜>

Maîtrise de la mise en page Web DIV+CSS, JavaScript, framework jQuery, traitement d'images Photoshop

Quels sont les avantages d'AJAX ?

ajax est une technologie de transmission asynchrone qui peut être utilisée via javascript. Elle peut également être implémentée via 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

6 . La sécurité est cruciale pour un programme, veuillez m'en parler. À quels mécanismes de sécurité faut-il prêter attention lors du développement

① Empêcher la soumission à distance ; ② Empêcher l'injection SQL et filtrer les codes spéciaux ; inondation de la machine et utilisation des codes de vérification

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

① Optimiser l'instruction SQL, essayez de ne pas utiliser select * dans l'instruction de requête, utilisez quel champ pour vérifier quel champ ; utilisez moins de sous-mots La requête peut être remplacée par une connexion à la table ; utilisez une requête moins floue ; ② Créez un index dans la table de données ③ Générez fréquemment un cache pour les données ; utilisé dans le programme ;

8. PHP peut-il être utilisé avec d'autres bases de données

PHP est la meilleure combinaison avec la base de données MYSQL ? avec d'autres bases de données, telles que MSSQL. PHP a réservé des fonctions pour faire fonctionner MSSQL, qui peuvent être utilisées tant qu'il est activé

9 De nos jours, la structure à trois couches MVC est souvent adoptée dans. programmation. À quelles trois couches MVC fait-il référence et quels sont leurs avantages ?

Les trois couches de MVC font référence respectivement : au modèle commercial et à la vue, au contrôleur, la couche contrôleur appelle le modèle pour traiter le. données, puis mappe les données sur la couche d'affichage pour l'affichage.Les avantages sont les suivants : ① Il peut permettre la réutilisation du code et éviter la redondance du code ② Les codes d'implémentation de M et V sont séparés, de sorte que le même programme peut utiliser des représentations différentes ; 🎜>

10. Compréhension du format de données json ?

(

) est un format d'échange de données léger, le format de données json est fixe et peut être utilisé pour le transfert de données dans plusieurs langues JSONJavaScript Object NotationLa fonction en PHP qui gère le format json est

(

json_decode), qui accepte une chaîne au format JSON et la convertit en variable PHP, la le paramètre json est une chaîne au format string $json à décoder. [, bool $assoc ]Lorsque le paramètre est json string, assoc sera renvoyé à la place de TRUE;arrayobject

 : Convertir les variables PHP au format json

Json_encode

11 , Print, echo, print_r Quelle est la différence ?

① echo et print peuvent tous deux effectuer une sortie. La différence est que echo n'est pas une fonction et n'a pas de valeur de retour, tandis que print est une fonction avec un. valeur de retour, donc relativement parlant, il sera plus rapide de simplement générer un écho, et print_r est généralement utilisé pour imprimer des informations pertinentes sur les variables, généralement utilisées dans le débogage.

② print consiste à imprimer une chaîne

③ print_r consiste à imprimer un type composite tel qu'un objet tableau

12. Quelle est la différence entre SESSION et COOKIE?

①Emplacement de stockage : la session est stockée dans le serveur, le cookie est stocké dans le navigateur

②Sécurité : la sécurité de la session est supérieure à celle du cookie

③la session est un 'service de session', lorsqu'il est utilisé Le service doit être activé, les cookies n'ont pas besoin d'être activés, vous pouvez utiliser directement

13. Quelles sont les fonctions courantes de PHP pour traiter les tableaux (Focus ? sur les 'paramètres' et la 'valeur de retour' de la fonction)

①array() crée un tableau ; ②count() renvoie le nombre d'éléments dans le tableau ; ③array_push() insère un ou plusieurs éléments à la fin du tableau (push) ; dans le tableau d'entrée ;⑤array_combine() crée un nouveau tableau en fusionnant deux tableaux ;⑥array_reverse() renvoie le tableau dans l'ordre inverse ;⑦array_unique() supprime les valeurs en double dans le tableau ;⑧in_array() vérifie si la valeur spécifiée existe dans le array;

14. Fonctions couramment utilisées en PHP pour traiter des chaînes ? (Concentrez-vous sur les « paramètres » et les « valeurs de retour » de la fonction)

①trim() supprime les espaces des deux côtés des caractères de la chaîne et des autres caractères ;

②substr_replace() remplace une partie d'une chaîne par une autre chaîne

③substr_count() compte le nombre de fois qu'une sous-chaîne apparaît dans ; une chaîne ;

④substr() renvoie une partie de la chaîne ;

⑤strtolower() convertit la chaîne en lettres minuscules ;

⑥strtoupper() convertit la chaîne en lettres majuscules ;

⑦strtr() convertit des caractères spécifiques dans une chaîne ;

⑧strrchr() trouve la dernière occurrence d'une chaîne dans une autre chaîne

⑨strstr() trouve la dernière occurrence ; d'une chaîne dans un autre caractère La première occurrence dans la chaîne (sensible à la casse) ; strrev() inverse la chaîne ; strlen() renvoie la longueur de la chaîne ; str_replace() remplace certains caractères dans la chaîne (sensible à la casse) ; print( ) Produit une ou plusieurs chaînes ; explosive() divise la chaîne en un tableau ; is_string() détecte si la variable est une chaîne ; strip_tags() supprime les balises HTML d'une chaîne ; mb_substr() est utilisé pour couper le chinois et l'anglais. fonctions

15. Fonctions couramment utilisées en PHP pour traiter le temps ? (Focus sur les 'paramètres' et les 'valeurs de retour' de la fonction)

date_default_timezone_get()Retour au fuseau horaire par défaut.

 date_default_timezone_set()Définissez le fuseau horaire par défaut.

 date()Formater l'heure/la date locale.

 getdate()Renvoyer les informations de date/heure.

 gettimeofday()Renvoie les informations sur l'heure actuelle.

 microtime()Renvoie le nombre de microsecondes dans l'heure actuelle.

 mktime()Renvoie l'horodatage Unix d'une date.

 strtotime()Analysez n'importe quelle description de date ou d'heure de texte anglais dans un horodatage Unix.

 time()Renvoie l'horodatage Unix de l'heure actuelle.

16. Quelles sont les fonctions couramment utilisées par PHP pour traiter les bases de données ? (Focus sur les « paramètres » et les « valeurs de retour » de la fonction)

Veuillez vous référer au manuel PHP et lisez-le attentivement. L'élément est très important

 17. Fonctions couramment utilisées pour exploiter les fichiers en PHP (Focus sur les « paramètres » et les « valeurs de retour » de la fonction) ? 🎜>

 ①Ouvrez le fichier ;②Supprimer le fichier ; ③ Lire le fichier ; ④ Écrire le fichier ; ⑥ Fermer le fichier ; Créer un fichier, etc. Il est souvent utilisé pour générer du cache. ou des fichiers statiques au travail. Veuillez vous référer au manuel PHP et le lire attentivement

 

18. Fonctions couramment utilisées de PHP pour faire fonctionner les répertoires (dossiers) ? valeurs' de la fonction)

 ①Ouvrez le répertoire ;② Supprimez le répertoire ; ③ Lisez le répertoire ; ⑤ Modifiez le répertoire ; ⑥ Fermez le répertoire ; important. Il est souvent utilisé pour créer ou supprimer des répertoires pour les fichiers téléchargés au travail, et pour créer ou supprimer des répertoires pour les pages en cache et statiques, veuillez vous référer au manuel PHP et vérifier attentivement

19. est mvc ? Quelle est la relation entre eux ?

Réponse : MVC est un modèle de développement, qui est principalement divisé en trois parties : m (modèle), qui est le modèle, est responsable du fonctionnement des données ; v (vue), qui est la vue, est responsable de l'affichage du front et du backend ; c (contrôleur), qui est le contrôleur, est responsable de la logique métier

20. qu'est-ce que oop ?

Réponse : oop est une programmation orientée objet. La programmation orientée objet est une architecture de programmation informatique. Un principe de base de la POO est qu'un programme informatique est composé d'un seul élément. unités ou objets qui sont utilisés par les sous-programmes

21. La POO a trois caractéristiques majeures

1 Encapsulation : également appelée masquage d'informations, il s'agit de cacher un L'utilisation et. Les implémentations de la classe sont séparées et seules certaines interfaces et méthodes sont conservées pour les contacts externes, ou seules certaines méthodes sont exposées aux développeurs. Par conséquent, les développeurs doivent uniquement prêter attention à la façon d'utiliser cette classe, plutôt que de se soucier de son processus de mise en œuvre spécifique. Cela peut permettre une division du travail et une coopération MVC, et peut également éviter efficacement l'interdépendance entre les programmes et obtenir un couplage lâche entre les modules de code.

2. Héritage : les sous-classes héritent automatiquement des attributs et des méthodes de leur classe parent, et peuvent ajouter de nouveaux attributs et méthodes ou réécrire certains attributs et méthodes. L'héritage augmente la réutilisabilité du code. PHP ne prend en charge que l'héritage unique, ce qui signifie qu'une sous-classe ne peut avoir qu'une seule classe parent.

3. Polymorphisme : la sous-classe hérite des attributs et des méthodes de la classe parent et remplace certaines méthodes. Par conséquent, bien que plusieurs sous-classes aient la même méthode, les objets instanciés par ces sous-classes peuvent obtenir des résultats complètement différents après avoir appelé ces mêmes méthodes. Cette technologie est le polymorphisme. Le polymorphisme augmente la flexibilité du logiciel.

22. Qu'est-ce que smarty et que fait-il ?

Réponse : Réponse 1 : smarty est un moteur de template écrit en PHP, et c'est actuellement le plus connu. PHP dans l'industrie. L'un des moteurs de modèles

Il sépare le code logique et l'affichage externe, et fournit une méthode facile à gérer et à utiliser pour séparer le code logique PHP mixte du code HTML

Réponse 2 : Smarty est PHP l'un des Frameworks de moteur les plus connus au monde, notre société utilise le framework TP, qui a encapsulé les modèles smarty, il n'a donc pas été utilisé seul

Réponse 3 : smarty est un moteur de modèles. La chose la plus remarquable est qu'il. Les modèles peuvent être mis en cache. De manière générale, les modèles sont conçus pour créer une page statique, puis y couper des parties dynamiques avec des délimiteurs, puis ouvrir le fichier modèle en PHP, remplacer les valeurs dans les délimiteurs, puis le sortir, vous pouvez consulter la partie modèle dans PHPLib.

23. Quels sont les avantages du framework TP ?

Réponse : Le framework TP est un framework développé par les Chinois nous-mêmes. gamme complète d'informations et est utilisé au niveau national. Il en existe de nombreuses, relativement simples et pratiques, et il est gratuit et open source

24. Quelles sont les caractéristiques de TP ?

Réponse :

1. La requête multi-tables est très pratique. Vous pouvez compléter l'opération d'association de plusieurs tables avec seulement quelques lignes de code dans le modèle

2. pour séparer le front-end et le backend

3. Prise en charge de plusieurs caches La technologie, en particulier le support technique de Memcache, est très bonne

4. Les normes de dénomination, les modèles, les vues et les contrôleurs suivent strictement les règles de dénomination et correspondent. un à un via la dénomination

5. Prise en charge de plusieurs modes d'URL

6. Méthode de retour ajax intégrée, notamment xml, json, html, etc.

7. . Prise en charge de l'extension d'application, de l'extension de bibliothèque de classes, de l'extension de pilote, etc.

24. Fonctions TP en grosses lettres dans le framework ?

Réponse : U : Assemblage de l'URL<.>

A : Contrôleur d'instanciation interne

S : Traitement du cache

R : Appeler la méthode de fonctionnement d'un contrôleur

D : Instancier une classe de modèle personnalisée

M : Instancier une classe de modèle de base

I : Obtenir les paramètres

L : Définir ou obtenir la langue actuelle

C : Définir ou obtenir, enregistrer la configuration

25. Veuillez présenter le framework laravel ?

Réponse : Les idées de conception du framework laravel sont relativement avancées et sont très adaptées à l'application de divers modèles de développement. framework, il a tout préparé pour vous. Composer est l'avenir de PHP. Sans composer, PHP va définitivement décliner

La plus grande caractéristique et excellence du framework laravel est qu'il intègre également les fonctionnalités relativement nouvelles de PHP. comme divers modèles de conception, modèles Ioc, injection de dépendances, etc.

26 Qu'est-ce que Laravel a ?

Réponse : Réponse 1 :

1. Routeur de repos puissant : il peut être appelé avec une simple fonction de rappel et lie rapidement le contrôleur et le routeur

2.artisan : outil de ligne de commande, automatise de nombreuses tâches manuelles

3. modèles, simplifiant le développement et la gestion des vues

Modèle 4.blade : rendu plus rapide

5.ORM exploite la base de données

6.migration : gère la base de données et le contrôle des versions

7. La fonction de test est également très puissante

8.composer est également un point fort

Réponse 2 : Le framework Laravel introduit la façade, l'injection de dépendances, le mode Ioc et divers modèles de conception, etc.

27. Veuillez décrire brièvement l'optimisation de la base de données ?

Réponse : L'optimisation de la base de données peut être optimisée sous quatre aspects :

1. Couche structurelle : Le serveur Web utilise un serveur d'équilibrage de charge, le serveur MySQL utilise la réplication maître-esclave et la séparation lecture-écriture


2. Depuis la couche de stockage : Utilisez un moteur de stockage approprié. et utilisez trois formes normales

3. À partir de la couche de conception : utilisez des partitions pour diviser les tables, les index et utilisez les attributs de champ appropriés pour les champs de table. Utilisez de manière appropriée le paradigme inverse et activez le cache MySQL

4. . Couche d'instructions SQL : lorsque les résultats sont les mêmes, utilisez des instructions SQL efficaces, rapides et économisant des ressources pour exécuter

Comment résoudre la gestion des exceptions ? >Réponse : Lancez une exception : utilisez try...catch, le code d'exception est placé dans le bloc de code try. Si l'exception n'est pas déclenchée, le code continue de s'exécuter. Si l'exception est déclenchée, une exception sera levée. Le bloc de code Catch intercepte l'exception et crée un objet contenant les informations sur l'exception. $e->getMessage(), génère un message d'erreur anormal.

Actuellement, le panier est principalement mis en œuvre via des cookies, des sessions ou combiné avec des bases de données. Analysons leurs mécanismes et leurs fonctions.

1. Cookie

2. Un cookie est une information générée par le serveur et stockée sur le client. Il définit un mécanisme permettant à un serveur Web de stocker et de renvoyer des informations sur le client. Le fichier cookie contient les valeurs de domaine, de chemin, de durée de vie et de variable définies par le serveur. Lorsque l'utilisateur visitera ultérieurement le même serveur Web, le navigateur enverra le cookie au serveur sans modification. En permettant au serveur de lire les informations initialement enregistrées sur le client, le site Web peut offrir aux visiteurs une série de commodités, telles que l'identification de l'identité de l'utilisateur lors de transactions en ligne, empêchant les utilisateurs de saisir à plusieurs reprises leur nom et leur mot de passe dans des situations où les exigences de sécurité sont pas élevé, et la page d'accueil du site Web du portail Personnalisez, ciblez les annonces et plus encore. Grâce aux caractéristiques des cookies, les fonctions des applications WEB sont considérablement étendues. Non seulement la connexion entre le serveur et le client peut être établie, car le cookie peut être personnalisé par le serveur, mais la valeur du cookie générée par les informations d'achat peut également être établie. stocké sur le client, réalisant ainsi la fonction de panier. L'utilisation d'une méthode basée sur les cookies pour mettre en œuvre une session ou un panier entre le serveur et le navigateur présente les caractéristiques suivantes :

3. Les cookies sont stockés côté client et occupent très peu de ressources. Le navigateur autorise 300 cookies. à stocker. , la taille de chaque cookie est de 4 Ko, ce qui est suffisant pour répondre aux exigences du panier et réduit également la charge sur le serveur

4. Les cookies sont intégrés au navigateur et sont faciles à utiliser. Même si l'utilisateur ferme accidentellement la fenêtre du navigateur, les informations contenues dans le panier ne seront pas perdues tant qu'elles seront pendant la période de validité définie par le cookie

5. Les cookies ne sont pas des fichiers exécutables ; ne sera pas exécuté de quelque manière que ce soit. Par conséquent, il n'apportera pas de virus et n'attaquera pas le système de l'utilisateur

6. Le panier d'achat basé sur les cookies nécessite que le navigateur de l'utilisateur prenne en charge et soit configuré pour activer les cookies ; le panier sera invalide ;

7. Il y a un débat sur les cookies portant atteinte à la vie privée des visiteurs, c'est pourquoi certains utilisateurs désactiveront la fonction cookie de la machine.

2. Session

1. La session est une autre façon de mettre en œuvre un panier. La session fournit la fonction d'enregistrement et de suivi des informations sur l'état de l'utilisateur, de sorte que les variables et les objets définis par l'utilisateur actuel dans la session puissent être partagés entre les pages, mais ne soient pas accessibles aux autres utilisateurs de l'application. La différence la plus importante entre eux. et les cookies sont que la session stocke les informations privées de l'utilisateur pendant la session côté serveur, améliorant ainsi la sécurité. Une fois que le serveur a généré une session, le client générera un numéro d'identification de session et l'enregistrera sur le client pour maintenir la synchronisation avec le serveur. Cet identifiant de session est en lecture seule. Si le client désactive la fonction cookie, la session sera transmise entre les pages en ajoutant des paramètres à l'URL, ou en la soumettant implicitement dans un formulaire, etc. Il est donc plus sûr et plus efficace d’utiliser des sessions pour gérer les utilisateurs.

2. De même, le panier peut également être implémenté à l'aide de session. Les caractéristiques de cette méthode sont :

1. La session utilise un nouveau mécanisme pour maintenir la synchronisation avec le client et ne dépend pas. sur les paramètres du client.

2. Par rapport aux cookies, la session est une information stockée côté serveur, elle est donc plus sécurisée. Par conséquent, le marquage de l'identité, les achats et d'autres informations peuvent être stockés dans la session ; >

3. Les sessions occuperont les ressources du serveur et augmenteront la charge sur le serveur. Surtout lorsqu'il y a de nombreux utilisateurs simultanés, un grand nombre de sessions seront générées, affectant les performances du serveur

4. . Parce que les informations stockées dans les sessions sont plus sensibles et se présentent sous forme de fichiers. Le formulaire est enregistré sur le serveur, il existe donc toujours des risques de sécurité.

Les questions ci-dessus sont des questions d'entretien collectées, j'espère qu'elles seront utiles à tout le monde. Merci!

Pour plus de questions connexes, veuillez visiter le site Web PHP chinois :

https://www.php.cn/

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