我正在寻找使用/不使用它的理由以及原创想法(在使用和替换它们时)。
复制:
相关(但没有解决所提出的问题):
为便于阅读,我只在适合 80 字符行的情况下使用三进制。
适用于 PHP 等模板语言中的短标签,例如:
<form>
<input type='radio' name='gender' value='m' <?=($gender=='m')?"checked":""?>>Male
<input type='radio' name='gender' value='f' <?=($gender=='f')?"checked":""?>>Female
</form>
适用于 javascript/jQuery 中的开关:
var el = $("#something");
$(el).is(':visible') ? $(el).hide("normal") : $(el).fadeIn("normal");
适合赋值,尤其是在特定变量名称可以采用不同类型的情况下:
$var = ($foo->isFoo()) ? 'Success!' : false;
条件三元运算符肯定会被过度使用,有些人觉得它很不可读。但是,我发现在大多数情况下,只要其意图明确,布尔表达式就可以非常干净。如果意图不明确,最好使用具有明确名称的临时变量,其值是使用 if 语句分配的,或者使用具有良好名称且返回预期值的函数。
这有点像for
循环。对于它的用途是有道理的,但是当您尝试在其中添加更多内容时,它变得不可读。
你说的是哪个三元运算符?
三元运算符是任何带有三个参数的运算符。
如果你在谈论 ? : 运算符,这称为条件运算符。就个人而言,我不能没有它了。If-else 语句对我来说看起来很乱,尤其是在进行条件赋值时。有些人抱怨它看起来很乱,但仍然有可能(尤其是在使用 Visual Studio 或其他智能格式化 IDE 的情况下)使内容易于阅读,并且无论如何您都应该注释所有条件。