2015-03-31 2 views
0

У меня есть массив констант, которые я использую для заполнения массива параметров. Код выглядит примерно так:определить константу, используя if isset

define('variable_one', $_POST["variable_one"]; 
define('variable_two', $_POST["variable_two"]; 

$current_api_params->sVariableOne = variable_one; 
$current_api_params->sVariabletwo = variable_two; 

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

ли я просто сделать что-то вроде

if (isset($_POST["variable_one"]) { 
    define('variable_one', $_POST["variable_one"]); 
} 
elseif (isset($_POST["variable_one_different_name"]) { 
    define('variable_one', $_POST["variable_one_different_name"]); 
} 
else { 
    define('variable_one', ''); 
} 

$current_api_params->sVariableOne = variable_one; 

Если это, как это делается, есть сокращение для него? Все это печатание становится утомительным!

+0

Вы просто спрашиваете, или вы попробовали это, и это не сработало? – JNF

+0

Я еще не пробовал. Я просто попробовал, и он работает, но он создает проблемы из-за необходимости записывать if (isset()) {} операторов вокруг строк $ params. Как сказал Дон, ниже они не являются постоянными, поэтому нет необходимости их определять. Я могу просто установить переменную post в список массивов с помощью условного. Я полагаю, что сокращение для оператора if является оператором Ternary, не так ли? Я собираюсь попытаться использовать тернарный оператор без присоединенной части и посмотреть, работает ли это. – Longblog

ответ

1

Вы можете использовать array_keys и цикл

Где-то вдоль этих линий (возможно, потребуется проверить некоторые синтаксические ошибки, поскольку я печатаю это без каких-либо IDE/надлежащей среды)

$keys = array_keys($_POST) 
foreach ($keys as $keyItem) 
{ 
    define($keyItem, $_POST[$keyItem]); 
} 

Хотя Я не уверен, почему константы не постоянны вообще ... но эй, это зависит от вас, чтобы решить.

+0

Это не сработает, потому что у них должны быть определенные имена для взаимодействия с API, и имя ввода формы не всегда совпадает. Вы правы, хотя они не константы, и я уверен, что могу написать оператор if вокруг строки $ params. Спасибо, что указали это, так как я считаю, что это решает проблему. Сегодня я сделаю снимок. Многие константы не являются фактическими константами, но поскольку я унаследовал проект, я только что писал их как таковые, чтобы поддерживать единообразие с предыдущим кодом. Было слишком много, чтобы вернуться и реорганизовать его. Благодарю. – Longblog

Смежные вопросы