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

$a=1;

$b="abc";

echo $c=$a+$b;

输出:- 1


我试图了解添加字符串和 int 值时 PHP 是如何工作的。


绝地无双
浏览 229回答 2
2回答

千万里不及你

您给出的示例实际上会生成一个您可能看不到的警告(取决于您的环境设置):警告:在第 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两种情况下都会输出。

有只小跳蛙

当您添加字符串和整数时,如果字符串包含任何前导数字字符,PHP 将评估为数字类型,它只会考虑该数字字符。如果字符串不包含数字字符,那么它将被评估为“0”。所以上面的答案是1。as 1+"abc" PHP 会将 "abc" 计算为零。因此1+0 = 1
打开App,查看更多内容
随时随地看视频慕课网APP