我正在尝试在数组内添加 if-else 语句。
这是我的代码:
$excelData = array(
$users->name,
$users->first_name . ' ' . $organization->last_name,
$users->user_email,
date('d M y', $timestamp),
if ($users->amount == NULL) {
echo 0;
} else {
$users->amount;
},
if ($users->coupon_code == NUll) {
echo "No Coupon Code";
} else {
$users->coupon_code;
},
);
如果正常访问的值松散等于 null,如何设置默认值?
If/else 结构不适合像这样内联使用。 它们不产生值,而是执行操作。 您想要做的是有一个产生值的单个表达式。 三元条件运算符可用于此目的。 (在该链接上向下滚动到标题为“三元运算符”的部分。)
例如,这个表达式产生一个值:
$users->amount == NULL ? 0 : $users->amount
它将根据条件评估为
0
或 $users->amount
。 所以在你的代码中你会有:
$excelData = array(
$users->name,
$users->first_name . ' ' . $organization->last_name,
$users->user_email,
date('d M y', $timestamp),
$users->amount == NULL ? 0 : $users->amount,
$users->coupon_code == NULL ? "No Coupon Code" : $users->coupon_code
);
对 null 的松散比较等同于进行错误检查。如果为空、假、空、零,简写三元数将是回退到默认值的最优雅的方式。
$excelData = [
$users->name,
"$users->first_name $organization->last_name",
$users->user_email,
date('d M y', $timestamp),
$users->amount ?: 0,
$users->coupon_code ?: 'No Coupon Code',
];