Php GET参数不存在时默认值的不同(或首选)方式

Php GET参数不存在时默认值的不同(或首选)方式,php,syntax,default-value,Php,Syntax,Default Value,这个问题是为了让代码更整洁 我想知道默认值的所有不同方式是什么,因为我有一个API控制器,默认所有未设置的参数,所以我想选择一个最漂亮和/或最直观的 另外,对于经验丰富的程序员来说,这样做的惯例或首选方式是什么 我的例子需要注意的是,我的变量名与GET参数值的名称不同。因此,在我的示例中,this\u是一个非常长的参数\u nameGET参数存储在$longParameterName变量中,shortGET参数存储在$val变量中 在我的示例中,有两个变量,在现实世界中,这两个变量介于5或10之

这个问题是为了让代码更整洁

我想知道默认值的所有不同方式是什么,因为我有一个API控制器,默认所有未设置的参数,所以我想选择一个最漂亮和/或最直观的

另外,对于经验丰富的程序员来说,这样做的惯例或首选方式是什么

我的例子需要注意的是,我的变量名与GET参数值的名称不同。因此,在我的示例中,
this\u是一个非常长的参数\u name
GET参数存储在
$longParameterName
变量中,
short
GET参数存储在
$val
变量中

在我的示例中,有两个变量,在现实世界中,这两个变量介于5或10之间

1. 2. 3. 4. 要求我更改错误报告设置:(

5.
你会遇到的问题是如果你有10个变量会发生什么?你的代码将有4X10行初始化这些变量(我不是说每次检查之间的额外行,以确保你的代码是可读的)

我会专门为你做这项工作:

function get_or_default($var, $default) {
    if (isset($_GET[$var])) {
        return $_GET[$var];
    }
    return $default;
}

$val1 = get_or_default('val1', 'default1');
$val2 = get_or_default('val2', 'default2');

第二选择。原因->易于阅读,速度更快,无需滚动我想这是一个偏好问题。我大部分时间都使用第二个选项。我认为第一个选项更具可读性,只比选项2多占用1行。无论如何,只有选项1和2是选项…其他选项不可读:)我已经有10个选项了(有时甚至更多),我不知道你是否及时赶上了我的编辑。这就是为什么我绝对喜欢这种方法,我也爱你!谢谢你。你非常受欢迎:)请注意,如果你想添加一些额外的验证/验证/消毒,这真的很容易。如果(例如)您不希望获取的值超过1000个字符,这样做非常简单,只需1行代码,无需重复。
$val = 'default1';
if(isset($_GET['short'])) {
    $val = $_GET['short'];
}

$longParameterName = 'default2';
if(isset($_GET['this_is_a_very_long_parameter_name'])) {
    $longParameterName = $_GET['this_is_a_very_long_parameter_name'];
}
$val = (isset($_GET['short'])) ? $_GET['short'] : 'default1';
$longParameterName = (isset($_GET['this_is_a_very_long_parameter_name'])) ? $_GET['this_is_a_very_long_parameter_name'] : 'default2';
$val = $_GET['short'] ?: 'default1';
$longParameterName = $_GET['this_is_a_very_long_parameter_name'] ?: 'default2';
$val = 'default1';
$longParameterName = 'default2';

$parameters = [
    'short' => 'val', 
    'this_is_a_very_long_parameter_name' => 'longParameterName'
];
foreach($parameters as $getParam => $varName) {
    if((isset($_GET[$getParam]))) {
        $$varName = $_GET[$getParam];
    }
}
function get_or_default($var, $default) {
    if (isset($_GET[$var])) {
        return $_GET[$var];
    }
    return $default;
}

$val1 = get_or_default('val1', 'default1');
$val2 = get_or_default('val2', 'default2');