本质上,我希望能够将变量定义为一件事,除非该事不存在。我发誓在某个地方我看到了一个简写的条件语句,看起来像这样:

$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像大多数传统语言一样。逻辑OR始终返回truefalse。但是,在JavaScript中,将使用最终表达式。 (在一系列的OR中,它将是第一个非虚假的OR。)
var a = false || 'A' || false; // 'A'
var b = true && 'A' && 'B';    // 'B';

关于php - 基于PHP中另一个变量的存在来定义变量的简写条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3738451/

10-11 04:16
查看更多