Pak*_*ker 6 php casting operator-precedence
这种行为在PHP中是否正确?
<?php echo '-' . 1 + 1 . ' crazy cats'; ?>
// Outputs:
0 crazy cats
Run Code Online (Sandbox Code Playgroud)
据我所知,减号被连接到第一个'1'和'-1'连接到整数,而不是'2'连接到字符串.
请解释原因.
解决它的最佳方法是什么?这个?
<?php echo '-' . (string)1 + 1 . ' crazy cats'; ?>
Run Code Online (Sandbox Code Playgroud)
首先,它是正确的,如果它是不同的,它也是正确的,这就是PHP开发人员定义操作数优先级的方式.
在这种情况下,没有操作数具有优先权,所以你从左到右阅读它
'-' . 1 ==> '-1''-1' + 1 ==> 0 (对字符串的算术运算,将首先尝试将它们转换为数字然后再进行算术运算).0 . ' crazy cats' ==> "0 crazy cats" (对数字进行字符串操作,将它们转换为字符串).