Bonjour,
Je tombe sur un cas qui me laisse perplexe.
A partir d'un exemple tiré de php.net (http://www.php.net/manual/fr/languag...visibility.php), je n'arrive pas à vérifier ce commentaire :
Cela me paraît logique."On peut redéclarer les éléments publics ou protégés, mais pas ceux privés".
Et pourtant...
Cet exemple affiche "Private 2" alors que je me serais attendu à une erreur à la ligne 15 (redéclaration d'un attribut privé) et à la ligne 19 (appel à un attribut privé).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <?php class MyClass { private $private = 'Private'; function printHello() { echo $this->private; } } class MyClass2 extends MyClass { // On peut redéclarer les éléments publics ou protégés, mais pas ceux privés private $private = 'Private 2'; function printHello() { echo $this->private; } } $obj2 = new MyClass2(); $obj2->printHello(); ?>
Quelqu'un aurait une idée du pourquoi du comment ?
Merci de votre aide,
Sly DeMusli
Partager