浅析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 相关文章推荐
mysql 全文搜索 技巧
Apr 27 PHP
php 对输入信息的进行安全过滤的函数代码
Jun 29 PHP
php 解决旧系统 查出所有数据分页的类
Aug 27 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
May 12 PHP
PHP转盘抽奖接口实例
Feb 09 PHP
JavaScript与HTML结合的基本使用方法整理
Oct 12 PHP
详解PHP的Yii框架中自带的前端资源包的使用
Mar 31 PHP
php无法连接mysql数据库的正确解决方法
Jul 01 PHP
PHP实现批量检测网站是否能够正常打开的方法
Aug 23 PHP
实现PHP搜索加分页
Oct 12 PHP
php简单生成一组与多组随机字符串的方法
May 09 PHP
php 算法之实现相对路径的实例
Oct 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
解决文件名解压后乱码的问题 将文件名进行转码的代码
2012/01/10 PHP
PHP中生成UUID自定义函数分享
2015/06/10 PHP
Nigma vs Liquid BO3 第二场2.14
2021/03/10 DOTA
JavaScript格式化数字的函数代码
2010/11/30 Javascript
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
JavaScript SetInterval与setTimeout使用方法详解
2013/11/15 Javascript
使用angular写一个hello world
2015/01/23 Javascript
基于javascript实现最简单的选项卡切换效果
2016/05/16 Javascript
js css+html实现简单的日历
2016/07/14 Javascript
原生js实现中奖信息无间隙滚动效果
2017/01/18 Javascript
详解VUE的状态控制与延时加载刷新
2017/03/27 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
基于JavaScript实现简单的音频播放功能
2018/01/07 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
Vue 路由 过渡动效 数据获取方法
2018/07/31 Javascript
使用VScode 插件debugger for chrome 调试react源码的方法
2019/09/13 Javascript
JavaScript实现模态对话框实例
2020/01/13 Javascript
vue相关配置文件详解及多环境配置详细步骤
2020/05/19 Javascript
python双向链表实现实例代码
2013/11/21 Python
详解Python中的__init__和__new__
2014/03/12 Python
Python的ORM框架SQLObject入门实例
2014/04/28 Python
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
详解通过API管理或定制开发ECS实例
2018/09/30 Python
python实现简单名片管理系统
2018/11/30 Python
Python实现E-Mail收集插件实例教程
2019/02/06 Python
Python实现性能自动化测试竟然如此简单
2019/07/30 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
2019/08/12 Python
Django实现后台上传并显示图片功能
2020/05/29 Python
python如何提升爬虫效率
2020/09/27 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
html5中如何将图片的绝对路径转换成文件对象
2018/01/11 HTML / CSS
煤矿安全承诺书
2014/05/22 职场文书
设备管理实施方案
2014/05/31 职场文书
党员教师群众路线对照检查材料思想汇报
2014/09/29 职场文书
预备党员群众路线思想汇报2014
2014/10/25 职场文书
2016年教师寒假学习心得体会
2015/10/09 职场文书