请参阅以下代码段
$i=1;
echo $i.($i++);
Run Code Online (Sandbox Code Playgroud)
在一个快速,我认为结果将是,12但实际结果是21.
也
echo $i,$i++;
Run Code Online (Sandbox Code Playgroud)
我以为它会是12它的11.
echo ($i = ($i++)); //result is 1
echo ($i = ($i+1)); //result is 2
Run Code Online (Sandbox Code Playgroud)
但为什么?
在本例中,首先评估括号中的代码($i++)。的值$i取 (1),然后变量增加到 2。这样就得到了这个,其中$i是 2。
echo $i . '1'
Run Code Online (Sandbox Code Playgroud)
由此,$i将 的值代入 ,得到'2' . '1',将其连接起来得到'21'。
重写此代码以清除,分隔符会更容易。该行echo $i, $i++;相当于:
echo $i;
echo $i++;
Run Code Online (Sandbox Code Playgroud)
第一行显然输出1,第二行将输出相同的值,然后递增$i(++是后递增运算符)。echo $i;如果你在最后放另一个,它会输出2.