浅析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 相关文章推荐
ThinkPHP 防止表单重复提交的方法
Aug 08 PHP
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
Dec 07 PHP
PHP小教程之实现链表
Jun 09 PHP
8个PHP程序员常用的功能汇总
Dec 18 PHP
PHP实现远程下载文件到本地
May 17 PHP
php二维码生成
Oct 19 PHP
php多线程实现方法及用法实例详解
Oct 26 PHP
PHP实现的进度条效果详解
May 03 PHP
thinkphp的dump函数无输出实例代码
Nov 15 PHP
PHP面向对象程序设计之对象的遍历操作示例
Jun 12 PHP
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
Aug 02 PHP
Laravel 之url参数,获取路由参数的例子
Oct 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
PHP 程序员的调试技术小结
2009/11/15 PHP
php 在windows下配置虚拟目录的方法介绍
2013/06/26 PHP
Javascript变量的作用域和作用域链详解
2015/04/02 Javascript
js检测判断日期大于多少天的方法
2015/05/04 Javascript
jquery彩色投票进度条简单实例演示
2020/07/23 Javascript
轻松实现jquery选项卡切换效果
2016/10/10 Javascript
jquery,js简单实现类似Angular.js双向绑定
2017/01/13 Javascript
详解angular ui-grid之过滤器设置
2017/06/07 Javascript
基于JavaScript实现飘落星星特效
2017/08/10 Javascript
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
2018/02/14 Javascript
微信小程序页面间传值与页面取值操作实例分析
2019/04/30 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
JavaScript用document.write()输出换行的示例代码
2020/11/26 Javascript
详解Python验证码识别
2016/01/25 Python
Python编码爬坑指南(必看)
2016/06/10 Python
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
Python获取某一天是星期几的方法示例
2017/01/17 Python
Windows下将Python文件打包成.EXE可执行文件的方法
2018/08/03 Python
基于python实现高速视频传输程序
2019/05/05 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
2019/07/04 Python
在Python中预先初始化列表内容和长度的实现
2019/11/28 Python
Django用户身份验证完成示例代码
2020/04/03 Python
python 基于opencv 绘制图像轮廓
2020/12/11 Python
使用CSS3 制作一个material-design 风格登录界面实例
2016/12/12 HTML / CSS
css3实现文字首尾衔接跑马灯的示例代码
2020/10/16 HTML / CSS
Casetify官网:自制专属手机壳、iPad护壳和Apple Watch手表带
2018/05/09 全球购物
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
教师自我鉴定范文
2013/11/10 职场文书
前台文员我鉴定
2014/01/12 职场文书
法学求职信
2014/06/22 职场文书
稽核岗位职责
2015/02/10 职场文书
企业工会工作总结2015
2015/05/13 职场文书
学校隐患排查制度
2015/08/05 职场文书
世界文化遗产导游词
2019/08/07 职场文书
PYTHON 使用 Pandas 删除某列指定值所在的行
2022/04/28 Python