Php “的使用?”&引用;及&引用;

Php “的使用?”&引用;及&引用;,php,javascript,asp.net,Php,Javascript,Asp.net,我已经阅读了很多有if语句的代码,我注意到其他语言也使用它。Asp就是其中之一。 尝试过谷歌搜索,但找不到答案 ?:代表什么以及何时使用它 就我所知,?等于if()和:等于},否则{它就是(尽管在大多数语言中,它最好称为“条件运算符”) 人们通常会错误地将其称为“速记if/else”。但这是一个用词不当;if/else是一个语句,?:是一个表达式。在大多数语言中,这些是不同的概念,具有不同的语义。你的假设是正确的 在Java中是一种,它是一种if/else关系 三元操作的一个示例: boolea

我已经阅读了很多有if语句的代码,我注意到其他语言也使用它。Asp就是其中之一。 尝试过谷歌搜索,但找不到答案

?:
代表什么以及何时使用它

就我所知,
等于
if()
等于
},否则{

它就是(尽管在大多数语言中,它最好称为“条件运算符”)


人们通常会错误地将其称为“速记if/else”。但这是一个用词不当;
if/else
是一个语句,
?:
是一个表达式。在大多数语言中,这些是不同的概念,具有不同的语义。

你的假设是正确的


在Java中是一种

,它是一种if/else关系

三元操作的一个示例:

boolean bool = (x==1) ? true : false;

您可以阅读。您要查找的部分标题为“三元运算符”。

这称为

<> P>这是为了简化代码,在某些情况下考虑如下:

var str;

if(some_condition)
  str = 'yes';
else
  str = 'no';
这可以很容易地重写为

var str = some_condition ? 'yes' : 'no';

基本上,语法是
condition?,然后是expression:else表达式
。通常用于分配变量:

varname = something == 123 ? "yes" : "no";
但它几乎可以在任何地方代替值使用。它最有助于避免重复代码:

if( something == 123) {
    varname = "yes";
}
else {
    varname = "no";
}

通过使用条件运算符,您可以更简洁地表示可能需要if-else构造的计算。例如,以下代码首先使用if语句,然后使用条件运算符在计算sin函数之前检查可能的除零错误

    if(x != 0.0) s = Math.Sin(x)/x; else s = 1.0;
    s = x != 0.0 ? Math.Sin(x)/x : 1.0;

?:
你要找的,还是
布尔?真:假
。因为
?:
会导致类似
value1?:value2
的结果,如果它的计算结果为真,则使用
value1
。这是一个非常糟糕的例子,因为它可能会被
(x==1)取代
。我不会说这是一个坏例子,它是一段多余的代码。它被用作一个例子,而不是最佳软件实践。实际上,它目前是一个语法错误(在大多数编程语言中…)更好?:-)私有静态布尔getBoolean(int x){return(x==1)?true:false;}+1尽管我认为这更像是语法上的甜点,但逻辑是一样的。@Peter:这里-是的。一般来说-不一样。我所说的“逻辑是一样的”正如@OliCharlesworth正确指出的,
if/else
和三元运算符具有不同的语义。
if/else
是一个控制流结构,三元运算符是一个表达式。@Peter:代码更短,更容易阅读。对我来说,这看起来像是简化:)