应该是什么结果!$ a - $ a

1 php math

我有这个代码:

$a = 1;
$a = !$a - $a;
echo $a;
Run Code Online (Sandbox Code Playgroud)

我在想!0- 开玩笑,但输出是-1.不幸的是我无法理解结果的原因-1.如果有人解释,这将是伟大的.

Mah*_*hdi 10

如果你这样做,var_dump(!$a);你会发现它!$a不再是一个整数.它是一个boolean false,它不是因为它的原始价值1在你的情况下.看看这个:

$a = 5;
$a = !$a - $a; 
echo $a;    // output: -5
Run Code Online (Sandbox Code Playgroud)

你也可能也有兴趣做以下事情:

$a = 5;
$a = false - $a;
echo $a;     // output: -5
Run Code Online (Sandbox Code Playgroud)

所以,正如你所看到的,!$a手段false和它翻译成0.所以,根据你的例子,我们有这样的事情:

$a = 1;
$a = !$a - $a;
Run Code Online (Sandbox Code Playgroud)

这相当于:

$a = 0 - 1;
Run Code Online (Sandbox Code Playgroud)

这是-1.

更进一步,true也转化为1.你想确定吗?试试看:

$a = 5;
$a = true - $a;
echo $a;    // output: -4
Run Code Online (Sandbox Code Playgroud)

我想现在应该清楚了!如果它仍然令人困惑,请告诉我.

  • 这花了1分25秒写这个? (4认同)