Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 1
Регистрация: 05.12.2017
Сообщений: 16
1

Почему это так работает или я что-то не догоняю?

27.10.2018, 16:25. Просмотров 878. Ответов 1
Метки нет (Все метки)


Вот есть у меня скрипт, который обрабатывает запросы по ajax. Приходит запрос q в формате: q['name'] - имя класса, q['method'] - метод, q['params'] - массив с параметрами.

Если я пишу так:

PHP
1
echo $_POST['q']['name']::$_POST['q']['method']($_POST['q']['params']);
То вылетает ошибка:
HTML5
1
2
3
4
5
<br />
<b>Fatal error</b>:  Uncaught Error: Access to undeclared static property: params::$_POST in C:\xampp\htdocs\he\router.php:7
Stack trace:
#0 {main}
  thrown in <b>C:\xampp\htdocs\he\router.php</b> on line <b>7</b><br />
А если написать вот так:

PHP
1
2
3
4
$class = $_POST['q']['params'];
    $method = $_POST['q']['method'];
    $params = $_POST['q']['params'];
    echo $class::$method($params);
То, всё работает, как надо.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.10.2018, 16:25
Ответы с готовыми решениями:

ЧТО НЕ ТАК? Почему не работает условие?
Всем привет. Уже почти часа ломаю голову. Вот код: &lt;? $links = file('links.txt'); $url1 =...

Что то не так или почему не получается?
Всем привет! У меня есть проблема, а именно, мне нужно написать код, который бы скачивал...

почему это так работает
по заданию надо создать два одинаковых массива с случайными числами от 0 до 99 for (i = 0; i &lt;...

Контроль состояния реле, что-то не догоняю как это сделать
Произвести конфигурацию дискретных выходов DO1, DO3, DO4 и дискретных входов DI1 и DI2. Написать...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
Записывайтесь на профессиональные курсы Fullstack-разработчиков на PHP‌
1
502 bad gateway
Эксперт PHP
4505 / 3665 / 1539
Регистрация: 24.04.2014
Сообщений: 10,787
27.10.2018, 17:51 2
Лучший ответ Сообщение было отмечено alexarchibasov как решение

Решение

PHP
1
echo $_POST['q']['name']::{$_POST['q']['method']}($_POST['q']['params']);
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.10.2018, 17:51

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

Глюк Яши или я что то не догоняю ?!
Всем привет! Возникла какая то странная ситуация, которая заставляет меня немного недоумевать....

Почему не работает ? Что не так?
static void Main(string args) { start: ...

Что такое «.\NUL»? И почему это не работает?
IF NOT EXIST %work%\NUL MKDIR %work%при запуске вот такой команды выходит диалоговое окно Эти...

Не понимаю, что не так, почему не работает
#include&lt;cstdlib&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &quot;iostream&quot; using namespace...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.