Top 100 des questions et réponses d'entretien PHP (PDF)
Questions d'entretien PHP pour les débutants
1) Qu’est-ce que PHP ?
PHP est un langage web basé sur des scripts qui permettent aux développeurs de créer dynamiquement des pages web générées.
2) Que signifient les initiales de PHP ?
PHP signifie Hypertext Pre-processor.
👉 Téléchargement PDF gratuit : questions et réponses d'entretien PHP
3) À quel langage de programmation PHP ressemble-t-il ?
La syntaxe PHP ressemble à Perl et C
4) Que signifie PEAR ?
PEAR signifie « Référentiel d'extensions et d'applications PHP ». Il étend PHP et fournit un niveau de programmation plus élevé aux développeurs Web.
5) Quelle est la version PHP réellement utilisée ?
La version 7.1 ou 7.2 est la version recommandée de PHP.
6) Comment exécuter un script PHP depuis la ligne de commande ?
Utilisez simplement l'interface de ligne de commande PHP (CLI) et spécifiez le nom de fichier du script à exécuter comme suit :
php script.php
7) Comment exécuter le shell PHP interactif depuis l’interface de ligne de commande ?
Utilisez simplement le programme PHP CLI avec l'option -a comme suit :
php -a
8) Quelle est la manière correcte et la plus courante de démarrer et de terminer un bloc de code PHP ?
Les deux manières les plus courantes de démarrer et de terminer un script PHP sont :
<?php [ --- PHP code---- ] ?> and <? [--- PHP code ---] ?>
9) Comment pouvons-nous afficher la sortie directement dans le navigateur ?
Pour pouvoir afficher la sortie directement dans le navigateur, nous devons utiliser les balises spéciales .
10) Quelle est la principale différence entre PHP 4 et PHP 5 ?
PHP 5 présente de nombreuses POO supplémentaires (Programmation orientée objet) fonctionnalités.
11) L’héritage multiple est-il pris en charge en PHP ?
PHP ne prend en charge qu'un seul héritage ; cela signifie qu'une classe peut être étendue à partir d'une seule classe en utilisant le mot-clé « extended ».
12) Quelle est la signification d’une classe finale et d’une méthode finale ?
'final' est introduit dans PHP5. La classe finale signifie que cette classe ne peut pas être étendue et qu'une méthode finale ne peut pas être remplacée.
13) Comment se fait la comparaison d’objets en PHP ?
Nous utilisons l'opérateur '==' pour tester si deux objets sont instanciés de la même classe et ont les mêmes attributs et des valeurs égales. Nous pouvons tester si deux objets font référence à la même instance de la même classe en utilisant l'opérateur d'identité '==='.
14) Comment PHP et HTML peuvent-ils interagir ?
Il est possible de générer du HTML via des scripts PHP, et il est possible de transmettre des informations du HTML vers PHP.
15) Quel type d'opération est nécessaire lors de la transmission de valeurs via un formulaire ou une URL ?
Si nous souhaitons transmettre des valeurs via un formulaire ou une URL, nous devons alors les encoder et les décoder en utilisant htmlspecialchars() et urlencode().
16) Comment PHP et Javascript interagir?
PHP et Javascript ne peut pas interagir directement puisque PHP est un langage côté serveur et Javascript est un langage côté client. Cependant, nous pouvons échanger des variables puisque PHP peut générer Javascript code à exécuter par le navigateur et il est possible de renvoyer des variables spécifiques à PHP via l'URL.
17) Que faut-il pour pouvoir utiliser la fonction image ?
La bibliothèque GD est nécessaire pour exécuter les fonctions d'image.
18) A quoi sert la fonction 'imagetypes()' ?
imagetypes()
donne le format d'image et les types pris en charge par la version actuelle de GD-PHP.
19) Quelles sont les fonctions à utiliser pour obtenir les propriétés de l'image (taille, largeur et hauteur) ?
20) Comment les échecs d'exécution sont-ils gérés avec les fonctions include() et require() ?
Si la fonction require()
ne peut pas accéder au fichier, cela se termine par une erreur fatale. Cependant, le include()
La fonction donne un avertissement et le script PHP continue de s'exécuter.
21) Quelle est la principale différence entre require() et require_once() ?
require()
et require_once()
effectuer la même tâche sauf que la deuxième fonction vérifie si le script PHP est déjà inclus ou non avant de l'exécuter.
(idem pour include_once() et include())
22) Comment afficher du texte avec un script PHP ?
Deux méthodes sont possibles :
<!--?php echo "Method 1"; print "Method 2"; ?-->
23) Comment peut-on afficher les informations d'une variable et lisibles par un humain avec PHP ?
Pour pouvoir afficher un résultat lisible par l'homme, nous utilisons print_r()
.
24) Comment est-il possible de définir un temps d'exécution infini pour un script PHP ?
Le set_time_limit(0) ajouté au début d'un script définit le temps d'exécution à l'infini pour ne pas avoir l'erreur PHP "temps d'exécution maximum dépassé". Il est également possible de le préciser dans le fichier php.ini.
Questions et réponses d'entretien PHP pour les expérimentés
25) Que signifie l'erreur PHP « Erreur d'analyse en PHP – variable T_inattendue à la ligne x » ?
Il s'agit d'une erreur de syntaxe PHP exprimant qu'une erreur à la ligne x arrête l'analyse et l'exécution du programme.
26) Que doit-on faire pour pouvoir exporter les données dans un fichier Excel ?
Le moyen le plus courant et le plus utilisé consiste à obtenir des données dans un format pris en charge par Excel. Par exemple, il est possible d'écrire un fichier .csv, de choisir par exemple une virgule comme séparateur entre les champs puis d'ouvrir le fichier avec Excel.
27) A quoi sert la fonction file_get_contents() ?
file_get_contents()
permet de lire un fichier et de le stocker dans une variable chaîne.
28) Comment pouvons-nous nous connecter à un MySQL base de données à partir d'un script PHP ?
Pour pouvoir se connecter à un MySQL base de données, nous devons utiliser la fonction mysqli_connect() comme suit :
<!--?php $database = mysqli_connect("HOST", "USER_NAME", "PASSWORD"); mysqli_select_db($database,"DATABASE_NAME"); ?-->
29) A quoi sert la fonction mysql_pconnect() ?
mysql_pconnect()
assurer une connexion persistante à la base de données, cela signifie que la connexion ne se ferme pas à la fin du script PHP.
Cette fonction n'est pas prise en charge dans PHP 7.0 et supérieur
30) Comment le jeu de résultats de Mysql est-il géré en PHP ?
Le jeu de résultats peut être géré en utilisant mysqli_fetch_array, mysqli_fetch_assoc, mysqli_fetch_object ou mysqli_fetch_row.
31) Comment est-il possible de connaître le nombre de lignes renvoyées dans le jeu de résultats ?
La fonction mysqli_num_rows()
renvoie le nombre de lignes dans un jeu de résultats.
32) Quelle fonction nous donne le nombre d'entrées concernées par une requête ?
mysqli_affected_rows()
renvoie le nombre d'entrées affectées par une requête SQL.
33) Quelle est la différence entre mysqli_fetch_object() et mysqli_fetch_array() ?
La série mysqli_fetch_object()
la fonction collecte le premier enregistrement correspondant où mysqli_fetch_array()
collecte tous les enregistrements correspondants de la table dans un tableau.
34) Comment pouvons-nous accéder aux données envoyées via l'URL avec la méthode GET ?
Pour accéder aux données envoyées via la méthode GET, nous utilisons le tableau $_GET comme ceci :
www.url.com?var=value $variable = $_GET["var"]; this will now contain 'value'
35) Comment pouvons-nous accéder aux données envoyées via l'URL avec la méthode POST ?
Pour accéder aux données envoyées de cette manière, vous utilisez le tableau $_POST.
Imaginez que vous ayez un champ de formulaire appelé « var » sur le formulaire lorsque l'utilisateur clique sur Soumettre au formulaire de publication, vous pouvez alors accéder à la valeur comme ceci :
$_POST["var"];
36) Comment pouvons-nous vérifier que la valeur d’une variable donnée est un nombre ?
Il est possible d'utiliser la fonction dédiée, is_numeric() pour vérifier s'il s'agit d'un nombre ou non.
37) Comment peut-on vérifier que la valeur d'une variable donnée est alphanumérique ?
Il est possible d'utiliser la fonction dédiée, ctype_alnum pour vérifier s'il s'agit d'une valeur alphanumérique ou non.
38) Comment vérifier si une variable donnée est vide ?
Si l'on veut vérifier si une variable a une valeur ou non, il est possible d'utiliser la fonction empty().
39) Que signifie la fonction unlink() ?
La fonction unlink() est dédiée à la gestion du système de fichiers. Il supprime simplement le fichier donné en entrée.
40) Que signifie la fonction unset() ?
La fonction unset() est dédiée à la gestion des variables. Cela rendra une variable indéfinie.
41) Comment puis-je échapper aux données avant de les stocker dans la base de données ?
La fonction addlashes nous permet d'échapper aux données avant de les stocker dans la base de données.
42) Comment est-il possible de supprimer les caractères d'échappement d'une chaîne ?
La fonction stripslashes nous permet de supprimer les caractères d'échappement avant les apostrophes dans un un magnifique.
43) Comment pouvons-nous échapper automatiquement aux données entrantes ?
Nous devons activer l'entrée Magic quotes dans le fichier de configuration de PHP.
44) Que signifie la fonction get_magic_quotes_gpc() ?
La fonction get_magic_quotes_gpc() nous indique si les guillemets magiques sont activés ou non.
45) Est-il possible de supprimer les balises HTML des données ?
La fonction strip_tags() nous permet de nettoyer une chaîne des balises HTML.
46) à quoi sert la variable statique en fonction ?
Une variable statique n'est définie dans une fonction que la première fois, et sa valeur peut être modifiée lors des appels de fonction comme suit :
<!--?php function testFunction() { static $testVariable = 1; echo $testVariable; $testVariable++; } testFunction(); //1 testFunction(); //2 testFunction(); //3 ?-->
47) Comment définir une variable accessible dans les fonctions d'un script PHP ?
Cette fonctionnalité est possible en utilisant le mot-clé global.
48) Comment est-il possible de renvoyer une valeur à partir d'une fonction ?
Une fonction renvoie une valeur en utilisant l'instruction 'return $value;'.
49) Quelle est la méthode de hachage la plus pratique à utiliser pour hacher les mots de passe ?
Il est préférable d'utiliser crypt() qui supporte nativement plusieurs algorithmes de hachage ou la fonction hash() qui supporte plus de variantes que crypt() plutôt que d'utiliser les algorithmes de hachage courants comme md5, sha1 ou sha256 car ils sont conçus pour être rapides. Par conséquent, le hachage des mots de passe avec ces algorithmes peut créer une vulnérabilité.
50) Quelle extension cryptographique permet la génération et la vérification des signatures numériques ?
Le PHP-OpenSSL L'extension fournit plusieurs opérations cryptographiques, notamment la génération et la vérification de signatures numériques.
Questions d'entretien PHP pour 5 ans d'expérience
51) Comment est définie une constante dans un script PHP ?
La directive definition() nous permet de définir une constante comme suit :
define ("ACONSTANT", 123);
52) Comment passer une variable par référence ?
Pour pouvoir passer une variable par référence, on utilise une esperluette devant elle, comme suit $var1 = &$var2
53) Une comparaison d'un entier 12 et d'une chaîne « 13 » fonctionnera-t-elle en PHP ?
« 13 » et 12 peuvent être comparés en PHP car il convertit tout en type entier.
54) Comment est-il possible de convertir des types en PHP ?
Le nom du type de sortie doit être spécifié entre parenthèses avant la variable qui doit être convertie comme suit :
* (int), (entier) – converti en entier
* (bool), (booléen) – converti en booléen
* (flotteur), (double), (réel) – lancé pour flotter
* (chaîne) – converti en chaîne
* (tableau) – converti en tableau
* (objet) – converti en objet
55) Quand une instruction conditionnelle se termine-t-elle par endif ?
Lorsque l'original if était suivi de : puis du bloc de code sans accolades.
56) Comment l'opérateur conditionnel ternaire est-il utilisé en PHP ?
Il est composé de trois expressions : une condition et deux opérandes décrivant quelle instruction doit être exécutée lorsque la condition spécifiée est vraie ou fausse, comme suit :
Expression_1?Expression_2 : Expression_3;
57) A quoi sert la fonction func_num_args() ?
La fonction func_num_args() permet de donner le nombre de paramètres passés dans une fonction.
58) Si la variable $var1 est définie sur 10 et que $var2 est défini sur le caractère var1, quelle est la valeur de $$var2 ?
$$var2 contient la valeur 10.
59) Que signifie accéder à une classe via :: ?
:: est utilisé pour accéder aux méthodes statiques qui ne nécessitent pas d'initialisation d'objet.
60) En PHP, les objets sont-ils passés par valeur ou par référence ?
En PHP, les objets sont passés par référence.
61) Les constructeurs parents sont-ils appelés implicitement à l'intérieur d'un constructeur de classe ?
Non, un constructeur parent doit être appelé explicitement comme suit :
parent::constructor($value)
62) Quelle est la différence entre __sleep et __wakeup ?
__sleep renvoie le tableau de toutes les variables qui doivent être enregistrées, tandis que __wakeup les récupère.
63) Qu'est-ce qui est plus rapide ?
1- Combiner deux variables comme suit :
$variable1 = 'Hello '; $variable2 = 'World'; $variable3 = $variable1.$variable2;
Or
2- $variable3 = "$variable1$variable2";
$variable3 contiendra « Hello World ». Le premier code est plus rapide que le deuxième code, en particulier pour les grands ensembles de données.
64) quelle est la définition d'une séance ?
Une session est un objet logique nous permettant de conserver des données temporaires sur plusieurs pages PHP.
65) Comment initier une session en PHP ?
L'utilisation de la fonction session_start() permet d'activer une session.
66) Comment propager un identifiant de session ?
Vous pouvez propager un identifiant de session via des cookies ou des paramètres d'URL.
67) Quelle est la signification d’un cookie persistant ?
Un cookie persistant est stocké de manière permanente dans un fichier cookie sur l'ordinateur du navigateur. Par défaut, les cookies sont temporaires et sont effacés si nous fermons le navigateur.
68) Quand se terminent les séances ?
Les sessions se terminent automatiquement lorsque l'exécution du script PHP est terminée, mais peuvent être terminées manuellement à l'aide de session_write_close().
69) Quelle est la différence entre session_unregister() et session_unset() ?
La fonction session_unregister() désenregistre une variable globale de la session en cours et la fonction session_unset() libère toutes les variables de session.
70) Que signifie $GLOBALS ?
$GLOBALS est un tableau associatif comprenant des références à toutes les variables actuellement définies dans la portée globale du script.
Questions d'entretien PHP pour 10 ans d'expérience
71) Que signifie $_SERVER ?
$_SERVER est un tableau comprenant des informations créées par le serveur Web telles que des chemins, des en-têtes et des emplacements de script.
72) Que signifie $_FILES ?
$_FILES est un tableau associatif composé d'éléments envoyés au script en cours via la méthode HTTP POST.
73) Quelle est la différence entre $_FILES['userfile']['name'] et $_FILES['userfile']['tmp_name'] ?
$_FILES['userfile']['name'] représente le nom d'origine du fichier sur la machine client,
$_FILES['userfile']['tmp_name'] représente le nom de fichier temporaire du fichier stocké sur le serveur.
74) Comment pouvons-nous obtenir l'erreur lorsqu'il y a un problème pour télécharger un fichier ?
$_FILES['userfile']['error'] contient le code d'erreur associé au fichier téléchargé.
75) Comment pouvons-nous modifier la taille maximale des fichiers à télécharger ?
Nous pouvons modifier la taille maximale des fichiers à télécharger en modifiant upload_max_filesize dans php.ini.
76) Que signifie $_ENV ?
$_ENV est un tableau associatif de variables envoyé au script PHP actuel via la méthode d'environnement.
77) Que signifie $_COOKIE ?
$_COOKIE est un tableau associatif de variables envoyé au script PHP actuel à l'aide des cookies HTTP.
78) Que signifie la portée des variables ?
La portée d'une variable est le contexte dans lequel elle est définie. Pour la plupart, toutes les variables PHP n’ont qu’une seule portée. Cette portée unique couvre également les fichiers inclus et requis.
79) quelle est la différence entre l'opérateur 'BITWISE AND' et l'opérateur 'LOGICAL AND' ?
$a et $b : VRAI si $a et $b sont VRAIS.
$a & $b : les bits définis dans $a et $b sont définis.
80) Quels sont les deux principaux opérateurs de chaînes ?
Le premier est l'opérateur de concaténation ('.'), qui renvoie la concaténation de ses arguments droit et gauche. Le second est ('.='), qui ajoute l'argument de droite à l'argument de gauche.
81) Que signifie l'opérateur de tableau '===' ?
$a === $b TRUE si $a et $b ont les mêmes paires clé/valeur dans le même ordre et des mêmes types.
82) Quelles sont les différences entre $a != $b et $a !== $b ?
!= signifie inégalité (VRAI si $a n'est pas égal à $b) et !== signifie non-identité (VRAI si $a n'est pas identique à $b).
83) Comment pouvons-nous déterminer si une variable PHP est un objet instancié d'une certaine classe ?
Pour pouvoir vérifier si une variable PHP est un objet instancié d'une certaine classe, nous utilisons instanceof.
84) A quoi sert l'instruction goto ?
L'instruction goto peut être placée pour permettre de sauter à l'intérieur du programme PHP. La cible est pointée par une étiquette suivie de deux points, et l'instruction est spécifiée sous la forme d'une instruction goto suivie de l'étiquette cible souhaitée.
85) quelle est la différence entre Exception :: getMessage et Exception :: getLine ?
Exception :: getMessage nous permet d'obtenir le message d'exception et Exception :: getLine nous permet d'obtenir la ligne dans laquelle l'exception s'est produite.
86) Que signifie l'expression Exception::__toString ?
Exception::__toString donne la représentation String de l'exception.
87) Comment est-il possible d'analyser un fichier de configuration ?
La fonction parse_ini_file() nous permet de charger le fichier ini spécifié dans filename et renvoie les paramètres qu'il contient dans un tableau associatif.
88) Comment pouvons-nous déterminer si une variable est définie ?
La fonction booléenne isset détermine si une variable est définie et n'est pas NULL.
89) Quelle est la différence entre les fonctions strstr() et strstr() ?
La fonction de chaîne strstr(string allString, string occ) renvoie une partie de allString depuis la première occurrence de occ jusqu'à la fin de allString. Cette fonction est sensible à la casse. strstr() est identique à strstr() sauf qu'elle n'est pas sensible à la casse.
90) quelle est la différence entre for et foreach ?
car s’exprime ainsi :
pour (expr1; expr2; expr3)
déclaration
La première expression est exécutée une fois au début. À chaque itération, expr2 est évalué. Si c'est VRAI, la boucle continue et les instructions contenues dans for sont exécutées. S'il est évalué à FALSE, l'exécution de la boucle se termine. expr3 est testé à la fin de chaque itération.
Cependant, foreach fournit un moyen simple de parcourir les tableaux et il n'est utilisé qu'avec des tableaux et des objets.
91) Est-il possible de soumettre un formulaire avec un bouton dédié ?
Il est possible d'utiliser le document.form.submit()
fonction pour soumettre le formulaire. Par exemple: <input type=button value="SUBMIT" onClick="document.form.submit()">
92) Quelle est la différence entre ereg_replace() et eregi_replace() ?
La fonction eregi_replace() est identique à la fonction ereg_replace() sauf qu'elle ignore la distinction de casse lors de la correspondance des caractères alphabétiques.
93) Est-il possible de protéger les caractères spéciaux dans une chaîne de requête ?
Oui, nous utilisons la fonction urlencode() pour pouvoir protéger les caractères spéciaux.
94) Quelles sont les trois classes d’erreurs pouvant survenir en PHP ?
Les trois classes d'erreurs de base sont les notifications (non critiques), les avertissements (erreurs graves) et les erreurs fatales (erreurs critiques).
95) Quelle est la différence entre les caractères \034 et \x34 ?
\034 est un octal 34 et \x34 est un hexadécimal 34.
96) Comment faire passer la variable lors de la navigation entre les pages ?
Il est possible de transmettre les variables entre les pages PHP à l'aide de sessions, de cookies ou de champs de formulaire cachés.
97) Est-il possible d'allonger le temps d'exécution d'un script PHP ?
L'utilisation du set_time_limit(int seconds) nous permet d'allonger le temps d'exécution d'un script PHP. La limite par défaut est de 30 secondes.
98) Est-il possible de détruire un cookie ?
Oui, c'est possible en définissant le cookie avec une date d'expiration passée.
99) Quelle est la durée de session par défaut en PHP ?
La durée de session par défaut en php est jusqu'à la fermeture du navigateur
100) Est-il possible d'utiliser le composant COM en PHP ?
Oui, il est possible d'intégrer des composants (distribués) Component Object Model ((D)COM) dans des scripts PHP fournis sous forme de framework.
101) Expliquez s'il est possible de partager une seule instance d'un Memcache entre plusieurs projets PHP ?
Oui, il est possible de partager une seule instance de Memcache entre plusieurs projets. Memcache est un espace de stockage de mémoire et vous pouvez exécuter Memcache sur un ou plusieurs serveurs. Vous pouvez également configurer votre client pour qu'il parle à un ensemble particulier d'instances. Ainsi, vous pouvez exécuter deux processus Memcache différents sur le même hôte et pourtant ils sont complètement indépendants. Sauf si vous avez partitionné vos données, il devient alors nécessaire de savoir à partir de quelle instance extraire ou insérer les données.
102) Expliquez comment mettre à jour Memcached lorsque vous apportez des modifications à PHP ?
Lorsque PHP change, vous pouvez mettre à jour Memcached en
- Vider le cache de manière proactive : Vider le cache lorsqu'une insertion ou une mise à jour est effectuée
- Réinitialisation du cache : C'est similaire à la première méthode, mais plutôt que de simplement supprimer les clés et d'attendre la prochaine demande de données pour actualiser le cache, réinitialisez les valeurs après l'insertion ou la mise à jour.
Ces questions d'entretien vous aideront également dans votre soutenance