我是首发php开发人员,我知道,如果是,或者,如果...但我不理解那些:?和其他符号。所以你能告诉我这句话意味着什么:
$success = $success ? $b->save(false) : $success;
if (!success) // shouldn't this be without "!"
$transaction->commit(); // this means "do the job, if ok"
else
$transaction->rollBack(); // this means "don't do the job, if not ok"
另外,你能告诉我怎么称这个符号,我不知道他们的名字,所以我找不到关于他们的教程
答案 0 :(得分:4)
这在很多语言中非常常见,您可以在javascript中找到三元操作以及
这是if / else的简写。
?
之前的部分是条件,下一部分是条件返回true
时要执行的代码,最后一部分(:
之后)返回false
:
condition ? if true : if false;
$a = 3 > 5 ? 'three is greater than five' : 'three is lesser than five';
在这种情况下,$a
将为three is lesser than five
;
我建议仅针对非常简单的条件/结果进行三元操作,否则,最终会编写较少可维护的代码,牺牲易读性的简洁性
答案 1 :(得分:2)
上述代码如果以前的交易$success
为true
,请尝试$b->save(false)
,然后将$b->save(false)
的返回值放入$success
。< / p>
$b->save(false)
表示无需验证即可保存,成功保存后,将返回true
然后if
部分非常明确
答案 2 :(得分:2)
这是一个三元运算符,是if语句的简短形式。
$success = $success ? $b->save(false) : $success;
与
相同if($success) {
$success = $b->save(false);
} else {
$success = $success;
}