1. Comment appelle-t-on une variable dans une classe ? Et une fonction ?
Une variable est une méthode et une fonction est un attribut
Une variable est un attribut et une fonction est une méthode
Quelle est la différence entre classe et objet ?
Une classe est un ensemble de fonctions et variables et un objet est une instance
de cette classe
Un objet est un ensemble de fonctions et variables et une classe est une instance
de cet objet
Par quel mot-clé déclare-t-on une classe ?
classe
class
object
objet
Qu'est-ce qui ne va pas dans ce code ?
Code : PHP - Sélectionner
1 <?php
2 class MaClasse
3 {
4 private $texte;
5
6 public function changerTexte ($nouveauTexte)
7 {
8 $this->texte = $nouveauTexte;
9 }
10
11 public function afficherTexte()
12 {
13 echo $this->$texte;
14 }
15 }
16 ?>
Il manque un $ juste avant "texte" à la ligne 8
Il y a un $ en trop juste avant "texte" à la ligne 13
2. Tout est bien
Ce code est correct, mais ne doit jamais être créé. Pourquoi ?
Code : PHP - Sélectionner
1 <?php
2 class MaClasse
3 {
4 public $attribut = 'Hello world !';
5
6 public function afficherAttribut()
7 {
8 echo $this->attribut;
9 }
10 }
11 ?>
L'attribut est public, il devrait être privé
La méthode est publique, elle devrait être privée
L'attribut et la méthode sont publiques, ils devraient être privés
Tout semble bon
Le code suivant est-il bon ?
Code : PHP - Sélectionner
1 <?php
2 class MaClasse
3 {
4 private $attribut;
5
6 public function changerAttribut (int $valeur)
7 {
8 $this->attribut = $valeur;
9 }
10 }
11 ?>
Oui
Non
J'ai une erreur fatale, pourquoi ?
Code : PHP - Sélectionner
1 <?php
3. 2 class MaClasse
3 {
4 private $attribut;
5
6 public function __construct()
7 {
8 $this->attribut = 'Hello world !';
9 }
10 }
11
12 $objet = new MaClasse();
13
14 $objet->attribut = 'Bonjour tout le monde !';
15 ?>
Ligne 8 : tu accèdes à un attribut privé depuis l'intérieur de la classe
Ligne 14 : tu accèdes à un attribut privé depuis l'extérieur de l'objet créé
Laquelle de ces déclarations de constantes est correcte ?
constant $MA_CONSTANTE = 1;
const $MA_CONSTANTE = 1;
constant MA_CONSTANTE = 1;
const MA_CONSTANTE = 1;
Quelle est l'erreur dans ce code ?
Code : PHP - Sélectionner
1 <?php
2 class MaClasse
3 {
4 public function methode()
5 {
6 echo 'Hello world !';
7 }
8 }
9
10 MaClasse::methode();
11 ?>
4. Il n'y a pas d'attribut dans la classe
La méthode "methode" n'a pas été déclarée avec le mot-clé "static"
Il n'y en a pas
Une autre erreur s'est glissée dans ce code légèrement modifié non ?
Code : PHP - Sélectionner
1 <?php
2 class MaClasse
3 {
4 private static $texte;
5
6 public function __construct ($texte)
7 {
8 self::texte = $texte;
9 }
10
11 public static function afficherTexte()
12 {
13 echo self::texte;
14 }
15 }
16 ?>
Ligne 8 et 13 : il faut utiliser $this-> et pas self::
Lignes 8 et 13 : il manque un $ avant le nom de l'attribut
Non, tout est correct
Qu'affichera le code suivant à l'écran ?
Code : PHP - Sélectionner
1 <?php
2 class MaClasse
3 {
4 private $attribut = 'Hello';
5
6 public function getAttribut()
7 {
8 return $this->attribut;
9 }
10
11 public function setAttribut ($valeur)
5. 12 {
13 $this->attribut = $valeur;
14 }
15 }
16
17 $a = new MaClasse;
18 $b = $a;
19 $c = $b;
20
21 $c->setAttribut ('Salut');
22
23 echo $a->getAttribut();
24 ?>
"Hello"
"Salut"
Rien
Quel(s) opérateur(s) de comparaison vérifie(nt) si les deux objets comparés sont des instances de la
même classe ?
L'opérateur ==
L'opérateur ===
Les deux
Quels sont les types d'attributs que ce code affichera ?
Code : PHP - Sélectionner
1 <?php
2 class Mere
3 {
4 public $attributPublic = 'Attribut public';
5 protected $attributProtege = 'Attribut protégé';
6 private $attributPrive = 'Attribut privé';
7
8 public function listeAttributs()
9 {
10 foreach ($this as $valeur)
11 echo $valeur . '<br />';
12 }
13 }
14
15 class Enfant extends Mere
16 {
17
18 }
19
6. 20 $objet = new Enfant;
21 $objet->listeAttributs();
22 ?>
Les attributs publics
Les attributs publics et protégés
Les attributs publics, protégés et privés
Qu'est-ce qu'une interface ?
Une classe complètement abstraite
Une application
Ce code est-il fonctionnel ?
Code : PHP - Sélectionner
1 <?php
2 interface A
3 {
4 public function test();
5 }
6
7 class A implements A
8 {
9 public function test()
10 {
11
12 }
13 }
14 ?>
Oui
Non
Et celui-ci, fonctionnera-t-il ?
Code : PHP - Sélectionner
1 <?php
2 interface iA
3 {
4 protected function test1();
7. 5 abstract public function test2();
6 }
7
8 class A implements iA
9 {
10 protected function test1()
11 {
12
13 }
14
15 abstract public function test2();
16 }
17 ?>
Oui
Non, l'interface comporte une méthode protégée
Non, l'interface comporte une méthode abstraite
Non, pour les deux raisons ci-dessus
Une interface héritant d'une autre peut-elle écraser ses méthodes ? Et ses constantes ?
Oui
Elle ne peut écraser les méthodes
Elle ne peut écraser les constantes
Elle ne peut écraser ni les méthodes, ni les constantes
Quelle interface hérite de Iterator ?
SeekableIterator
ArrayAccess
Countable
Quelle est la classe de base pour créer une exception ?
Exception
ErrorException
Quel type d'erreur est lancé lorsqu'on n'intercepte pas une exception ?
Une erreur d'analyse
8. Une erreur fatale
Une alerte
Une notice
Sur les trois paramètres demandés par le constructeur de la classe Exception, combien sont
obligatoires ?
aucun
1
2
3
Quelles sont les deux méthodes que je peux réécrire si j'hérite de la classe Exception ?
getMessage() et getCode()
getFile() et getLine()
__construct() et __toString()
Quelle fonction permet d'enregistrer une autre fonction en callback qui sera appelée à chaque fois
qu'une telle erreur est rencontrée ?
set_error_function
set_error_callback
set_error_handler
Si j'exécute ce code, qu'est-ce qui s'affichera à l'écran ?
Code : PHP - Sélectionner
1 <?php
2 function additionner ($a, $b)
3 {
4 if (!is_numeric ($a) OR !is_numeric ($b))
5 throw new Exception ('Les deux paramètres doivent être des nombres');
6
7 return $a + $b;
8 }
9
10 try // On va essayer d'effectuer les instructions situées dans ce bloc
11 {
12 echo additionner (12, 3);
13 echo additionner ('azerty', 54);
14 echo additionner (4, 8);
15 }
16
9. 17 catch (Exception $e) // On va attraper les exceptions "Exception" s'il y en a une qui est levée
18 {
19 echo 'Exception lancée. Message : ' . $e->getMessage();
20 }
21 ?>
Exception lancée. Message : Les deux paramètres doivent être des nombres
15Exception lancée. Message : Les deux paramètres doivent être des nombres
15Exception lancée. Message : Les deux paramètres doivent être des nombres12
Quelle classe nous permettra d'obtenir des informations concernant d'autres classes ?
AboutClass
ReflectionClass
ClassReflection
Quelle méthode de la classe évoquée en première question permet de savoir si notre classe est la
fille de telle autre classe ?
isChild()
isSubclass()
isSubclassOf()
Quelle classe nous permet d'obtenir des informations à propos des attributs d'une autre classe ?
ReflectionAttribute
ReflectionProperty
Est-il possible, grâce à cette classe, de pouvoir modifier les attributs privés de nos objets ?
Oui
Non
Quelle classe permet d'obtenir des informations à propos des méthodes de nos classes ?
ReflectionMethod
ReflectionFunction
Que m'affichera ce code ?
10. Code : PHP - Sélectionner
1 <?php
2 class MaClasse
3 {
4 public function MaClasse()
5 {
6 echo 'Hello world !';
7 }
8 }
9
10 $methode = new ReflectionMethod('MaClasse', 'MaClasse');
11
12 if ($methode->isConstructor())
13 echo 'Constructeur';
14 else
15 echo 'Non constructeur';
16 ?>
« Constructeur »
« Non constructeur »
Le code plantera
Que vérifie l'opérateur instanceof ?
Que tel objet instancie telle classe
Que tel objet instancie une classe fille de telle classe
Que tel objet implémente telle interface
Que tel objet implémente une interface fille de telle interface
Tous ces points
Qu'est-ce qui s'affichera à l'écran lors de l'exécution de ce code ?
Code : PHP - Sélectionner
1 <?php
2 class A { }
3 class B { }
4
5 $a = new A;
6
7 if ($a instanceof 'A')
11. 8 echo 'Vrai';
9 else
10 echo 'Faux';
11 ?>
Vrai
Faux
Une erreur
Qu'est-ce qui s'affichera à l'écran lors de l'exécution de ce code ?
Code : PHP - Sélectionner
1 <?php
2 interface iA { }
3 interface iB extends iA { }
4
5 class A implements iB { }
6 class B extends A { }
7
8 $monObjet = new B;
9
10 if ($monObjet instanceof iA)
11 echo 'Vrai';
12 else
13 echo 'Faux';
14 ?>
Vrai
Faux
Une erreur
Une fois qu'une classe a été définie, combien est-il possible de créer d'objets basés sur cette classe
?
0
1
2
Une infinité
Qu'est-ce qu'on ne trouve pas à l'intérieur d'une classe ?
12. Des variables
Des fichiers
Des fonctions
Lequel de ces éléments correspond à un objet ?
Code : PHP - Sélectionner
1 <?php
2 $jerry = new Souris();
3 ?>
$jerry
new
Souris
Laquelle de ces fonctions est une fonction dite "magique" ?
--get
__destruct
./construct
Quand est appelé le constructeur d'une classe ?
Lorsqu'on crée un nouvel objet
Lorsqu'on modifie un objet
Lorsqu'on supprime un objet
Laquelle de ces phrases ne respecte pas le principe d'encapsulation ?
Certaines fonctions membres sont privées ou protégées
Toutes les variables membres sont protégées
Certaines variables membres sont publiques
Laquelle de ces phrases correspondrait vraiment à un héritage ?
Table hérite de Meuble
Meuble hérite de Tabouret
Chaise hérite de Table