php - 基于 PHP 中另一个变量的存在来定义一个变量的简写条件

标签 php variables conditional shorthand

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

$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 在这方面与大多数传统语言一样。逻辑或总是返回 truefalse。但是,在 JavaScript 中,使用的是 final 表达式。 (在一系列的 OR 中,它将是第一个非假的。)

var a = false || 'A' || false; // 'A' 
var b = true && 'A' && 'B';    // 'B';

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

相关文章:

php - mysql时间戳转换

PHP Excel 和 Codeigniter

xslt - XSLT 中的变量范围

shell - ansible with_first_found 不工作

c - 如何在 printf 语句中设置条件?

php - php 表单中的数据未插入数据库

java - 人类友好的唯一 URL

c# - 在 C# 中向变量名添加一个数字

java - 如何在 Ant 条件中使用脚本的输出

java - 如何在消息对话框中正确使用命令 "if"?