浅析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边学边教》(01.开篇――准备工作)
Dec 13 PHP
PHP控制网页过期时间的代码
Sep 28 PHP
Discuz!下Memcache缓存实现方法
May 28 PHP
用PHP实现递归循环每一个目录
Aug 08 PHP
实现获取http内容的php函数分享
Feb 16 PHP
PHP判断是否有Get参数的方法
May 05 PHP
PHP队列用法实例
Nov 05 PHP
php使用cookie保存登录用户名的方法
Jan 26 PHP
php截取中文字符串函数实例
Feb 23 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
Oct 21 PHP
php从数据库中读取特定的行(实例)
Jun 02 PHP
Laravel框架源码解析之模型Model原理与用法解析
May 14 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调用Oracle存储过程的方法
2008/09/12 PHP
怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
2013/04/22 PHP
微信公众平台天气预报功能开发
2014/07/06 PHP
smarty中英文多编码字符截取乱码问题解决方法
2014/10/28 PHP
php为字符串前后添加指定数量字符的方法
2015/05/04 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
PHP实现的贪婪算法实例
2017/10/17 PHP
PHP PDOStatement::nextRowset讲解
2019/02/01 PHP
解决laravel-admin 自己新建页面里 js 需要刷新一次的问题
2019/10/03 PHP
13个绚丽的Jquery 界面设计网站推荐
2010/09/28 Javascript
js操作textarea方法集合封装(兼容IE,firefox)
2011/02/22 Javascript
JQquery的一些使用心得分享
2012/08/01 Javascript
JS 退出系统并跳转到登录界面的实现代码
2013/06/29 Javascript
多次注册事件会导致一个事件被触发多次的解决方法
2013/08/12 Javascript
js实现鼠标点击文本框自动选中内容的方法
2015/08/20 Javascript
jQuery CSS3自定义美化Checkbox实现代码
2016/05/12 Javascript
Jquery组件easyUi实现选项卡切换示例
2016/08/23 Javascript
详解jQuery uploadify文件上传插件的使用方法
2016/12/16 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
2019/01/23 Javascript
浅析vue-router中params和query的区别
2019/12/24 Javascript
使用python统计文件行数示例分享
2014/02/21 Python
Python入门篇之编程习惯与特点
2014/10/17 Python
python复制文件的方法实例详解
2015/05/22 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
2017/07/28 Python
Python 多维List创建的问题小结
2019/01/18 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
2020/04/07 Python
python小程序之4名牌手洗牌发牌问题解析
2020/05/15 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
2020/05/26 Python
python工具——Mimesis的简单使用教程
2021/01/16 Python
养殖人员的创业计划书范文
2013/12/26 职场文书
幼儿园开学家长寄语
2014/01/19 职场文书
应届生面试求职信
2014/07/02 职场文书
六查六看六改心得体会
2014/10/14 职场文书
基层工作经验证明样本
2014/11/16 职场文书
财务工作失职检讨书
2014/11/21 职场文书
python3实现Dijkstra算法最短路径的实现
2021/05/12 Python