Syntax 简化if()语句的语法或构造?

Syntax 简化if()语句的语法或构造?,syntax,scope,conditional-statements,control-flow,Syntax,Scope,Conditional Statements,Control Flow,我正在寻找一种语义或语言结构,可以简化我的一些if语句。如果我有一个带有or的If语句,其中我在两个值之间进行“选择”,那么我希望在代码的后面提供所选的变量 我将用伪代码编写: if ( x or y ) { function(z); } 其中,z是x或y的值,以触发的值为准。否则我就要写信了 if ( x ) { ... function(x); } if ( y ) { ... function(y); } 在这个例子中,重复并不多,但在我的

我正在寻找一种语义或语言结构,可以简化我的一些
if
语句。如果我有一个带有or的If语句,其中我在两个值之间进行“选择”,那么我希望在代码的后面提供所选的变量

我将用伪代码编写:

if ( x or y ) {
    function(z);
}
其中,
z
x
y
的值,以触发
的值为准。否则我就要写信了

if ( x ) {
    ...
    function(x);
} 

if ( y ) { 
    ...
    function(y);
}
在这个例子中,重复并不多,但在我的实际情况中,每个
if
块中大约有6行代码是相同的重复。所以我写了这样的东西:

if ( x )  {
    z = x;
} 

if ( y ) {
   z = y;
}

if ( z ) {
    ...
    function(z);
}
但这似乎太迂回了,我怀疑在这条线上的某个地方,某位大师想出了一个很好的语法来制作一行
if
。在一种语言中,是否存在一种构造,可以将触发值绑定到后续块中的变量中?这个结构叫什么


我工作的实际情况是在PHP中,所以我意识到PHP可能没有这种功能

对于这种情况。您可以使用
运算符:

z = x ? x : y;

在Python(也是Ruby)中,表达式
x或y
的计算结果为
x
如果为真,否则
y
。您可以将语句写成
f(x或y)
,或者
z=x或y
,实际上,类似于

if ( $z = ( $x ? $x : $y ) ) {
    function($z);
}

与PHP中的广告一样工作。谢谢你,斯莱贝特曼

谢谢,杰里德夫,这正是我想要的。这个构造有名字吗?