如果键不存在,则设置关联数组的默认值的功能

Dhr*_*hak 6 php

PHP中是否有一个函数来设置变量的默认值(如果未设置)?一些内置函数来替换类似的东西:

$myFruit = isset($_REQUEST['myfruit']) ? $_REQUEST['myfruit'] : "apple" ;
Run Code Online (Sandbox Code Playgroud)

Lon*_*ars 8

PHP类有一个运算符(我认为5.3),它会将你的例子压缩为:

$myFruit = $_REQUEST['myfruit'] ?: "apple";
Run Code Online (Sandbox Code Playgroud)

但是,我说"有点",因为它只测试第一个操作数是否为false,如果未设置则不会抑制通知.因此,如果(如您的示例中)可能未设置,则原始代码最佳.

类似于dictionary.get的功能很简单:

function dget($dict, $key, $default) {
    return isset($dict[$key]) ? $dict[$key] : $default;
}
Run Code Online (Sandbox Code Playgroud)

为清楚起见,我仍然使用您的原始代码.

编辑:http ://wiki.php.net/rfc/ifsetor上ifsetor()的userland实现#2 比上面的函数更整洁,并且也适用于非数组,但是与默认表达式有相同的警告即使没有使用,也会一直评估:

function ifsetor(&$variable, $default = null) {
    if (isset($variable)) {
        $tmp = $variable;
    } else {
        $tmp = $default;
    }
    return $tmp;
}
Run Code Online (Sandbox Code Playgroud)