为变量分配默认值的最短方法?

JD *_*cks 5 php default-value variable-assignment

我现在有这个使用cookie值,否则使用默认值:

$default_carat_min = "0.25";
if($_COOKIE["diamond-search_caratMin"])
{
    $default_carat_min = $_COOKIE["diamond-search_caratMin"];
}
Run Code Online (Sandbox Code Playgroud)

我将不得不用很多变量做这件事,它会变得非常混乱/丑陋.所以我试图想出一个更清晰的写作方式.

我试过了:

$default_carat_min = $_COOKIE["diamond-search_caratMin"] | "0.25";
Run Code Online (Sandbox Code Playgroud)

哪个没用.

我可以做这个:

$default_carat_min = $_COOKIE["diamond-search_caratMin"] ? $_COOKIE["diamond-search_caratMin"] : "0.25";
Run Code Online (Sandbox Code Playgroud)

但我不喜欢我必须重复$_COOKIE两次.我想知道是否有办法写它像我的第二个例子?

Dan*_*uis 21

PHP 5.3为三元运算符添加了一个简写形式:

$default_carat_min = $_COOKIE["diamond-search_caratMin"] ?: "0.25";
Run Code Online (Sandbox Code Playgroud)

如果左侧为真,则评估左侧,否则评估为右侧.

但是,在5.3之前,您必须使用长格式.