我现在可以使用cookie值(如果存在),否则使用默认值:

$default_carat_min = "0.25";
if($_COOKIE["diamond-search_caratMin"])
{
    $default_carat_min = $_COOKIE["diamond-search_caratMin"];
}

我要用很多变量来做这个,它会变得非常混乱/丑陋。所以我想找一个更干净的方法来写这个。
我试过:
$default_carat_min = $_COOKIE["diamond-search_caratMin"] | "0.25";

但没用。
我可以做到:
$default_carat_min = $_COOKIE["diamond-search_caratMin"] ? $_COOKIE["diamond-search_caratMin"] : "0.25";

但我不喜欢重复两次。我想知道是否有一种方法来写,像我的第二个例子?

最佳答案

php 5.3为ternary operator添加了一个缩写:

$default_carat_min = $_COOKIE["diamond-search_caratMin"] ?: "0.25";

如果左侧为真,则计算为左侧,否则计算为右侧。
但是,在5.3之前,您必须使用长表单。

08-27 10:23