浅析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中的output_buffering详细介绍
Sep 27 PHP
PHP实现的sqlite数据库连接类
Dec 12 PHP
如何在HTML 中嵌入 PHP 代码
May 13 PHP
PHP批量生成图片缩略图的方法
Jun 18 PHP
php中header设置常见文件类型的content-type
Jun 23 PHP
apache和PHP如何整合在一起
Oct 12 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
Jul 15 PHP
thinkphp5引入公共部分header、footer的方法详解
Sep 14 PHP
PHP异常类及异常处理操作实例详解
Dec 19 PHP
基于PHP实现微信小程序客服消息功能
Aug 12 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
Aug 23 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编写登录验证码功能 附调用方法
2016/05/19 PHP
php中10个不同等级压缩优化图片操作示例
2016/11/14 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
2019/10/10 PHP
一文看懂PHP进程管理器php-fpm
2020/06/01 PHP
javascript 面向对象编程 聊聊对象的事
2009/09/17 Javascript
js判断上传文件的类型和大小示例代码
2013/10/18 Javascript
js的window.showModalDialog及window.open用法实例分析
2015/01/29 Javascript
js获取鼠标位置实例详解
2015/12/09 Javascript
bootstrap网页框架的使用方法
2016/05/10 Javascript
js和jQuery设置Opacity半透明 兼容IE6
2016/05/24 Javascript
jQuery Easyui datagrid连续发送两次请求问题
2016/12/13 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
vue父子组件的数据传递示例
2017/03/07 Javascript
jQuery实现验证码功能
2017/03/17 Javascript
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
Angularjs 实现动态添加控件功能
2017/05/25 Javascript
vue 登录滑动验证实现代码
2018/08/24 Javascript
4个顶级开源JavaScript图表库
2018/09/29 Javascript
浅谈redux, koa, express 中间件实现对比解析
2019/05/23 Javascript
javascript 数组(list)添加/删除的实现
2020/12/17 Javascript
Python程序语言快速上手教程
2012/07/18 Python
Django1.7+python 2.78+pycharm配置mysql数据库教程
2014/11/18 Python
Python描述器descriptor详解
2015/02/03 Python
详解Python发送邮件实例
2016/01/10 Python
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
Python模块、包(Package)概念与用法分析
2019/05/31 Python
Django 通过JS实现ajax过程详解
2019/07/30 Python
Django-migrate报错问题解决方案
2020/04/21 Python
使用python采集Excel表中某一格数据
2020/05/14 Python
python中upper是做什么用的
2020/07/20 Python
最新党员的自我评价分享
2013/11/04 职场文书
副科竞争上岗演讲稿
2014/05/12 职场文书
2016北大自主招生自荐信模板
2016/01/28 职场文书
MongoDB修改oplog大小的四种方法
2022/04/11 MongoDB
Golang Elasticsearches 批量修改查询及发送MQ
2022/04/19 Golang
Python循环之while无限迭代
2022/04/30 Python