Privata metoder i OOP i PHP
Privata kan inte bara vara egenskaper, utan även metoder. Vanligtvis görs hjälpmetoder privata så att de inte av misstag kan anropas utifrån klassen.
Låt oss titta på ett exempel. Anta att vi har följande klass:
<?php
class User {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function show() {
return $this->name;
}
}
?>
Låt oss skapa en privat metod i denna klass, som tar en sträng som parameter och gör dess första tecken till versal:
<?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);
}
}
?>
Låt oss använda vår hjälpmetod inuti en annan metod:
<?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);
}
}
?>
Låt oss testa. Skapa ett objekt av vår klass:
<?php
$user = new User('john');
?>
Anropa den publika metoden som använder hjälpmetoden:
<?php
echo $user->show();
?>
Gör hjälpmetoden privat i följande kod:
<?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 . '
;
}
}
?>