PHP Flashcards

(36 cards)

1
Q

Que signifie PHP ?

A

PHP signifie PHP Hypertext Preprocessor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quelle balise ouvre un fichier PHP ?

A

La balise <?php

IMPORTANT: ne jamais fermer cette balise !

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Comment rédige-t-on un commentaire en PHP ?

A

// commentaire sur une ligne

/*
* commentaire sur
* plusieurs lignes
*/

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Comment déclare-t-on une variable en PHP ?

A

$myVariable = 1;

Le nom des variables est écrit en camelCase.
IMPORTANT : PHP est un langage non-typé.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quels sont les types possibles en PHP ?

A
  • entier $int = 5;
  • réel $int = 2.1;
  • chaine de caractère $string = “hello; ou $string = ‘hello’;
  • booléen $bool = true;
  • tableau $array = [1, 2, 3]
  • objet $myPage = new HtmlPage(“home”)
  • énumération $myEnumValue = Status::OPENING
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Comment modifie-t-on le type d’une variable ?

A

On utilise la cast.

$b = (int) 12.5

ATTENTION : Les résultats peuvent être incertains

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Comment déclarer un constante en PHP ?

A

const MY_CONSTANT = 12;

ATTENTION = il n’y a pas de $ pour une constante.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Expliquer le principe de référence en PHP.

A

La référence permet de passer des variables par références et non copie.

Dans les fonctions, par défaut :
- les types natifs sont passés par copie (int, string, …)
- les objets sont passés par référence

$c = &$a

IMPORTANT : Les références sont à double sens. Si l’une est modifiée, l’autre aussi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Quelle est la différence entre les double quot (“ “) et les simple quot (‘ ‘) ?

A

Pour les chaîne de caractères, les double quot permettent de réaliser de l’interpolation contrairement aux simples quot.

$string = “Bob”
$result = “Salut $string” // Salut Bob
$result = ‘Salut $string’ // Salut $string

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Quelle syntaxe utiliser pour intégrer une chaîne multiligne dans le fichier PHP ?

A

On utilise la syntaxe heredoc (ou nowdoc).

$html = «< IDENTIFIANT
<DOCTYPE!>
{$myVar}
IDENTIFIANT;

‘IDENTIFIANT’ en nowdoc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Quelle commande permet d’envoyer du contenu au navigateur ?

A

La commande echo.

echo “Coucou”;
echo $string;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Quelle syntaxe utiliser pour la concaténation de chaînes/variables ?

A

On utilise le . ou l’opération raccourcie .=

$nb = 5*2;
$label = “Vous avez “ . $nb . “ pommes.”;
echo $label // Vous avez 10 pommes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Quels sont les opérateurs arithmétiques en PHP ?

A

+ addition
- soustraction
* multiplication
/ division
% modulo (reste de la division)
** exposant (ex: $a**$b)
++ incrémentation
– décrémentation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quels sont les opérateurs de comparaison ?

A

< inférieur à
> supérieur à
<= inférieur ou égale à
>= supérieur ou égale à

== égalité
!= différence

=== égalité si valeur et type identique
!== différence si valeur et type différent

IMPORTANT : en PHP ont privilégie le === !

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Quels sont les opérateurs de logique ?

A

&& et
|| ou
! non
xou l’un ou l’autre mais pas les deux

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Quelle est la syntaxe pour une fonction ternaire ?

A

$when = $hour <= 12 ? “matin” : “soir”;

17
Q

Quelle est la syntaxe pour la boucle Si-Sinon-Alors ?

A

if ( condition qui renvoi TRUE ou FALSE) {
//bloc exécution
} else if (condition) {
//bloc exécution
} else {
// bloc exécution
}

IMPORTANT : en général, on évite d’utiliser le else.

18
Q

Quelle est la syntaxe pour la boucle Tant que ?

A

while (condition) {
// bloc exécution
}

do {
// bloc exécution
} while (condition)

IMPORTANT : Le bloc do-while est toujours exécuter au moins une fois.

19
Q

Quelle est la syntaxe de la boucle Pour ?

A

for ( $i = 0 ; $i < 10 ; $i++) {
// bloc exécution
}

20
Q

Quelle est la syntaxe pour la boucle Switch ?

A

switch ($expression) {
case “a” : ……..;
case “b” :
case “c” : ………; break;
default : ……….;
}

21
Q

Quelle est la syntaxe pour la boucle match ?

A

match ($test) {
$cond => “foo”,
$cond1, $cond2 => “bar”,
default => “baz”,
}

22
Q

Quelle est la syntaxe de la boucle Foreach qui parcourt un tableau ?

A

foreach ($tab as $val) {
echo $val
}

ou pour un tableau associatif
foreach ($tab as $index => $val) {
echo $index . “ - “ . $val
}

23
Q

A quoi correspond un tableau en PHP et comment le déclare-t-on ?

A

Les tableaux sont des structures regroupant un ensemble de valeurs :

  • tableau unidimensionnel (indéxé)
    $fruits = [“Salade”, “Tomate”, “Oignon”];
    echo $fruits[0]; // “Salade”
  • tableau unidimensionnel (associatif)
    $user = [
    “firstname” => “John”,
    “lastname” => “Doe”,
    “premium” => true,
    ];
    echo $user[‘lastname’]; // “Doe”
  • tableau multidimensionnel
    $fruits = [
    [“Salade”, 1.90],
    [“Tomate”, 2.75],
    [“Oignon”, 1]
    ];
    echo $fruits[1][1]; // 2.75

$tab = [ ] // déclaration vide
$tab[ ] = “foo” // ajout au prochain indice dispo
$tab[“baz”] = “bar” // ajout de “bar” à la clé “baz”

24
Q

Comment déclare-t-on une fonction en PHP ?

A

public function isEven(int ?$number = 1) : bool {
return $number % 2 === 0;
}

echo isEven(7); // false
echo isEven(8); // true

  • $number paramètre
  • : bool type de retour
  • ? + =1 paramètre optionnel avec valeur par défaut
  • 7 et 8 arguments (valeurs transmises à la fonction)

IMPORTANT : Les noms des fonctions sont en camelCase.

25
Comment inclure le contenu d'un fichier PHP dans un autre ?
// Si fichier à inclure non trouvé => warning (script continu son exécution) include 'file.php' ; // Comme `include` + ne réinclut pas un fichier déja inclus auparavant include_once('file.php'); // Si fichier à inclure non trouvé => erreur (script arrêté) require('file.php'); // Comme `require` + ne réinclut pas un fichier déja inclus auparavant require_once 'file.php' ;
26
Quelles sont les 2 principales méthodes utilisées par PHP pour une requête/réponse HTTP ?
- Méthode GET : transmet des informations au serveur pour récupérer des ressources. Les paramètres GET sont situés dans l'URL. ex: https://google?search=php&page=2 Les paramètres GET ne sont pas obligatoires. On les récupère en PHP grâce à la variable superglobale $_GET["param1"]. - Méthode POST : transmet des informations au serveur pour traitement. Les variables POST sont dans le corps de la requête. Ils peuvent être encodés. Les paramètres POST sont obligatoires ! On les récupère en PHP grâce à la variable superglobale $_POST["param1"].
27
Quelle est la syntaxe pour se connecter à une base de données ?
try { /* Paramètre 1 : chaîne de connexion Paramètre 2 : nom de l'utilisateur Paramètre 3 : mot de passe utilisateur */ $db = new PDO( 'mysql:host=localhost;dbname=nom_bdd;charset=utf8;port=3307', 'root', '' ); } catch (PDOException $e) { die('Erreur : ' . $e->getMessage()); }
28
Comment récupère-t-on des données de la base de données ?
$db = new PDO(...); $query = $db->query("SELECT ..."); // Récupère plusieurs résultats $articles = $query->fetchAll(); // Récupère un seul résultat $article = $query->fetch();
29
Comment modifie-t-on des données dans la base de données (ajout/modification/suppression) ?
$db = new PDO(...); $query = $db->exec("INSERT INTO ..."); ATTENTION : Si la requête est dynamique, utiliser une requête préparée pour se prémunir des injection SQL. $query = $pdo->prepare("DELETE FROM articles WHERE id = :id"); $query->bindParam(':id', $id, PDO::PARAM_INT); $query->execute();
30
Qu'est-ce qu'une classe PHP et comment la déclare-t-on ?
Une classe PHP est une représentation abstraite d'un élément partageant des caractéristiques communes. class Character { // Attributs private int $id; private string $pseudo; private int $xp; const XP_MAX = 1000; // Méthodes // Constructeur public function __construct( int $id, string $pseudo, int $xp ) { $this->id = $id; $this->pseudo = $pseudo; $this->xp = $xp; } // Getters (accesseurs) public function getId(): int { return $this->id; } ... // Setters (mutateurs) public function setPseudo(string $pseudo): void { $this->pseudo = $pseudo; } ... // Méthode perso public function infos(): string { return "Je suis " . $this->pseudo . " et j'ai " . $this->xp . "/" . self::XP_MAX . " points d'expérience."; } } IMPORTANT : Les noms des classes sont écrites en PascaleCase.
31
A quoi sert le constructeur dans une classe PHP ?
Il détermine comment initialiser une instance en indiquant les valeurs obligatoires. public function __construct( int $id, string $pseudo, int $xp ) { $this->id = $id; $this->pseudo = $pseudo; $this->xp = $xp; } On créer donc une instance de cette façon : $myCharacter = new Character (1, "Toto", 500);
32
Quelle est la différence entre $this et self dans une classe PHP ?
$this fait référence à l'objet courant $this->xp = $xp; self fait référence à la classe courante self::XP_MAX
33
Comment créer un objet PHP ?
On créer un objet à partir d'une classe, c'est une instanciation. Cela revient à explicitement faire appel à la fonction __construct. $perso1 = new Character(1, "Toto", 450); // Accès à un attribut public echo "Je suis " . $perso1->pseudo; // Appel d'une méthode public echo "Je suis " . $perso1->getPseudo(); echo "J'ai " . $perso1->getXp() . "/" . Character::XP_MAX . " XP";
34
Quelles sont les 3 visibilités possibles en PHP ?
- private : accessible uniquement depuis la classe - public : accessible n'importe où - protected : comme private + accessible depuis une classe fille
35
Qu'est-ce qu'une classe enfant et parent ?
Une classe parente est un modèle commun partagé par plusieurs autres classes. abstract class Character {...} IMPORTANT : une classe abstract ne peut jamais être instanciée. Une classe enfant hérite des attribut d'une classe parente. class Wizard extends Character { private int $magicPower; public function __construct( int $id, string $pseudo, int $xp, int $magicPower ) { parent::__construct($id, $pseudo, $xp); $this->magicPower = $magicPower; } }
36
Qu'est-ce qu'un attribut/méthode static ?
Cela permet d'accéder à l'attribut ou à la variable sans avoir besoin d'instancier la classe. public static int $counter = 0; - self::$counter pour accéder à l'élément static depuis la classe - NomClasse::$counter pour accéder à l'élément static depuis un objet