Download Exercices et solutions corrigées sur le langage PHP and more Exams Nursing in PDF only on Docsity!
ProServ - Questions With Correct Solutions
Que contiennent (principalement) les outils XAMP, WAMP ou MAMP? ✔ - - PHP
- Serveur web (Apache / nginx)
- Système de gestion de base de données Veuillez indiquer la balise ouvrante permettant d'ajouter du code PHP ✔ - --> à noter que si le document est full php, il n'est pas nécessaire de mettre la balise fermante Veuillez écrire le code PHP permettant d'initialiser une constante avec la valeur de Pi (3.1415) ✔ - A quoi reconnaît-on une variable en PHP? ✔ - Une variable en PHP commence toujours par le caractère $
$var1 = 14; $var2 = 14.25; --> pas besoin de typer Qu'est ce qu'une variable dynamique en PHP? ✔ - Une variable dynamique est une variable dont on peut construire dynamiquement le nom. // exemple $i = 1;
${"varDynamique".$i} = 5; // correspond à $varDynamique1 = 5; Qu'affichera le code suivant? $unBoolean = true; echo $unBoolean; ✔ - 1 Qu'affichera le code suivant? $unBoolean = false; echo $unBoolean; ✔ - rien Doit-on typer les variables en PHP? ✔ - Non, les variables en PHP ne doivent pas être typées. Comment détruit-on une variable en PHP? ✔ - A l'aide de la fonction unset(nomVariable); $tab = [1,2,3,4,5,7]; // Création d'un tableau //... unset($tab); // Destruction du tableau Quelles sont les deux manières de créer des chaînes de caractères? ✔
- en utilisant
- des doubles guillemets $chaine1 = "chaine";
- des guillemets simples $chaine2 = 'chaine'; Qu'affichera le code suivant : $variable1 = "En voilà une surprise"; echo "$variable1 : interessante"; ✔ - En voilà une surprise : interessante --> $variable1 a été remplacé par le contenu de la variable
- null --> tout le reste = true Peut-on convertir le contenu d'une chaîne en un entier? ✔ - Oui à l'aide du transtypage (aka le cast) : $chaine = '12'; $entier = (int) $chaine; // $entier vaudra 12
- ou à l'aide de la fonction settype(uneVariable); : $variable = '12'; settype($variable, "int"); var_dump($variable); // affichera int(12) Qu'est-ce que l'opérateur =&? ✔ - L'opérateur d'affectation par référence = & ... "met" une référence sur la variable $var1 = 5; $var2 = &$var1; // $var2 contient une référence à $var1 => 5 $var2++; // $var2 vaut 6 (mais $var1 aussi !) echo $var1, '
'; // Affiche 6 echo $var2; // Affiche 6 Qu'affichera l'exécution du code suivant : $texte = "Des petits trous, ". "des petits trous, ". "toujours des petits trous"; echo $texte; ✔ - Des petits trous, des petits trous, toujours des petits trous Qu'est-ce que l'opérateur <=> ✔ - vérifier si supérieur, égal ou inférieur --> retourne -1, 0 ou 1 ex : 5<=>6 --> -1 car 5 inférieur à 6 mais 5 <=>5 --> 0 car identiques A quoi sert l'opérateur ===? ✔ - permet de savoir si c'est égal et de même type
--> renvoie true ou false ex : 25 == '25' --> true 25 === '25' --> false (pas le même type) Que fait l'opérateur XOR? ✔ - Le XOR correspond à un ou exclusif. Il faut qu'un seul des deux opérandes soit vrai ( true ) Qu'affichera l'exécution du code suivant : echo 4 * 3 ** 2; ✔ - 4 fois (3 puissance 2) = 36 Soit l'instruction suivante : echo $a < $b? 'A est inférieur à B' : 'A est supérieur ou égal à B'; De quel opérateur s'agit-il? Que va faire ce code? ✔ - - c'est l'opérateur ternaire
- Elle signifie : Si le contenu de la variable $a est plus petit que celui de la variable $b affiche : A est inférieur à B sinon affiche : A est supérieur ou égal à B Pourquoi ce code : $baies = ['framboise', 'fraise', 'cassis', 'mûre']; foreach ($baies as $baie) { switch ($baie) { case "mûre": echo 'On passe par là'; echo '
'; case 'fraise': echo 'On passe par ici'; echo '
'; case "framboise": echo 'On passe';
Qu'affichera l'exécution du code suivant : '; } uneFonction($var1); echo '$var1 : ', $var1; ✔ - ça affichera $param : 6 $var1 : 6 --> $var1 est lié au paramètre avec le & Qu'est-ce qu'une fonction récursive? ✔ - C'est une fonction qui s'appelle elle même Qu'est ce qu'une fonction typée? ✔ - C'est une fonction dont les paramètres sont typés et dont on sait si elle retourne une valeur ou non function rendSomme(float $a, float $b) : float { return ($a + $b); } Quelle différence entre la méthode GET et POST? ✔ - GET :
- Quantité limité de donnée peut être envoyée, car envoyé via l'entête
- Pas sécurisée
- Paramètres restent dans l'historique du navigateur
- Seul ASCII caractères autorisés
- Moins sécurisé POST :
- ++grande quantité envoyée
- navigateur prévient l'utilisateur que les données devront être à nouveau soumises
- pas de restriction de caractères
- utilisé pour envoyer données sensibles Dans un formulaire une case à cocher est souvent liée à un label. Comment indique-t-on que le label "appartient" à la case à cocher? ✔
- En mettant un attribut id="un nom" dans le balise input
- En mettant un attribut for="un nom" dans le balise label ex :
Souhaitez-vous vous abonner à la newsletter?
Comment coche-t-on par défaut une case à cocher dans un formulaire? ✔ - En ajoutant l'attribut checked dans la balise input A quoi doit-on faire attention lors de case à cocher multiples ayant le même attribut name? ✔ - Il faut que l'attribut name soit un tableau! Quelle différence y-a-t'il entre un groupe de cases à cocher et un groupe de boutons radios? ✔ - - On peut cocher plusieurs cases à cocher
- On ne peut cocher qu'un seul bouton radio A quelles conditions le clic sur ce lien ci-dessous fonctionnera correctement? Envoi ✔ - Il est absolument nécessaire que les variables $prenom et $nom ne contiennent pas de simple guillemet ('). Sinon le lien ne fonctionnera pas. (Le contenu de l'attribut href se terminerai avant la fin de la balise a ) --> utiliser urlencode() pour éviter ce problème
Comment détermine-t-on la durée de vie d'un cookie? ✔ - via le 3e paramètre : datefin (!) timestamp exprimé en seconde setcookie("prenom","Dominique",time()+86400); Comment détruire un cookie? ✔ - Pour détruire un cookie, il faut définir une date de validité antérieure à la date actuelle en conservant la valeur utilisée lors de sa définition. --> setcookie("prenom","Dominique",time()-3600); Comment savoir si les cookies sont acceptés par le client? ✔ - Il faut écrire un cookie de test, recharger la page et voir si on arrive récupérer le cookie. Qu'est ce qu'une variable de session? ✔ - Une variable de session est une variable qui lorsqu'elle est définie dans une page d'un site, elle est accessible depuis toutes les autres pages du site (jusqu'à ce que l'utilisateur ferme le navigateur). Comment définit-on une variable de session? ✔ - - Il faut appeler la fonction session_start() au début du script
- Puis définir la/les variable(s) avec $_SESSION['nomVariable']=valeur; --> session_start(); $_SESSION['prenom']="Dominique"; Comment récupère-t-on la variable de session définie dans la question précédente dans un autre script? ✔ - - Il faut rappeler (!) la fonction session_start() au début du script (mais oui, c'est contre intuitif, mais c'est comme ça !)
- Puis récupérer la/les variable(s) avec $_SESSION['nomVariable'];
A quoi doit-on être attentif avec les variables de sessions? ✔ - Par défaut, le mécanisme de mise en place des variables de sessions, enregistre l'identifiant de la session dans un cookie. Si l'utilisateur désactive les cookies, l'identifiant de session ne pourra pas être sauvegardé! --> Autrement dit, les variables de sessions ne fonctionneront plus. Comment utiliser les variables de sessions lorsque le client a désactivé les cookies? ✔ - - transmettre l'identifiant à toutes les pages en utilisant les variable de session : --> SID sous la forme : PHPSESSID= uscbk53ua1div44kbvp8v5cnq
- nom de session : PHPSESSID
- Identifiant : aléatoire -> et faire la même chose pour toutes les pages Quelle est la syntaxe permettant de définir une classe en php? ✔ - class nomClasse { ... } Comment déclare-t-on un constructeur en php? ✔ - public function __construct(...) { } Comment accède-t-on à une propriété (d'instance) depuis une méthode de la classe? ✔ - Avec $this- >nomProprieteInstanceSansSigneDollar Que doit-on absolument faire dans le constructeur d'une classe qui hérite explicitement d'une autre? ✔ - Il faut créer un objet de la classe mère à la première ligne du constructeur :
de manière à pouvoir les réutiliser. Remarque : On ne peut pas instancier un trait! Comment utilise-t-on un trait? ✔ - La classe qui veut récupérer les propriétés et/ou méthodes d'un trait doit juste indiquer qu'elle veut l'utiliser avec la directive use. trait Compteur { public function incremente(){ ... } } classe Classe1{ use Compteur; ... { } Peut-on utiliser plusieurs traits dans une classe? ✔ - Oui, on peut utiliser autant de traits que nécessaire. --> class UneClasse { use Trait1, Trait2, Trait3; ... } En quoi consiste l'auto-chargement de classes ( autoload )? ✔ - permet d'inclure automatiquement les fichiers de classe d'un projet dans le code Comment est interprété un fichier php? ✔ - 1. Requête HTTP faite au serveur web
- Serveur web demande l'exécution du code à PHP
- PHP retourne le contenu HTML au serveur web
- Serveur retourne la réponse à travers une requête HTTP Est-ce que les variables sont sensibles à la casse? ✔ - OUI A quoi sert isset()? ✔ - Tester si une variable existe --> retourne booléen A quoi sert unsset()? ✔ - Permet de détruire une variable Que se passe-t-il si dans une int variable, je commence un chiffre par 0 (ex : $nombre = 015;)? ✔ - il sera compris comme une base octale et donc 015 sera interprété comme 13 en base décimale Comment faire pour afficher des doubles guillemets dans une chaine de caractères? ✔ - il faut utiliser un backslash ex : $chaine = "Les "fleurs" fanent" ; Qu'est-ce qu'un tableau associatif? ✔ - Un tableau dont on associe une chaine de caractères avec une valeur Quel est cet opérateur .= ✔ - concaténation et assignation dans une fonction, comment faire pour retourner plusieurs valeurs? ✔ - on retourne un tableau Que faut-il faire quand on teste si une clé a été trouvée dans un tableau? ✔ - Il faut vérifier avec === car la clé peut être nulle Que se passe-t-il si je unset un élément à un index dans un tableau, et qu'ensuite je rajoute un nouvel élément dans ce tableau?
Quelle différence entre private et protected? ✔ - - private : accès uniquement à l'intérieur de la classe elle-même
- protected : peut être accessobée dans les classes qui en héritent Si je redéfinis la méthode __toString, comment est-ce que je l'appelle dans le programme? ✔ - echo $objet c'est une méthode magique, il n'est pas nécessaire de l'appeler explicitement Pourquoi est-ce qu'il n'y a pas de constructeur dans un trait? ✔ - Parce qu'on ne peut pas instancier (faire new Trait) un trait où est stocké un cookie quand il n'y a pas de date d'expiration donnée? ✔ - il est stocké dans la mémoire vive de l'ordinateur, car il disparaît dès que le navigateur est fermé A quoi sert le logiciel Homebrew pour macOS? ✔ - Son but est de simplifier l'installation de programmes. Qu'est-ce que Homebrew? ✔ - Homebrew est un gestionnaire de paquets pour macOS gratuit et open-source. A quoi sert le logiciel Composer? ✔ - Il permet de déclarer et d'installer les bibliothèques (ensemble de classes) dont l'application web a besoin. A quoi sert le logiciel mailhog? ✔ - Il permet de tester efficacement les capacités d'envoi et de réception d'e-mail d'une application web. MailHog permet (entre autre) de simuler un serveur SMTP (Simple Mail Transfer Protocol).
A quoi sert la bibliothèque symfony/mailer? ✔ - symfony/mailer est une bibliothèque open source PHP permettant l'envoi simplifié d'e- mail. Comment installe-t-on la bibliothèque symfony/mailer pour pouvoir l'utiliser dans son application web? ✔ - il suffit de passer par le logiciel Composer et de taper la commande : composer require symfony/mailer --> ça va installer toutes les classes nécessaires dans le répertoire dans lequel ça a été lancé Que quoi a-t-on besoin pour pouvoir envoyer un e-mail? ✔ - 1. Il est nécessaire de pouvoir disposer d'un serveur SMTP (Simple Mail Transfer Protocol).
- Indiquer dans le code quel serveur SMTP utiliser (ex : $transport = Transport::fromDsn('smtp://localhost:1025');) Comment peut-on savoir si l'envoi d'un e-mail a fonctionné lorsqu'on utilise MailHog ✔ - il suffit d'aller sur l'URL localhost:8025 et on tombe sur l'interface utilisateur de Mailhog Qu'est-ce que PDO? ✔ - C'est une classe de PHP qui permet d'interagir avec des bases de données de manière sécurisée et abstraite. Pourquoi faut-il utiliser PDO? ✔ - PDO offre une interface unifiée pour travailler avec différentes bases de données, telles que MySQL, PostgreSQL, SQLite, et bien d'autres Quel est le désavantage avec PDO? ✔ - On peut discuter avec toutes les classes qui permettent la connexion à la base de données, mais on ne profite pas des spécificités de chacune de ces classes