Méthodes privées en POO en PHP
Non seulement les propriétés peuvent être privées, mais aussi les méthodes. Généralement, on rend privées les méthodes auxiliaires, afin qu'elles ne puissent pas être appelées accidentellement de l'extérieur de la classe.
Regardons un exemple. Supposons que nous ayons la classe suivante :
<?php
class User {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function show() {
return $this->name;
}
}
?>
Créons dans cette classe une méthode privée, qui prendra une chaîne en paramètre et mettra en majuscule son premier caractère :
<?php
class User {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function show() {
return $this->name;
}
private function cape($str) {
return mb_strtoupper(mb_substr($str, 0, 1)) . mb_substr($str, 1);
}
}
?>
Utilisons notre méthode auxiliaire à l'intérieur d'une autre méthode :
<?php
class User {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function show() {
return $this->cape($this->name);
}
private function cape($str) {
return mb_strtoupper(mb_substr($str, 0, 1)) . mb_substr($str, 1);
}
}
?>
Vérifions. Créons un objet de notre classe :
<?php
$user = new User('john');
?>
Appelons la méthode publique, qui utilise la méthode auxiliaire :
<?php
echo $user->show();
?>
Dans le code suivant, rendez la méthode auxiliaire privée :
<?php
class Employee {
public function __construct($name, $salary) {
$this->name = $name;
$this->salary = $salary;
}
public function getSalary() {
return $this->addSign($this->salary);
}
public function addSign($num) {
return $num . '
;
}
}
?>