ВНИМАНИЕ: Запись на курсы по HTML, CSS, JavaScript, PHP, Python, React, Vue, Laravel и другим фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
⊗ppOpCgMNV 42 of 107 menu
Вступайте в телеграмм-канал сайта code.mu: новинки, статьи, интервью, задачи, бесплатные курсы и тренинги. Жми для вступления:)

Имя метода из переменной в ООП в PHP

По аналогии с названиями свойств в переменной также можно хранить и имена методов. Давайте посмотрим на примере. Пусть у нас дан вот такой класс User с геттерами свойств:

<?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, а затем обратитесь к его свойствам через элементы массива.

byenru