Ιδιωτικές Μέθοδοι στην ΑΝΠ στην PHP
Όχι μόνο οι ιδιότητες μπορούν να είναι ιδιωτικές, αλλά και οι μέθοδοι. Συνήθως οι ιδιωτικές μέθοδοι είναι βοηθητικές μέθοδοι, έτσι ώστε να μην μπορούν κατά λάθος να κληθούν από έξω από την κλάση.
Ας δούμε ένα παράδειγμα. Ας υποθέσουμε ότι έχουμε την ακόλουθη κλάση:
<?php
class User {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function show() {
return $this->name;
}
}
?>
Ας φτιάξουμε σε αυτήν την κλάση μια ιδιωτική μέθοδο, η οποία θα παίρνει ως παράμετρο μια συμβολοσειρά και θα κάνει κεφαλαίο το πρώτο της γράμμα:
<?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);
}
}
?>
Ας χρησιμοποιήσουμε τη βοηθητική μας μέθοδο μέσα σε μια άλλη μέθοδο:
<?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);
}
}
?>
Ας ελέγξουμε. Ας δημιουργήσουμε ένα αντικείμενο της κλάσης μας:
<?php
$user = new User('john');
?>
Ας καλέσουμε τη δημόσια μέθοδο, που χρησιμοποιεί τη βοηθητική:
<?php
echo $user->show();
?>
Στον ακόλουθο κώδικα, κάντε τη βοηθητική μέθοδο ιδιωτική:
<?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 . '€';
}
}
?>