Можно ли сделать что-то подобное в php?
$ this-> getUser $ number ();
Я не могу найти, есть ли какой-нибудь синтаксис, чтобы это стало возможным.
Отношении
5 ответов
Да, есть:
$this->{"getUser".$number}();
Конечно, вы можете использовать тот же синтаксис вне метода:
$obj = new Something();
$obj->{"getUser".$number}();
Тем не менее, такой код плохо пахнет, и его следует избегать. Например, лучше заставить метод getUser
принимать аргумент и вызывать его следующим образом:
$this->getUser($number);
Таким образом, сайт вызова остается "нормальным", в то время как реализация getUser
может использовать $number
как, например, индекс в массив, а также добиться большей ясности.
Это называется ООП-программированием, оно используется, скорее всего, в любой большой системе. Он также часто используется в приложении MVC. Подробнее о программировании ООП читайте здесь; http://www.php.net//manual/en/language.oop5 .php
Это выражение также можно использовать следующим образом;
$this->$name
Или даже дальше;
$this->name =& $name
$this->name = $${val}
Невозможно использовать символ $
в качестве имени функции. Но с другой стороны $this->getUserNumber();
вы можете использовать внутри некоторого класса.
Вы также можете сделать это как
$number = "10";
$func = "getUser".$number ;
$this->$func();
Он вызовет некоторую функцию с именем
getUser10 ();
Да, ты можешь это сделать:
$methodName = 'getUser' . $number;
$this->$methodName();
Похожие вопросы
Связанные вопросы
Новые вопросы
php
PHP — это широко используемый язык сценариев общего назначения с открытым исходным кодом, мультипарадигмальный, динамически типизированный и интерпретируемый, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.