浅析php数据类型转换


Posted in PHP onJanuary 09, 2014

PHP 在变量定义中不需要(或不支持)明确的类型定义;变量类型是根据使用该变量的上下文所决定的。也就是说,如果把一个字符串值赋给变量 var,var 就成了一个字符串。如果又把一个整型值赋给 var,那它就成了一个整数。

PHP 的自动类型转换的一个例子是加号“+”。如果任何一个操作数是浮点数,则所有的操作数都被当成浮点数,结果也是浮点数。否则操作数会被解释为整数,结果也是整数。注意这并没有改变这些操作数本身的类型;改变的仅是这些操作数如何被求值以及表达式本身的类型。 

类型强制转换
允许的强制转换有:

•(int), (integer) - 转换为 整型(integer)
•(bool), (boolean) - 转换为 布尔型(boolean)
•(float), (double), (real) - 转换为 浮点型(float)
•(string) - 转换为 字符串(string)
•(binary) - 转换为二进制 字符串(string) (PHP 6)
•(array) - 转换为 数组(array)
•(object) - 转换为 对象(object)
•(unset) - 转换为 NULL (PHP 5)
(binary) 转换会在结果前面加上前缀'b',PHP 5.2.1 新增。

注意在括号内允许有空格和制表符

将 字符串(string)文字和变量转换为二进制 字符串(string):

<?php
$binary = (binary)$string;
$binary = b"binary string";
?>

如果要改变一个变量的类型,参见 settype();

settype — 设置变量的类型

bool settype ( mixed $var , string $type )
将变量 var 的类型设置成 type。

type 的可能值为:

•“boolean” (或为“bool”,从 PHP 4.2.0 起)
•“integer” (或为“int”,从 PHP 4.2.0 起)
•“float” (只在 PHP 4.2.0 之后可以使用,对于旧版本中使用的“double”现已停用)
•“string”
•“array”
•“object”
•“null” (从 PHP 4.2.0 起)
成功时返回 TRUE, 或者在失败时返回 FALSE.

 intval() , floatval() , strval() , 这三个函数也可转换

下面主要分享一下PHP数据类型转换的知识。

PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有:

(int)、(integer):转换成整形
(float)、(double)、(real):转换成浮点型
(string):转换成字符串
(bool)、(boolean):转换成布尔类型
(array):转换成数组
(object):转换成对象

PHP数据类型有三种转换方式:

(1)在要转换的变量之前加上用括号括起来的目标类型,例如:

(int)  (bool)  (float)  (string)  (array) (object) 下面通过实例说明:

<?php
$num1=3.14;
$num2=(int)$num1; //强制转换为int类型
var_dump($num1); //输出float(3.14)
var_dump($num2); //输出int(3)

(2)使用3个具体类型的转换函数,intval()、floatval()、strval() ,实例如下:

<?php
$str="123.9abc";
$int=intval($str); //转换后数值:123
$float=floatval($str); //转换后数值:123.9
$str=strval($float); //转换后字符串:"123.9"

(3)使用通用类型转换函数settype(mixed var,string type) ,具体实例如下:

<?php
$num4=12.8;
$flg=settype($num4,"int");
var_dump($flg); //输出bool(true)
var_dump($num4); //输出int(12)
PHP 相关文章推荐
PHP stripos()函数及注意事项的分析
Jun 08 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
Aug 07 PHP
php计算两个文件相对路径的方法
Mar 14 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
Nov 05 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
May 28 PHP
基于laravel where的高级使用方法
Oct 10 PHP
Laravel如何实现自动加载类
Oct 14 PHP
PHP dirname简单使用代码实例
Nov 13 PHP
php中yii框架实例用法
Dec 22 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
Mar 09 PHP
如何用PHP实现分布算法之一致性哈希算法
May 26 PHP
php png失真的原因及解决办法
Nov 17 PHP
js和php邮箱地址验证的实现方法
Jan 09 #PHP
php检测用户是否用手机(Mobile)访问网站的类
Jan 09 #PHP
php获取文件内容最后一行示例
Jan 09 #PHP
php权重计算方法代码分享
Jan 09 #PHP
php实现分页工具类分享
Jan 09 #PHP
codeigniter框架批量插入数据
Jan 09 #PHP
eaglephp使用微信api接口开发微信框架
Jan 09 #PHP
You might like
php漏洞之跨网站请求伪造与防止伪造方法
2013/08/15 PHP
php中替换字符串中的空格为逗号','的方法
2014/06/09 PHP
ThinkPHP单字母函数(快捷方法)使用总结
2014/07/23 PHP
ThinkPHP中的create方法与自动令牌验证实例教程
2014/08/22 PHP
浅谈PHP正则中的捕获组与非捕获组
2016/07/18 PHP
整理8个很棒的 jQuery 倒计时插件和教程
2011/12/12 Javascript
javascript三元运算符用法实例
2015/04/16 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
2015/12/04 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
jquery Deferred 快速解决异步回调的问题
2016/04/05 Javascript
jQuery 跨域访问解决原理案例详解
2016/07/09 Javascript
详谈DOM简介及节点、属性、查找节点的方法
2017/11/16 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
Vue组件生命周期运行原理解析
2020/11/25 Vue.js
Python中使用HTMLParser解析html实例
2015/02/08 Python
Python实现截屏的函数
2015/07/25 Python
一张图带我们入门Python基础教程
2017/02/05 Python
Python探索之创建二叉树
2017/10/25 Python
python的文件操作方法汇总
2017/11/10 Python
matplotlib中legend位置调整解析
2017/12/19 Python
Python中的defaultdict与__missing__()使用介绍
2018/02/03 Python
详解python单元测试框架unittest
2018/07/02 Python
获取Pytorch中间某一层权重或者特征的例子
2019/08/17 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
Django websocket原理及功能实现代码
2020/11/14 Python
使用css创建三角形 使用CSS3创建3d四面体原理及代码(html5实践)
2013/01/06 HTML / CSS
Bally巴利英国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/07 全球购物
应届大学毕业生找工作的求职信范文
2013/11/29 职场文书
物理教师自荐信范文
2013/12/28 职场文书
2014年手术室工作总结
2014/11/26 职场文书
股权转让协议书
2014/12/07 职场文书
教师学期末个人总结
2015/02/13 职场文书
2015年维修电工工作总结
2015/04/25 职场文书
2015年文明创建工作总结
2015/04/30 职场文书
详细了解MVC+proxy
2021/07/09 Java/Android
HDFS免重启挂载新磁盘
2022/04/06 Servers