浅析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 相关文章推荐
java EJB 加密与解密原理的一个例子
Jan 11 PHP
PHP执行zip与rar解压缩方法实现代码
Dec 05 PHP
header导出Excel应用示例
Jan 24 PHP
使用CodeIgniter的类库做图片上传
Jun 12 PHP
Yii中CGridView关联表搜索排序方法实例详解
Dec 03 PHP
php微信开发之带参数二维码的使用
Aug 03 PHP
PHP中串行化用法示例
Nov 16 PHP
详解PHP处理密码的几种方式
Nov 30 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
PHP+MySQL实现模糊查询员工信息功能示例
Jun 01 PHP
laravel Validator ajax返回错误信息的方法
Sep 29 PHP
PHP pthreads v3下同步处理synchronized用法示例
Feb 21 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
rephactor 优秀的PHP的重构工具
2011/06/09 PHP
提高PHP性能的编码技巧以及性能优化详细解析
2013/08/24 PHP
php格式化电话号码的方法
2015/04/24 PHP
PHP实现操作redis的封装类完整实例
2015/11/14 PHP
PHP实现非阻塞模式的方法分析
2018/07/26 PHP
js 获取、清空input type=&quot;file&quot;的值(示例代码)
2013/12/24 Javascript
详解AngularJS中的表格使用
2015/06/16 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
2016/08/17 Javascript
基于JQuery和原生JavaScript实现网页定位导航特效
2017/04/03 jQuery
在vue.js中使用JSZip实现在前端解压文件的方法
2018/09/05 Javascript
vue3.0 CLI - 2.5 - 了解组件的三维
2018/09/14 Javascript
使用weixin-java-tools完成微信授权登录、微信支付的示例
2018/09/26 Javascript
vue中eslintrc.js配置最详细介绍
2018/12/21 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
2019/04/26 Javascript
JS实现动态星空背景效果
2019/11/01 Javascript
Vue的Eslint配置文件eslintrc.js说明与规则介绍
2020/02/03 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
2020/08/03 Javascript
python del()函数用法
2013/03/24 Python
Python中max函数用法实例分析
2015/07/17 Python
Python进阶篇之字典操作总结
2016/11/16 Python
flask中使用蓝图将路由分开写在不同文件实例解析
2018/01/19 Python
Python把csv数据写入list和字典类型的变量脚本方法
2018/06/15 Python
通过python爬虫赚钱的方法
2019/01/29 Python
python 多进程队列数据处理详解
2019/12/23 Python
Python实现屏幕录制功能的代码
2020/03/02 Python
python安装读取grib库总结(推荐)
2020/06/24 Python
Django如何在不停机的情况下创建索引
2020/08/02 Python
canvas画布实现手写签名效果的示例代码
2019/04/23 HTML / CSS
马来西亚最好的婴儿商店:Motherhood
2017/09/14 全球购物
施工班组长岗位职责
2014/01/05 职场文书
信息管理应届生求职信
2014/03/07 职场文书
高中语文课后反思
2014/04/27 职场文书
催款函范文
2015/06/24 职场文书
导游词之南京汤山温泉
2019/11/26 职场文书
Django集成富文本编辑器summernote的实现步骤
2021/05/31 Python