浅析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之第十天
Oct 09 PHP
PHP循环获取GET和POST值的代码
Apr 09 PHP
纯真IP数据库的应用 IP地址转化成十进制
Jun 14 PHP
彻底杜绝PHP的session cookie错误
Aug 09 PHP
Window下PHP三种运行方式图文详解
Jun 11 PHP
PHP 解决session死锁的方法
Jun 20 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
Aug 23 PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
Jul 06 PHP
php 变量引用与变量销毁机制详细介绍
Dec 05 PHP
php 字符串中是否包含指定字符串的多种方法
Apr 12 PHP
PHP 并发场景的几种解决方案
Jun 14 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
Mar 09 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的MySQL连接类
2013/06/07 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
2019/05/09 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
兼容IE和FF的图片上传前预览js代码
2013/05/28 Javascript
jcrop基本参数一览
2013/07/16 Javascript
JS截取字符串常用方法详细整理
2013/10/28 Javascript
使用JS取得焦点(focus)元素代码
2014/03/22 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
jQuery实现选项卡切换效果简单演示
2015/12/09 Javascript
js获取url传值的方法
2015/12/18 Javascript
用js实现博客打赏功能
2016/10/24 Javascript
javascript中json基础知识详解
2017/01/19 Javascript
jquery ajaxfileupload异步上传插件使用详解
2017/02/08 Javascript
AngularJS前端页面操作之用户修改密码功能示例
2017/03/27 Javascript
javascript json对象小技巧之键名作为变量用法分析
2019/11/11 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
js实现贪吃蛇游戏 canvas绘制地图
2020/09/09 Javascript
Python教程之全局变量用法
2016/06/27 Python
浅析python中的分片与截断序列
2016/08/09 Python
Python程序退出方式小结
2017/12/09 Python
python人民币小写转大写辅助工具
2018/06/20 Python
解决Python plt.savefig 保存图片时一片空白的问题
2019/01/10 Python
初次部署django+gunicorn+nginx的方法步骤
2019/09/11 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
深入分析python 排序
2020/08/24 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
2020/10/21 Python
移动端Web页面的CSS3 flex布局快速上手指南
2016/05/31 HTML / CSS
重新定义牛仔布,100美元以下:Warp + Weft
2018/07/25 全球购物
维氏瑞士军刀英国网站:Victorinox英国
2019/07/04 全球购物
群教个人对照检查材料
2014/08/20 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
技术股东合作协议书
2014/12/02 职场文书
2015年招生工作总结
2015/05/04 职场文书
2016年大学光棍节活动总结
2016/04/05 职场文书