[英]Handling multiple statements using ternary operators
我試過像
foreach ($this->Bay as $k => $obj) {
$obj->{'BayId'} = ($obj->{'BayId'}=='') ? new MongoDB\BSON\ObjectID(); $obj->{'IsDeleted'} = "No"; : new MongoDB\BSON\ObjectID($obj->{'BayId'});
}
如果此條件 ($obj->{'BayId'}=='') 為真,則需要執行兩個語句。
上面的代碼拋出錯誤...請幫忙!!!
該問題與解析錯誤無關。 問題是,如果 BayId 不包含任何內容,它應該能夠用 $obj->{'IsDeleted'} = "No"; 覆蓋數組元素。 否則它不應該做任何事情
我也試過這樣
$obj->{'BayId'} = ($obj->{'BayId'}=='') ? $obj->{'IsDeleted'} = "否";
這是行不通的
當我像這樣組織你的代碼時,也許你會發現有什么問題:
foreach ($this->Bay as $k => $obj) {
$obj->{'BayId'} = ($obj->{'BayId'}=='') ? new MongoDB\BSON\ObjectID();
$obj->{'IsDeleted'} = "No";
: new MongoDB\BSON\ObjectID($obj->{'BayId'});
}
我向你保證,這是完全相同的代碼......所以? :)
如果您使用 if 語句,您嘗試實現的目的將更具可讀性和可理解性。但是您可以像這樣繼續:
假設$x=null
&& $y=null
然后根據您希望使用三元運算符更改兩個變量值的條件,您可以簡單地執行
(your condition here)?$x="new value"&&$y="new value too":"";
例子:
$x=$y=null;
($_GET['age']>10)?$x=10&&$y=12:'';
備注:我使用一些類比,因為我並不真正了解您的對象,但無論您要達到什么目的,原理都是一樣的......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.