php - 不确定 a 的值是多少

标签 php backend shorthand-if

地点:

$b = true;
$c = 0;
$a = ($a ? ($a ? $b : $c) : ($c ? $a : $b));

我不知道如何计算a。

所以我知道这是一个速记运算符,通常是这样的情况:

$value ? true : false

含义

if $a = true { true } else { false };

所以:

if $a{
    if $a{
        true;}
    else{
        0;};
else{
 if $0{
    $a;}
else{
    true;}
};

这是否使 $a 的值为 true?

最佳答案

$a 的值为 true

$b = true;
$c = 0;
$a = ($a ? ($a ? $b : $c) : ($c ? $a : $b));

简写可以这样解释:

if($a) {
  if($a) {
     $a = $b;
  } else {
     $a = $c;
  }
} else {
  if($c) {
     $a = $a;
  } else {
     $a = $b;
  }
}

因为 $a 因一开始就不存在而为 false,所以它会立即跳转到其中的 else 语句。因此,对您来说唯一重要的部分是:

  if($c) {
     $a = $a;
  } else {
     $a = $b;
  }

0false 相同,因此 $c 将返回 false,因此 $a等于$b,即true

编辑:

对引发的通知进行了一​​些讨论,但这未能说明通知并不是真正的错误,因此代码不会中断。结果不是注意: undefined variable :a,如果不是我们确定$a的值,“结果”(认为这些人的意思是输出)将是空白的code> 末尾带有 var_dump问题在于 $a 的值会变成什么,而不是屏幕上显示的内容。

屏幕上显示的有关未设置变量的内容与 $a 的值无关。

如果执行以下代码,则通知并不是唯一实现的内容:

$b = true;
$c = 0;
$a = ($a ? ($a ? $b : $c) : ($c ? $a : $b));

var_dump($a);

所以输出是:

E_NOTICE : type 8 -- Undefined variable: a -- at line 5
bool(true)

抛出通知这一事实并不能阻止 $a 变为 true。

而且通知很容易被压制...

error_reporting(0);
$b = true;
$c = 0;
$a = ($a ? ($a ? $b : $c) : ($c ? $a : $b));

var_dump($a);

会导致$a仍然为真,并且看不到通知。

bool(true)

关于php - 不确定 a 的值是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35591311/

相关文章:

php - 使用 .htaccess 文件使用带根目录的子目录在 PHP 和 XAMPP 中重写 url

一段时间后,PHP shell_exec 返回空字符串

javascript - app.get 不工作

java - 如何以干净的方式将 MultipartFile/InputStream 传递到域逻辑中?

javascript - 尝试使用 jQuery 的 submitHandler 时表单未提交

php - 问一下php summarize 01 + 01 = 02

javascript - NodeJS、DOM 环境、HTML

javascript - JS 简写 如果执行多个操作

c - 为什么在使用赋值运算符时,在 else 部分的 if-else 中需要简写左值?

jquery - 使用简写 if 更改属性时遇到问题