Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
80 / 59 / 47
Регистрация: 27.11.2014
Сообщений: 359
1

Как передать константное значение в переменной?

08.11.2017, 17:03. Показов 1289. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет.
Если можете подскажите.

У меня в одном классе есть константы:

PHP
1
2
3
4
5
6
7
8
9
10
11
class TBLPRODUCT extends \yii\db\ActiveRecord
{
    const MI_ABOUT_BUDGET = 5;
 
    const MI_MOSCOW_BUDGET = 6;
 
    const MI_BUDGETINC = 8;
 
    const MI_BUDGET_EXP = 142;
 
}
В другом классе я пытаюсь написать функцию, которая смогла бы принимать значения констант по переданному имени.

PHP
1
2
3
4
5
 private function dataFromTBLProduct($constName){
        $miServise = new TBLPRODUCT();
        $convertToId = $miServise::$constName;
        return $convertToId;
    }
Но увы у меня естественно выдаёт ошибку. Как мне можно обойти эту проблему?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.11.2017, 17:03
Ответы с готовыми решениями:

Как значение переменной передать другой переменной?
Добрый день! подскажите мне с ява-кодом, код моего ява скрипта на жейкверти //отображает...

Как передать значение переменной?
Даны 2 модуля. В каждом есть своя процедура. В 1-ом модуле обрабатываются 2 строковые переменные (в...

Как передать значение переменной?
вот скажем у меня таблица users в ней есть раздел id (с значением 50 к примеру) мне нужно...

Как передать значение переменной в HTML
Доброго дня всем!) Как передать значение переменной ind в HTML graphWidget? ind =...

5
123 / 77 / 33
Регистрация: 05.03.2013
Сообщений: 449
08.11.2017, 17:52 2
Лучший ответ Сообщение было отмечено Андрюшатина как решение

Решение

PHP
1
2
3
4
5
6
7
8
9
private function dataFromTBLProduct($constName){
    $miServise = new TBLPRODUCT();
 
    $reflectionClass = new \ReflectionClass($miServise);
 
    $convertToId = $reflectionClass->getConstants()[$constName];
 
    return $convertToId;
}
1
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.11.2017, 17:56 3
https://secure.php.net/manual/... nstant.php
Следует учесть что данная функция выкинет варнинг, если запрашиваемой константы нет
1
80 / 59 / 47
Регистрация: 27.11.2014
Сообщений: 359
08.11.2017, 19:39  [ТС] 4
Спасибо большое за магию
В моём случае работает стабильно и проблем не предвидится.
Только есть один вопрос: "Со стороны безопасности приложения, безопасно ли использовать "Класс ReflactionClass"?"
0
123 / 77 / 33
Регистрация: 05.03.2013
Сообщений: 449
08.11.2017, 19:54 5
Это так же безопасно, как использовать другие классы, функции, присваивать значения переменным и производить математические операции над числами.

Вообще безопасность приложения зависит не от того, что ты используешь, а от того, как ты это используешь.
1
80 / 59 / 47
Регистрация: 27.11.2014
Сообщений: 359
08.11.2017, 20:21  [ТС] 6
Классный ответ! Спасибо!
0
08.11.2017, 20:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.11.2017, 20:21
Помогаю со студенческими работами здесь

Как передать значение переменной процедуре?
подскажите как из функции передать значение переменной процедуре к примеру на открытие отчета...

Как передать значение переменной в запрос?
Мне надо, чтобы в таблицу добавлялись записи, изменённые програмным путем. сначала я делаю выборку...

Как передать значение переменной в FastReport
Здраствуйте. Помогите разобраться. Как передать значение переменной в FastReport ? void __fastcall...

Как передать значение переменной в функции?
Есть функция печати из переменной, которую нужно неоднократно вызывать. При каждом вызове нужно...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru