PHP中的数据类型转换和类型检测

来源:互联网 发布:淘宝哪家女童卖的好 编辑:程序博客网 时间:2024/05/29 16:52
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();

1 0
原创粉丝点击