这是代码:
<?php
for($i =0, $x = 100 ; $i<1; $i++){
echo $x . 'y' . $i+1 . ' = '. $i*$x . ' <br>';
}
?>
Run Code Online (Sandbox Code Playgroud)
我的预期输出为:100 y 1 = 0
但实际结果是:101 = 0;
你去哪儿了?
.拥有更多的运算符优先级+.
echo $x . 'y' . $i+1 = 101
Run Code Online (Sandbox Code Playgroud)
因为它将作为
echo ($x . "y" . $i)+1 ;
Run Code Online (Sandbox Code Playgroud)
这就是发生的事情.
$x3= ($x . "y" . $i); //100y0
$u = $x3+1 ; //101
Run Code Online (Sandbox Code Playgroud)
您正在+对字符串进行操作.因此,任何字符前的第一个数字将被视为整数值.
例如:
10y0g8 = 10
t10 =0
Run Code Online (Sandbox Code Playgroud)
通过进行算术运算,解释器将字符串转换为整数,并且它will discard all other characters.所以100y+1 = 101它不会101y