Я использую API, который возвращает разные значения, и я хочу динамически сказать моему классу, чтобы он запускал функцию с тем же именем (так что мне не понадобится огромный switch
или if/else
беспорядок).Объявление и вызов функций объекта PHP с периодом по имени
- Как я могу объявить метод объекта
song.pause
? - Как использовать метод объекта
song.pause
? - Это может быть XY Problem, так есть лучший способ сделать это? Один из вариантов, о котором я думал, - всегда звонить
str_replace('.','_',$type)
и устанавливать функции без периодов. Мысли?
Пример:
<?php
class MyClass {
...
...
$type = "song.pause"; // This value is returned from another API I can't control
if (property_exists('MyClass', $type)) {
$success = $this->{$type}(); // ???
} else {
header("HTTP/1.1 400 Invalid type: $type);
exit;
}
public function 'song.pause'() { // obviously incorrect :)
???
}
Хорошо, понял, как много. Благодаря!Похоже, мне нужно будет проявить творческий подход. –
@ d -_- b см. Проходы. Я скоро буду обновляться. – BlitZ