Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<?php
	require("Personne.php");
	require("Footballeur.php");
 
	$objet2 = new Footballeur("Messi", "Lionel", "Barcelone");
	echo $objet2->getNomPrenom();
	echo "<br /><br />";
	$objet2->setNom("Zidane");
	echo $objet2->getNomPrenom();
?>
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
 
<?php
class Personne
{
	private $nom;
	private $prenom;
 
	public function Personne($a, $b)
	{
		$this->nom = $a;
		$this->prenom = $b;
	}
 
	public function getNomPrenom()
	{
		return $this->nom." - ".$this->prenom;
	}
 
}
?>
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 Footballeur extends Personne
{
 
	private $club;
 
	public function Footballeur($a, $b, $c)
	{
		$this->Personne($a,$b); // constructeur de la classe parente
		$this->club = $c; // this correspond à l’ objet qui appelle la fonction 
	}
 
	public function getClub()
	{
 
		return $this->club;
	}
 
	public function setNom($a)
	{
		$this->nom = $a;
	}
 
}
?>
Quand je mets les champs de la classe Personne en private, le mutateur setNom ne fonctionne pas, tandis que quand je mets ces champs en public le mutateur setNom fonctionne nickel, pourquoi cela?

merci d 'avance pour vos réponses?