Home  >  Q&A  >  body text

面试 - php中true++问题

如题 今天突然想起来一个比较有意思代码片段

$a=0;
$b=0;
if($a=3 || $b=3){
    $a++;
    $b++;
}

运行结果当然是 1 1
但实质上 a 其实为true 然后 进行true++
于是做了一个测试 下面代码可以顺利通过

$c = true;
echo $c++;

但是 直接 echo true++ 这样肯定是错误的,但是why?

PHPzPHPz2749 days ago447

reply all(3)I'll reply

  • 巴扎黑

    巴扎黑2017-04-10 14:41:47

    boolean 的递增/递减无效果。

    为什么直接true++不行, 也许在逻辑上, 只有”变“量的递增/递减才有意义, 常量/布尔值在内存中都是单独的区域,无法去改动的。

    reply
    0
  • 怪我咯

    怪我咯2017-04-10 14:41:47

    ++和--运算符只能作用于变量。

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 14:41:47

    2++可以吗? 一样的道理。

    reply
    0
  • Cancelreply