我有一个看起来像这样的函数:
function fun()
{
$pMana < 20 ? error(1) : $pMana -= 20;
//do stuff
}
我想在调用错误函数时,它也会退出函数,就像这样
function fun()
{
$pMana < 20 ? (error(1); return) : $pMana -= 20; //invalid syntax
//do stuff
}
我还没有看到一个能够处理多个这样的语句的三元表达式,但我是新手。有可能吗?
答案 0 :(得分:3)
在这种情况下使用if
语句。
三元运算符应该返回单个值,因此单个语句限制。您也不应该在三元运算符中使用具有任何重大副作用的函数。
你提出的建议不可避免地导致代码非常难以理解,你应该关注可读性,而不是线条数/字符数。大多数代码的读取次数都是编写/编辑的。
编辑:
您也可以将assert用于类似目的。
assert($pMana > 20);
$pMana -= 20
但是,永远不应该使用断言来处理常见情况(例如用户输入验证)。经验法则是失败的断言应始终指示代码中的错误。断言表达式应涵盖关于程序/程序状态的其他部分的输入的假设,其名称为“尽快捕获错误”的座右铭(在这种情况下,它将用于防止错误导致法力消失,可能导致错误稍后)。
答案 1 :(得分:0)
三元运算符通常用于为变量赋值。 逻辑语句应与“if”一起使用。