调用对象时是否可以添加if语句obj-> sub1({if(foo == true)return foo; else return bar})?

时间:2016-08-31 13:21:39

标签: php object if-statement

我尝试在if对象中创建$soap语句,同时键入其参数。

我的需要就是这样:

$soap->add($name,$something,$foo,$optionalarg,$optionalarg2);

这本身并不是太糟糕,但我需要更改$optionalarg以获取其他内容(准确地说是" brak"(" none"在波兰语中) )。

在这种情况下,制作大量案例似乎并不是一个好主意(我认为这样做很多,而且这种做法并不恰当)。

我知道理论上我可以在$soap之前为每个可选的arg准备,但我正在寻找替代方案。

我试过谷歌搜索,

我尝试做随意的事情(有时候东西只是起作用但不是在这种情况下),比如

$soap->add($name,$something,$foo,{if($enabled==true) $optarg else "brak"})

$soap->add($name,$something,$foo,{if($enabled==true) return $optarg else return "brak"})

$soap->add($name,$something,$foo,if($enabled==true) $optarg else "brak")
一切都在抛出错误,所以我放弃了。

1 个答案:

答案 0 :(得分:1)

您正在寻找三元运营商:

$soap->add($name, $something, $foo, $enabled==true ? $optarg : "brak");

或在此特定情况下:

$soap->add($name, $something, $foo, $enabled ? $optarg : "brak");
                                    ^^^^^^^^ evaluated / cast to boolean

如果第一个参数求值为true,则返回第二个参数,如果第一个参数求值为false,则返回第三个参数。