Métodos privados em POO no PHP
Não apenas propriedades, mas também métodos podem ser privados. Normalmente, métodos auxiliares são tornados privados para evitar que sejam acidentalmente chamados de fora da classe.
Vamos ver um exemplo. Suponha que temos a seguinte classe:
<?php
class User {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function show() {
return $this->name;
}
}
?>
Vamos criar um método privado nesta classe, que receberá uma string como parâmetro e tornará seu primeiro caractere maiúsculo:
<?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);
}
}
?>
Vamos utilizar nosso método auxiliar dentro de outro método:
<?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);
}
}
?>
Vamos testar. Vamos criar um objeto da nossa classe:
<?php
$user = new User('john');
?>
Vamos chamar o método público, que utiliza o método auxiliar:
<?php
echo $user->show();
?>
No código a seguir, torne o método auxiliar privado:
<?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 . '
;
}
}
?>