字符串和算术式拼接的坑
来源:互联网 发布:淘宝网休闲女鞋红 编辑:程序博客网 时间:2024/05/29 13:00
一.问题描述
今天在修改以前的开发人员留下来的坑的时候,发现一个错误:
“source=”.$search["souce"]-1
结果这个字符串的值是-1
二.问题原因
也就是说, . (字符串连接符)和算术式在php里面的优先级是一样的,运算的顺序是
第一步:“source=”.$search["souce"]
第二步 第一步结果-1
可以第一步的结果是一个字符串啊,怎么做减法运算?那就强制类型转换(PHP在做算式之前都会做得事),得到的结果是0-1=-1
我写了一个demo,说明上述结果:
<?php$str="i am a string";$num1="1";//这是个字符串,值是1echo "‘1’的类型是" . gettype($num1);echo "<br/>";echo "‘1’+0 的类型是" . gettype($num1+0) . "值是" . ($num+0);echo "<br/>";echo "‘i am a string’+0 的类型是" . gettype($str+0) . "值是" .($str+0) ;
在浏览器上的结果是:
‘1’的类型是string
‘1’+0 的类型是integer值是1
‘i am a string’+0 的类型是integer值是0
三.解决方法
“source=”.$search["souce"]-1的问题,说白了其实就是一个运算顺序的问题,先进行建算式运算再进行字符串运算就行了。改变运算顺序的方法最直接的就是--括号
所以
“source=” . ($search["souce"]-1)
完美解决
阅读全文
0 0
- 字符串和算术式拼接的坑
- jquery拼接ajax 的json和字符串拼接
- 字符串的拼接和拷贝的实现
- JAVA的字符串拼接和性能
- c语言 字符串的拼接和分割
- swift 字符串的截取和拼接
- 字符串拼接和转换的良好习惯
- 字符串拼接+和concat的区别
- 变量和字符串拼接
- VBA中字符串连接/字符串拼接中“&”和“+”的区别
- java语言基础(54)——变量字符串拼接和常量字符串拼接的区别
- 字符串的拼接
- SQL字符串的拼接.
- 字符串的拼接
- 拼接字符串的效率
- 字符串的拼接
- 关于字符串的拼接
- 字符串的拼接-MYSQL
- POJ 3604 Professor Ben
- 字符串多个范围替换
- 东北大学软件学院操作系统v实验报告
- 8月份英语总结
- 解决html转义及防止javascript注入攻击
- 字符串和算术式拼接的坑
- 周中训练笔记
- 2017 百度
- oracle分析函数
- 数论笔记
- Legacy动画之路径拖线
- 程序媛养成计划00--探索学习方法
- 如何把 className、url、user、password写入资源配置文件中?
- 局部加权线性回归