Όνομα μεθόδου από μεταβλητή στην ΑΝΠ στην PHP
Παρόμοια με τα ονόματα των ιδιοτήτων σε μεταβλητή,
μπορούν να αποθηκευτούν και τα ονόματα μεθόδων. Ας
δούμε ένα παράδειγμα. Ας υποθέσουμε ότι έχουμε την
ακόλουθη κλάση User με getters για τις ιδιότητες:
<?php
class User
{
private $name;
private $surn;
public function __construct($name, $surn)
{
$this->name = $name;
$this->surn = $surn;
}
public function getName()
{
return $this->name;
}
public function getSurn()
{
return $this->surn;
}
}
?>
Ας δημιουργήσουμε ένα αντικείμενο αυτής της κλάσης:
<?php
$user = new User('john', 'smit');
?>
Ας υποθέσουμε ότι σε μια μεταβλητή αποθηκεύεται το όνομα μιας μεθόδου:
<?php
$method = 'getName';
?>
Ας καλέσουμε τη μέθοδο με όνομα από τη μεταβλητή:
<?php
echo $user->$method(); // θα εμφανίσει 'john'
?>
Δίνεται η ακόλουθη κλάση:
<?php
class Employee
{
private $name;
private $salary;
private $position;
public function __construct($name, $salary, $position)
{
$this->name = $name;
$this->salary = $salary;
$this->position = $position;
}
public function getName()
{
return $this->name;
}
public function getSalary()
{
return $this->salary;
}
public function getPosition()
{
return $this->position;
}
}
?>
Δίνεται ο ακόλουθος πίνακας:
<?php
$methods = [
'method1' => 'getName',
'method2' => 'getSalary',
'method3' => 'getPosition',
];
?>
Δημιουργήστε ένα αντικείμενο της κλάσης Employee,
και στη συνέχεια προσπελάστε τις ιδιότητές του
μέσω των στοιχείων του πίνακα.