intVal($str) 跟 (int) $str 都是把其他类型的变量转化为int型变量的方式,这么多年来我一直森森滴怀疑它们的运算结果在某些条件下会有区别。对于我的疑问,文档里也没有多说(或者我没找到),还是做个实验验证一下吧。

除了intVal函数的第二个参数可以指定$str字符串的进制形式外,对于普通的10进制数字型字符,这两种方式有什么样的区别呢?

小实验:

$arr = array('$a' => 19,'$b' => 19.99,'$c' => '19.99','$d' => '','$d' => 'sfsdf','$f' => '0x20','$e' => array('19.99')
);foreach ($arr as $k => $v){$v = intval($v);echo "intval({$v}) is :" , var_dump($v) , PHP_EOL;
}
echo '-----------------------', PHP_EOL;
foreach ($arr as $k => $v){$v = (int)($v);echo "intval({$v}) is :" , var_dump($v) , PHP_EOL;
}
die();

输出结果:

intval(19) is :int(19)intval(19) is :int(19)intval(19) is :int(19)intval(0) is :int(0)intval(0) is :int(0)intval(1) is :int(1)-----------------------
intval(19) is :int(19)intval(19) is :int(19)intval(19) is :int(19)intval(0) is :int(0)intval(0) is :int(0)intval(1) is :int(1)

实验分析:输出的结果有两个值得注意的地方,第一,他们的结果完全一致;第二,非空会被转化为1,空会被转为0。

实验结论:

输出结果没啥区别,但intval()毕竟是要有函数调用的,所以相比较而言会慢那么一丢丢。

课外题:

$v = intval($v);

改成

$v = intval($v * 100);

试一下,会有什么惊喜?!

另外,举一反三,其他的类型转换方式会不会有相同的答案呢?试一下吧!

转载于:https://www.cnblogs.com/jiangu66/p/3184754.html

刨根问底儿 -- intVal($str) 跟 (int) $str 的运算结果有什么区别相关推荐

  1. char str[]与char *str的区别

    一个具体例子: main() {char *p="abc123ABC";//char p[]="abc123ABC"int i=0;while(*(p+i)!= ...

  2. char str[] 和 char *str 的区别

    char* get_str(void) { char str[] = {"abcd"}; return str; } char str[] = {"abcd"} ...

  3. c 语言str.size,C/C++ strlen(str)和str.length()和str.size()的区别

    strlen(str)和str.length()和str.size()都可以求字符串长度,返回字符串中字符的长度,不包括'/0'. 其中str.length()和str.size()是同义词,返回同样 ...

  4. 给定一个字符串str,将str中连续两个字符为a的字符替换为b(一个或连续超过多个字符a则不替换)...

    需求:给定一个字符串str,将str中连续两个字符为a的字符替换为b(一个或连续超过多个字符a则不替换) 如:  a 不替换  b 不替换  ab 不替换  ba 不替换  aba 不替换  aab ...

  5. python输出字符串两次_下列程序的运行结果是: str = Hello print(str * 2) # 输出字符串两次 print(str + Python!) # 连接字符串_学小...

    [单选题]能连接电动机转轴与变速箱的输入轴,并能起过载保护作用的是_________. [多选题]按污染物的特性划分的污染类型包括以下的( ). [判断题]功和动能都与参考系的选择无关.() [单选题 ...

  6. C语言:从键盘输入一个字符串str,统计str中小写字母a到z共26个字母的个数(个数为0的不显示,其它字符不统计)。

    对于初学者,看到此类字符串统计的题,首先会想到if选择语句 做好范围条件如:('a'<=str[i])&&(str[i]<='z') 这样做是为了把输入的字符串做一个分类. ...

  7. python unsupported operand type(s) for /: 'str' and 'str' can only concatenate str (not int) to s

    报错: TypeError: can only concatenate str (not "int") to str TypeError: unsupported operand ...

  8. TypeError: sequence item 0: expected str instance, int found

    背景:想要将一个纯数字的列表转换为一个数字字符串. ''.join(nums) 结果报错: TypeError: sequence item 0: expected str instance, int ...

  9. python str转换int

    string–>int 1.10进制string转化为int int('12') 2.16进制string转化为int int('12', 16) int–>string 1.int转化为 ...

最新文章

  1. linux下使用NetBeans调试libevent库
  2. [20180602]函数与标量子查询3.txt
  3. Java基础点:常用类
  4. hadoop的idea连接配置_idea远程连接hadoop(macOS)
  5. python二维图颜色函数_Python绘图之二维图与三维图详解
  6. oracle 设置 shmmax,安装ORACLE时在Linux上设置内核参数的含义
  7. PHP从基础到高级总结
  8. 14届数独-真题标准数独-Day 4-20220119
  9. Gatekeeper:首个开源的DDoS防护系统
  10. 复合辛普森公式求解定积分 matlab
  11. Linux服务器被挖矿及解决办法
  12. Lumion 11.0:领先的建筑可视化工具再次升级!+全版本安装包
  13. 今天是2014年9月7日
  14. Debian虚拟机安装常用软件
  15. wifi服务器维护需要多长时间,WIFI服务器设置及维护.ppt
  16. 【涨知识】国内外点云处理著名研究团队
  17. 战地之王大逃杀手机吃鸡
  18. 国际网络收款工具Paypal注册图文教程
  19. QT QWebEngineView+UEditor富文本编辑器
  20. 手机访问网站 点击手机号码直接拨打电话

热门文章

  1. python【蓝桥杯vip练习题库】ADV-172身份证排序
  2. Python应用matplotlib绘图简介
  3. list循环添加数据_List 去除重复数据的 5 种正确姿势!你知道几种?
  4. 怎么把mysql转换mssql_MySQL如何转SQL server
  5. 剪切粘贴时总是上次的内容_macOS系统上面如何实现Windows上的“剪切”功能
  6. springboot使用jdbc连接mysql数据库
  7. hadoop 基础环境搭建(一)
  8. 网络推广专员浅析网站运营三种基本模式具备哪些网络推广重点!
  9. 手机端网站排名优化需注意哪些细节?
  10. python需要的数学基础训练答案_新编基础训练数学答案