我有这个代码:
$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)
我想现在应该清楚了!如果它仍然令人困惑,请告诉我.
归档时间: |
|
查看次数: |
127 次 |
最近记录: |