php - 通过三元表达式设置不为空的值

标签 php ternary-operator

我有一个非常简短的问题要问你:

我从 Excel 工作表中读取数据并想将其转换为关联数组。但有时某些单元格中没有给出任何值。因此,如果发生这种情况,我想将数组的值设置为 0。

现在我用三元运算符来做这件事,我很高兴我今天发现了这一点:

(isset($excel->sheet[0]['cells'][$row][$value]) ? $excel->sheet[0]['cells'][$row][$value] : 0)

在这种情况下是否有缩短重复的方法?它有效,但不是那么漂亮:(

最佳答案

虽然不推荐这样做,但我会采用以下方式 (PHP 5.3):

(@$excel->sheet[0]['cells'][$row][$value] ? : 0);

错误抑制运算符是一团糟,但在这种情况下,您唯一抑制的是关于 undefined variable 的众所周知的通知。

另一个选项(如 Álvaro G. Vicario 所述)可以简单地转换为 int(如 NULL 转换为 0):

(int)@$excel->sheet[0]['cells'][$row][$value];

关于php - 通过三元表达式设置不为空的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15000038/

相关文章:

java三元运算符返回函数结果

c++ - 三元运算的奇怪行为

javascript - 如何在三元表达式中声明变量?

php - 当我包含加密时,SQL 密码字段不起作用

php - 在 mysql 表中插入 html 表值

php - 如何在微软AZURE服务器(PaaS)中安装msodbcsql

php - 使用 PHP 版本运行条件

php - PDO多类别选择和注册

objective-c - 在 Objective-C 中使用三元运算符有什么限制?

javascript - jQuery 中的三元运算符未按预期工作