Modificateurs d’accès Public, Private et Protected en PHP

Les modificateurs d’accès spécifient le niveau d’accès aux propriétés et méthodes d’une classe. Les modificateurs d’accès peuvent être public, private ou protected.
 
 

Pourquoi avons-nous besoin de modificateurs d’accès:

Les modificateurs d’accès sont utilisés comme composant clé pour l’encapsulation et le masquage de données. En utilisant l’un des spécificateurs d’accès mentionnés ci-dessus, c’est-à-dire public, private ou protected, vous pouvez masquer ou afficher les éléments internes de votre classe depuis l’extérieur.
 

Le modificateur d’accès private:

Les membres d’une classe déclarés « Private » ne sont accessibles que par les fonctions de la classe. Ils ne sont pas autorisés à être accédés directement par un objet ou une fonction en dehors de la classe. Seules les fonctions membres sont autorisées à accéder aux données privées d’une classe. Voir l’exemple ci-dessous:

<?php  
	class Person {  
		private $firstName;
		
		public function setFirstName($firstName) {  
			$this->firstName = $firstName;  
		}  
		  
		public function getFirstName() {  
			return $this->firstName;  
		}  
	}  
	  
	$p = new Person();  
	$p->setFirstName("Jean");  
	echo $p->firstName;
	//error, $firstNamee n'est pas accessible en dehors de la classe

	echo $p->getFirstName(); 
	// cela fonctionne, car les méthodes de la classe ont accès public
?>

 
 

Le modificateur d’accès public:

Tous les membres d’une classe déclarés « public » seront accessible depuis n’importe où. Les données membres et les fonctions membres déclarées « public » sont également accessibles aux autres classes. Les membres publics d’une classe sont accessibles de n’importe où dans le programme en utilisant l’opérateur d’accès direct aux membres (->) avec l’objet de cette classe.

<?php  
	class Person {  
		public $firstName;
		
		public function setFirstName($firstName) {  
			$this->firstName = $firstName;  
		}  
		  
		public function getFirstName() {  
			return $this->firstName;  
		}  
	}  
	  
	$p = new Person();  
	$p->setFirstName("Jean");  
	echo $p->firstName;//Cela fonctionnera sans erreur
	$p->firstName = "Thomas"; //Cela fonctionnera aussi
?>

 
 

Le modificateur d’accès protected:

Le modificateur d’accès « Protected » est similaire au modificateur d’accès « Private ». La différence est que les membres de la classe déclarés comme « Protected » sont inaccessibles en dehors de la classe, mais ils peuvent être accessibles par n’importe quelle sous-classe (classe fille) de cette classe.

<?php  
	class Person {  
		protected $firstName;
		
		public function setFirstName($firstName) {  
			$this->firstName = $firstName;  
		}  
		  
		public function getFirstName() {  
			return $this->firstName;  
		}  
	} 
	  
	class Professor extends Person {
	  
		private $course;  
		  
		public function setInfo($firstName, $course) {
			//firstName est accessible depuis une classe fille
			$this->firstName = $firstName; 
			$this->course = $course;  
		}  
	}
	  
	$p = new Professor();  
	$p->setInfo("Bob","Math"); 
	//firstName n'est pas accessible depuis l'extérieur	
	echo $p->firstName;
?>

En PHP5, les modificateurs d’accès sont publics par défaut. Cela signifie que si vous ne spécifiez pas le modificateur d’accès pour un membre de données ou une méthode, le modificateur d’accès « public » sera appliqué par défaut.
QCM sur PHP

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *