基本上,我希望能够将变量定义为一个事物,除非那个事物不存在。我发誓我在某个地方看到了一个看起来像这样的简写条件:
$var=$_GET["var"] || "default";
但我找不到任何文档来正确执行此操作,老实说,它可能是 JS 或 ASP 或我看到的其他东西。
我知道上面代码中应该发生的只是检查任一语句是否返回 true。但我想我看到有人做了一些事情,如果第一次失败,它基本上定义了一个默认值。这是任何人都知道并且可以帮助我的事情吗?我疯了吗?说起来似乎是多余的:
$var=($_GET["var"]) ? $_GET["var"] : "default";
或者特别多余的说:
if ($_GET["var"]) { $var=$_GET["var"]; } else { $var="default"; }
想法?
最佳答案
Matthew 已经提到了在 PHP 5.3 中实现它的唯一方法。请注意,您还可以链接它们:
$a = false ?: false ?: 'A'; // 'A'
这不同于:
$a = false || false || 'A'; // true
之所以如此,是因为 PHP 在这方面与大多数传统语言一样。逻辑或总是返回 true
或 false
。但是,在 JavaScript 中,使用的是 final 表达式。 (在一系列的 OR 中,它将是第一个非假的。)
var a = false || 'A' || false; // 'A'
var b = true && 'A' && 'B'; // 'B';
关于php - 基于 PHP 中另一个变量的存在来定义一个变量的简写条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3738451/