在条件运算符中执行多个表达式

如何在条件运算符中执行两个或多个表达式,如下所示我尝试过但在php中不起作用: </ p>

  $ test = TRUE; 
$ val1 = 0;
$ val2 = 0;

//想要执行两个表达式,其中为true
$ test ? $ val1 = 23,$ val2 = 56:“”; //这不起作用
</ code> </ pre>

我曾经在C ++中这样做,但它有效,但这是php。 那怎么在php中完成?</ p>
</ div>

展开原文

原文

How are two or more expressions executed in a conditional operator like the following which I tried but is not working in php:

$test = TRUE;
$val1 = 0;
$val2 = 0;

// want to execute two expressions where true
$test ? $val1 = 23, $val2 = 56 : "";    // this is not working

I used to do this in C++ and it worked but this is php. So how is it done in php?

php
dongxu4580
dongxu4580 杰克我在其他部分做了一些事,但只有一个表达式。我用作演示。真正的代码必须在'true'部分设置三个值。
大约 7 年之前 回复
duanqiongdu9916
duanqiongdu9916 你可以做这样的事情的唯一方法是通过使用eval,但这太糟糕了。哦,你说你用C++做过这个...哎哟。对不起,但是三元组用于简单的任务,而不是编写让你的同事们堵嘴的代码
大约 7 年之前 回复
duange2971
duange2971 顺便说一句,我无法想象这在C++中是犹太的。
大约 7 年之前 回复
dshun123456
dshun123456 既然你在别的什么都不做,为什么不只是一个if?
大约 7 年之前 回复

2个回答



这是不可能的PHP 三元运算符。</ p>

语法为:</ p>

  expr?  expr:expr; 
</ code> </ pre>

它不允许每个段有多个表达式。 此外,PHP不允许以逗号分隔的表达式。</ p>

无论如何,使用 if </ code>语句可以更明确地表达您的意图:</ p>

  if($ test){
$ val1 = 23;
$ val2 = 56;
}
</ code> </ pre>
</ div>

展开原文

原文

This is not possible with PHP's Ternary Operator.

The syntax is:

 expr ? expr : expr ;

It does not allow for multiple expressions per segment. Furthermore PHP does not allow comma-separated expressions.

Regardless, your intentions will be far more clear with an if statement:

if ($test) {
  $val1 = 23;
  $val2 = 56;
}

duanmeng9336
duanmeng9336 是的,我以为我会和你分享这个小小的时髦细节:)
大约 7 年之前 回复
duandaoji3992
duandaoji3992 你发现了规则的例外。 仍然没有改变OP的代码是无效的PHP。
大约 7 年之前 回复
douji5397
douji5397 逗号分隔表达式可以在里面用于(;;)
大约 7 年之前 回复



您应该简单地使用:</ p>

  $ test?  ($ val1 = 23 AND $ val2 = 56):“”; 
</ code> </ pre>
</ div>

展开原文

原文

You should use like simply:

$test ? ($val1 = 23 AND $val2 = 56) : "";

duanfenhui5511
duanfenhui5511 有趣的事实:有必要使用AND,而不是&&,因为&&具有更高的优先级。 所以$ val1 = 23 && $ val 2 = 56评估为$ val1 =(23 && $ val2 = 56),因此$ val1 == 1和$ val2 == 56。
大约 7 年之前 回复
douchengjue9892
douchengjue9892 丑陋,但+因为它有效。
大约 7 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问