php - string 和 int 值相加的输出是什么?
问题描述
$a=1;
$b="abc";
echo $c=$a+$b;
输出:- 1
我试图了解添加字符串和 int 值时 PHP 是如何工作的。
解决方案
您给出的示例实际上会生成一个您可能看不到的警告(取决于您的环境设置):
警告:在第 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
两种情况下都会输出。
推荐阅读
- symfony - symfony 5.2 在 framework.http_client 下无法识别选项“http_version”
- sql - 忽略基于辅助列的选择语句结果中的重复项
- c++ - Linux环境中空格前的Unicode排序号
- mule - Mule 4 long running httpRequest - 连接 sap 系统的 http 请求,需要 10 分钟才能给出响应
- vhdl - VHDL 简单摩尔状态机
- python - Python 数据透视表 groupby 或 transpose/unstack
- java - 二叉搜索树搜索功能的错误实现
- selenium - 从 instagram 抓取数据是否合法?
- java - 单击按钮时移动卡住
- java - 我是否犯了一个错误,因为在声明变量时?