使用if-iset定义常量


define constant using 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语句设置其中一个常量?变量来自一个表单,给定表单选项,variable_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;

如果是这样做的,有没有简写法?所有这些打字越来越乏味了!

您可以使用array_keys和循环

沿着这条线的某个地方(你可能需要检查一些语法错误,因为我在没有任何IDE/适当环境的情况下输入这个)

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

虽然我不知道为什么常数根本不是常数。。。但嘿,这取决于你自己。