为了账号安全,请及时绑定邮箱和手机立即绑定

string 和 int 值相加的输出是什么?

string 和 int 值相加的输出是什么?

PHP
绝地无双 2022-01-24 10:10:03
$a=1;$b="abc";echo $c=$a+$b;输出:- 1我试图了解添加字符串和 int 值时 PHP 是如何工作的。
查看完整描述

2 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

您给出的示例实际上会生成一个您可能看不到的警告(取决于您的环境设置):


警告:在第 3 行的 [...][...] 中遇到的非数字值


但是,PHP 会尽力继续工作,因此不会停止执行。


您认为 PHP 在上述情况下应该做什么?它将尝试转换$b为等效的数字并继续。在这种情况下"abc"转换为0并添加到$a,给出答案1。


请考虑以下内容:


$a=1;

$b="abc";

$d="2";

echo $c=$a+$b+$d;

你希望它输出什么?它输出3是因为 PHP 可以转换"2"为等效的数字并将其添加到1.


您实际上可以让 PHP 告诉您字符串的整数等价物正在使用什么,intval或者通过显式转换为int:


echo intval("abc");

echo (int)"abc";

正如您现在应该已经预料到的那样,这0两种情况下都会输出。


查看完整回答
反对 回复 2022-01-24
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

当您添加字符串和整数时,如果字符串包含任何前导数字字符,PHP 将评估为数字类型,它只会考虑该数字字符。如果字符串不包含数字字符,那么它将被评估为“0”。

所以上面的答案是1。

as 1+"abc" PHP 会将 "abc" 计算为零。因此

1+0 = 1


查看完整回答
反对 回复 2022-01-24
  • 2 回答
  • 0 关注
  • 228 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号