Privaatsed meetodid OOP-s PHP-s
Mitte ainult omadused, vaid ka meetodid võivad olla privaatsed. Tavaliselt tehakse abimeetodid privaatseteks, et nad ei saaks kogemata väljastpoolt klassi kutsutud.
Vaatame näidet. Olgu meil järgmine klass:
<?php
class User {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function show() {
return $this->name;
}
}
?>
Teeme selles klassis privaatse meetodi, mis võtab parameetrina stringi ja teeb selle esimese sümboli suureks:
<?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);
}
}
?>
Kasutame oma abimeetodit teise meetodi sees:
<?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);
}
}
?>
Kontrollime. Loome oma klassi objekti:
<?php
$user = new User('john');
?>
Kutsume välja avaliku meetodi, mis kasutab abimeetodit:
<?php
echo $user->show();
?>
Tehke järgmises koodis abimeetod privaatseks:
<?php
class Employee {
public function __construct($name, $salary) {
$this->name = $name;
$this->salary = $salary;
}
public function getSalary() {
return $this->addSign($this->salary);
}
private function addSign($num) {
return $num . '€';
}
}
?>