Metode private în OOP în PHP
Nu doar proprietățile pot fi private, ci și metodele. De obicei, metodele private sunt făcute auxiliare, astfel încât să nu poată fi apelate accidental din exteriorul clasei.
Să vedem un exemplu. Să presupunem că avem următoarea clasă:
<?php
class User {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function show() {
return $this->name;
}
}
?>
Să facem în această clasă o metodă privată, care va lua ca parametru un șir de caractere și va face majusculă prima literă a acestuia:
<?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);
}
}
?>
Să folosim metoda noastră auxiliară în interiorul altei metode:
<?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);
}
}
?>
Să testăm. Să creăm un obiect al clasei noastre:
<?php
$user = new User('john');
?>
Să apelăm metoda publică, care folosește metoda auxiliară:
<?php
echo $user->show();
?>
În următorul cod, faceți metoda auxiliară privată:
<?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 . '
;
}
}
?>