$str = 'we123'+'123we'+'we'+'123';
echo $str;
提供输出246
$str = 'we123'-'123we'-'we'-'123';
输出为-246
$str = 'we123'*'123we'*'we'*'123';
输出为0
在此操作过程中,我没有收到任何warning
或notice
。
但是在分工操作中,
$str = 'we123'/'123we'/'we'/'123';
给予,
警告:除以零
非常感谢您的帮助。
提前致谢:)
答案 0 :(得分:3)
这是PHP的工作方式,请看PHP string conversion。从这个页面引用:
在数值上下文中计算字符串时,结果值和类型确定如下。
如果字符串不包含任何字符'。','e'或'E',并且数值适合整数类型限制(由PHP_INT_MAX定义),则字符串将被计算为整数。在所有其他情况下,它将被评估为浮动。
该值由字符串的初始部分给出。如果字符串以有效数字数据开头,则这将是使用的值。否则,该值将为0(零)。有效数字数据是可选符号,后跟一个或多个数字(可选地包含小数点),后跟可选指数。指数是'e'或'E',后跟一个或多个数字。
您的字符串在数字上下文中进行评估,因此:
'we123'
- 变为0,'123we'
- 变为123,'we'
- 变为0,'123'
- 变为123
然后计算0/123/0/123按预期将除以零。