浅析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 cron中的批处理
Sep 16 PHP
php empty函数判断mysql表单是否为空
Apr 12 PHP
php无限分类且支持输出树状图的详细介绍
Jun 19 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
Jun 25 PHP
php实现水仙花数示例分享
Apr 03 PHP
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
May 10 PHP
解决phpcms更换javascript的幻灯片代码调用图片问题
Dec 26 PHP
php中通过DirectoryIterator删除整个目录的方法
Mar 13 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
Mar 04 PHP
PHP后端银联支付及退款实例代码
Jun 23 PHP
PHP文件后缀不强制为.php方法
Mar 31 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
May 25 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
linux iconv方法的使用
2011/10/01 PHP
php上传图片到指定位置路径保存到数据库的具体实现
2013/12/30 PHP
php function用法如何递归及return和echo区别
2014/03/07 PHP
PHP递归删除目录几个代码实例
2014/04/21 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
thinkphp5实现无限级分类
2019/02/18 PHP
window.location.href中url中数据量太大时的解决方法
2013/12/23 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
JS动态修改图片的URL(src)的方法
2015/04/01 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
jQuery根据元素值删除数组元素的方法
2015/06/24 Javascript
js时间控件只显示年月
2017/01/08 Javascript
JavaScript表单验证实现代码
2017/05/22 Javascript
浅谈 Vue v-model指令的实现原理
2017/06/08 Javascript
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
2017/07/11 Javascript
用Vue.extend构建消息提示组件的方法实例
2017/08/08 Javascript
浅谈在koa2中实现页面渲染的全局数据
2017/10/09 Javascript
JS严格模式知识点总结
2018/02/27 Javascript
vue.js打包之后可能会遇到的坑!
2018/06/03 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
python中反射用法实例
2015/03/27 Python
Python实现的HTTP并发测试完整示例
2020/04/23 Python
python魔法方法-属性访问控制详解
2016/07/25 Python
python 简单的绘图工具turtle使用详解
2017/06/21 Python
Python实现的括号匹配判断功能示例
2018/08/25 Python
python3 爬取图片的实例代码
2018/11/06 Python
python-序列解包(对可迭代元素的快速取值方法)
2019/08/24 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
2020/02/07 Python
执行Python程序时模块报错问题
2020/03/26 Python
绩效工资实施方案
2014/03/15 职场文书
授权委托书范本
2014/04/03 职场文书
执法作风整顿剖析材料
2014/10/11 职场文书
2014年大学班长工作总结
2014/11/14 职场文书
创业计划书之都市休闲农庄
2019/12/28 职场文书
MySQL系列之二 多实例配置
2021/07/02 MySQL