如何用三元运算符编写此条件语句
How to write this conditional statements with ternary operators
我想检查用户的 usr_name
是否为空,然后获取他的电子邮件并为其调整一个新变量。
所以这是传统的方式:
if(auth()->user()->usr_name != null){
$user_input = auth()->user()->usr_name;
}else{
$user_input = auth()->user()->usr_email;
}
现在我想用三元条件运算符来写这个,所以我试了一下:
$user_input = empty(auth()->user()->usr_name) ? auth()->user()->usr_name : auth()->user()->usr_email;
但这是错误的,因为 returns null
for $user_input
.
那么用三元运算符写这个的正确方法是什么?
三元运算符在“?”之前检查结果如果为真,return 第一对用“:”区分,如果不是 return 第二对。
Let say A = true
C = A ? 1: 2 ;
这里C等于1
在您的示例中,您必须更改十进制结果值的顺序
$user_input = empty(auth()->user()->usr_name) ?auth()->user()->usr_email : auth()->user()->usr_name
$user_input = auth()->user()->usr_name ?: auth()->user()->usr_email;
Ternary operator 在 PHP 中有一个简短的语法。上面代码同
if (auth()->user()->usr_name) {
$user_input = auth()->user()->usr_name;
} else {
$user_input = auth()->user()->usr_email;
}
考虑到非严格 != null
检查,这很可能等同于您的代码。
你只是把你的逻辑放在前面
$user_input = empty(auth()->user()->usr_name) ? auth()->user()->usr_email : auth()->user()->usr_name;
所以要清楚,如果设置了 usr_name,则优先使用 usr_name,否则使用 usr_email
请注意,您可以将它放在访问器中,然后在项目的任何地方调用类似 auth()->user()->identifier
的东西
如果您使用 PHP >= 7.0,您可以使用 null-coalescing 运算符来编写一个非常漂亮的语句。
它看起来像:
$user_input = auth()->user()->usr_name ?? auth()->user()->usr_email;
我想检查用户的 usr_name
是否为空,然后获取他的电子邮件并为其调整一个新变量。
所以这是传统的方式:
if(auth()->user()->usr_name != null){
$user_input = auth()->user()->usr_name;
}else{
$user_input = auth()->user()->usr_email;
}
现在我想用三元条件运算符来写这个,所以我试了一下:
$user_input = empty(auth()->user()->usr_name) ? auth()->user()->usr_name : auth()->user()->usr_email;
但这是错误的,因为 returns null
for $user_input
.
那么用三元运算符写这个的正确方法是什么?
三元运算符在“?”之前检查结果如果为真,return 第一对用“:”区分,如果不是 return 第二对。
Let say A = true
C = A ? 1: 2 ;
这里C等于1
在您的示例中,您必须更改十进制结果值的顺序
$user_input = empty(auth()->user()->usr_name) ?auth()->user()->usr_email : auth()->user()->usr_name
$user_input = auth()->user()->usr_name ?: auth()->user()->usr_email;
Ternary operator 在 PHP 中有一个简短的语法。上面代码同
if (auth()->user()->usr_name) {
$user_input = auth()->user()->usr_name;
} else {
$user_input = auth()->user()->usr_email;
}
考虑到非严格 != null
检查,这很可能等同于您的代码。
你只是把你的逻辑放在前面
$user_input = empty(auth()->user()->usr_name) ? auth()->user()->usr_email : auth()->user()->usr_name;
所以要清楚,如果设置了 usr_name,则优先使用 usr_name,否则使用 usr_email
请注意,您可以将它放在访问器中,然后在项目的任何地方调用类似 auth()->user()->identifier
的东西
如果您使用 PHP >= 7.0,您可以使用 null-coalescing 运算符来编写一个非常漂亮的语句。
它看起来像:
$user_input = auth()->user()->usr_name ?? auth()->user()->usr_email;