在php中设置默认值

时间:2014-06-03 14:30:08

标签: php request

我的查询字符串中有一些值,我使用$ _REQUEST在PHP中获取。我将这些值分配给它们各自的变量,以便我可以用它们做我想要的,但是如果没有设置$ _REQUEST数组,我想为变量赋值。我尝试了这个,但我不断得到两个值的“未定义索引”:

$Start = $_REQUEST["start"] ?: 0;
$Fetch = $_REQUEST["fetch"] ?: 2;

我希望在请求数组为空的情况下为两个变量分配或设置默认值。

3 个答案:

答案 0 :(得分:2)

您需要检查它们是否存在,而速记三元运算符不会这样做:

$Start = isset($_REQUEST["start"]) ? $_REQUEST["start"] : 0;
$Fetch = isset($_REQUEST["fetch"]) ? $_REQUEST["fetch"] : 2;

答案 1 :(得分:0)

在这种情况下,您可以使用我的小型库ValueResolver,例如:

if (isset($_REQUEST["start"])) {
    $fetch = ValueResolver::resolve($_REQUEST["fetch"], 2); // returns 2 if $_REQUEST["fetch"] equal to '', 0, false etc.
}

并且不要忘记使用命名空间use LapaLabs\ValueResolver\Resolver\ValueResolver;

还可以进行类型转换,例如,如果您的变量的值应该是integer,那么请使用:

$id = ValueResolver::toInteger('6 apples', 2); // returns 6
$id = ValueResolver::toInteger('There are no apples', 2); // returns 2 (used default value)

查看docs了解更多示例

答案 2 :(得分:0)

在PHP 7中,您可以使用空合并运算符(send REST requests from Java)来执行此操作:

$Start = $_REQUEST["start"] ?? 0;
$Fetch = $_REQUEST["fetch"] ?? 2;