PHP中的数据类型转换和类型检测
2016-03-21 22:49
561 查看
1. 自动转换
自动转换,又称隐式转换,很多情况下,PHP会根据上下文环境来对数据的类型自动进行转换。
2. 强制转换
强制转换,又称显示转换,在某些特殊情况下,需要我们手工地对数据进行强制类型转换。
PHP 中的类型强制转换和 C语言中的非常像,在需要转换的变量之前加上用括号括起来的目标类型。
允许的强制转换有:
(int), (integer) :转换为整型。
(bool), (boolean): 转换为布尔类型。
(float),(double),(real) :转换为浮点型。
(string):转换为字符串。
(array) :转换为数组。
(object):转换为对象。
(unset):转换为 NULL。
还可以通过一些函数,实现数据类型的强制转换:
intval($var):转换成整型,返回转换后的值。
floatval($var) 或 doubleval($var):转换成浮点型,返回转换后的值。
strval($var):转换成字符串型,返回转换后的值。
boolval($var):转换成布尔类型,返回转换后的值。
上面的强制类型转换都是临时的,如果要实现类型的永久转换,可以使用函数settype()。
bool settype( mixed &$var , string $type )
设置变量的类型,成功返回true,失败返回false。
<?php
$a = 'g2';
settype($a, 'integer');
echo $a;
?>
函数gettype()可以返回一个变量的类型。
3. 变量类型的检测
检测是否为整型:is_int() 或 is_integer() 或 is_long()
检测是否为浮点型:is_float() 或 is_double() 或 is_real()
检测是否为字符串:is_string()
检测是否为布尔类型:is_bool()
检测是否为标量类型:is_scalar()
检测是否为数组类型:is_array()
检测是否为对象类型:is_object();
检测是否为资源类型:is_resource();
检测是否为NULL:is_null()
检测是否为数值类型包含字符串型的数值:is_numeric();
自动转换,又称隐式转换,很多情况下,PHP会根据上下文环境来对数据的类型自动进行转换。
2. 强制转换
强制转换,又称显示转换,在某些特殊情况下,需要我们手工地对数据进行强制类型转换。
PHP 中的类型强制转换和 C语言中的非常像,在需要转换的变量之前加上用括号括起来的目标类型。
允许的强制转换有:
(int), (integer) :转换为整型。
(bool), (boolean): 转换为布尔类型。
(float),(double),(real) :转换为浮点型。
(string):转换为字符串。
(array) :转换为数组。
(object):转换为对象。
(unset):转换为 NULL。
还可以通过一些函数,实现数据类型的强制转换:
intval($var):转换成整型,返回转换后的值。
floatval($var) 或 doubleval($var):转换成浮点型,返回转换后的值。
strval($var):转换成字符串型,返回转换后的值。
boolval($var):转换成布尔类型,返回转换后的值。
上面的强制类型转换都是临时的,如果要实现类型的永久转换,可以使用函数settype()。
bool settype( mixed &$var , string $type )
设置变量的类型,成功返回true,失败返回false。
<?php
$a = 'g2';
settype($a, 'integer');
echo $a;
?>
函数gettype()可以返回一个变量的类型。
3. 变量类型的检测
检测是否为整型:is_int() 或 is_integer() 或 is_long()
检测是否为浮点型:is_float() 或 is_double() 或 is_real()
检测是否为字符串:is_string()
检测是否为布尔类型:is_bool()
检测是否为标量类型:is_scalar()
检测是否为数组类型:is_array()
检测是否为对象类型:is_object();
检测是否为资源类型:is_resource();
检测是否为NULL:is_null()
检测是否为数值类型包含字符串型的数值:is_numeric();
相关文章推荐
- 接口与多态的使用
- php 修改上传文件大小 (max_execution_time post_max_size)
- PHP面向对象的继承
- PHP Reflection API详解
- 深入 PHP 面向对象、模式与实践
- H5学习_番外篇_PHP入门指南
- laravel之多对多的关系模型
- PHP中的运算符
- PHP分多步骤填写发布信息的简单方法实例代码
- 常用关键字和魔术方法
- PHP基础知识总结
- ThinkPHP的eq标签
- PHP 版本 支付
- 深入理解PHP Opcode缓存原理
- php设计模式学习系列(四)--抽象工厂模式
- thinkphp学习记事
- PHP学习(三)----面向对象
- php base64编码和urlencode
- ccnet中使用FtpClient.exe程序要注意的要点
- thinkphp-许愿墙-2