intval($i)和(int)$i的区别

intval()是内置函数,(int)是语言结构(就是PHP语言的关键词)。内置函数会被PHP解析器(Zend引擎)分解成语言结构,所以在效率上(int)$i比intval($i)快6倍。
 
需要注意的是intval($i)和(int)$i转换object会报Warning错误,但转换结果为int(1),如:
$i = new Exception();
转换$i会报“Warning: Object of class Exception could not be converted to int”。
 
总结:如果要转换数据类型建议使用(int)$i代替intval($i),不止是转换成int类型,转换成其它类型也一样,如strval()、floatval()等。

Copyright © 2024 码农人生. All Rights Reserved