浅析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 结果集的分页实现代码
Mar 10 PHP
php UBB 解析实现代码
Nov 27 PHP
php中jQuery插件autocomplate的简单使用笔记
Jun 14 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
Mar 17 PHP
php结合curl实现多线程抓取
Jul 09 PHP
高质量PHP代码的50个实用技巧必备(上)
Jan 22 PHP
非常实用的php验证码类
May 15 PHP
PHP针对多用户实现更换头像功能
Sep 04 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
Mar 31 PHP
关于Curl在Swoole协程中的解决方案详析
Sep 12 PHP
PHP实现通过二维数组键值获取一维键名操作示例
Oct 11 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
Oct 12 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
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
Zend Framework数据库操作技巧总结
2017/02/18 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
laravel Validator ajax返回错误信息的方法
2019/09/29 PHP
关于javascript document.createDocumentFragment()
2009/04/04 Javascript
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
Function.prototype.call.apply结合用法分析示例
2013/07/03 Javascript
jquery mobile页面跳转后样式丢失js失效的解决方法
2014/09/06 Javascript
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
js友好的时间返回函数
2016/08/24 Javascript
BootStrap无限级分类(无限极分类封装版)
2016/08/26 Javascript
推荐三款不错的图片压缩上传插件(webuploader、localResizeIMG4、LUploader)
2017/04/21 Javascript
Grunt针对静态文件的压缩,版本控制打包的实例讲解
2017/09/29 Javascript
详谈js的变量提升以及使用方法
2018/10/06 Javascript
vue组件从开发到发布的实现步骤
2018/11/11 Javascript
详解微信小程序实现跑马灯效果(附完整代码)
2019/04/29 Javascript
Webpack 4如何动态切割JS注入文件名详解
2019/07/09 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
原生JS生成指定位数的验证码
2020/10/28 Javascript
微信小程序实现点赞业务
2021/02/10 Javascript
[43:03]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python命令启动Web服务器实例详解
2017/02/23 Python
Python单元测试简单示例
2018/07/03 Python
Python判断变量名是否合法的方法示例
2019/01/28 Python
Python函数定义及传参方式详解(4种)
2019/03/18 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
2020/01/12 Python
python 实现客户端与服务端的通信
2020/12/23 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
一款利用css3的鼠标经过动画显示详情特效的实例教程
2014/12/29 HTML / CSS
电台实习生求职信
2014/02/25 职场文书
质量月活动策划方案
2014/03/10 职场文书
小学语文教学经验交流材料
2014/06/02 职场文书
电焊工岗位工作职责
2014/07/09 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
背起爸爸上学观后感
2015/06/08 职场文书
从零开始在Centos7上部署SpringBoot项目
2022/04/07 Servers