一些laravel短代码像?并且:。请描述一下

时间:2017-04-10 10:33:49

标签: php laravel

我正在研究laravel项目。我有这个代码。

请解释

什么是?:

if($request->pre_delivered){
    $grain_sale->undelivered_bushels = ($request->bushels_sold >= $request->pre_delivered ? $request->bushels_sold - $request->pre_delivered : NULl);
    dd($grain_sale->undelivered_bushels);
}

4 个答案:

答案 0 :(得分:0)

关于三元运算符 ?:的帖子已经有很多,但简而言之:

$var = condition ? <if true> : <if false>;

是:

的简写
if(condition){
    $var = <if true>;
}else{
    $var = <if false>;
}

有关PHP实现的更多详细信息,请查看the php manual。这是一个摘录:

  

如果(expr1) ? (expr2) : (expr3)求值为TRUE,则表达式expr2求值为expr1;如果expr3求值为FALSE,则表达式expr1。   从PHP 5.3开始,可以省略三元运算符的中间部分。如果expr1 ?: expr3评估为TRUE,则表达式expr1会返回expr1,否则会返回expr3

答案 1 :(得分:0)

它是ternary operator。如果?之前的部分为真,则执行?之后和:之前的部分。如果?之前的部分为false,则执行:之后的部分。

答案 2 :(得分:0)

它是ternary operator

如果满足条件,那么:之前的语句将在:执行后执行。

一个非常容易理解的例子: - https://eval.in/771934

答案 3 :(得分:-1)

三元运算符不是一个laravel的东西,它是一个php运算符,它也有多种语言版本。查看this article,其中介绍了ternaryif

之间的区别