浅析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实现批量查询清除一句话后门的代码
Jan 20 PHP
PHP取整数函数常用的四种方法小结
Jul 05 PHP
PHP合并两个数组的两种方式的异同
Sep 14 PHP
php读取3389的脚本
May 06 PHP
php socket实现的聊天室代码分享
Aug 16 PHP
PHP集成百度Ueditor 1.4.3
Nov 23 PHP
php 读取输出其他文件的实现方法
Jul 26 PHP
PHP控制前台弹出对话框的实现方法
Aug 21 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
Dec 14 PHP
解决laravel 5.1报错:No supported encrypter found的办法
Jun 07 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
Nov 17 PHP
thinkPHP框架中layer.js的封装与使用方法示例
Jan 18 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 APC的安装与使用详解
2013/06/13 PHP
PHP类的封装与继承详解
2015/09/29 PHP
PHP与Perl之间知识点区别整理
2019/03/19 PHP
用Javascript数组处理多个字符串的连接问题
2009/08/20 Javascript
根据鼠标的位置动态的控制层的位置
2009/11/24 Javascript
javascript闭包传参和事件的循环绑定示例探讨
2014/04/17 Javascript
js 动态为textbox添加下拉框数据源的方法
2014/04/24 Javascript
5个可以帮你理解JavaScript核心闭包和作用域的小例子
2014/10/08 Javascript
Jquery对象和Dom对象的区别分析
2014/11/20 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
2015/09/20 Javascript
jquery拖拽效果完整实例(附demo源码下载)
2016/01/14 Javascript
jQuery过滤特殊字符及JS字符串转为数字
2016/05/26 Javascript
Express之get,pos请求参数的获取
2017/05/02 Javascript
Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
2017/12/23 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
mpvue微信小程序多列选择器用法之省份城市选择的实现
2019/03/07 Javascript
微信小程序人脸识别功能代码实例
2019/05/07 Javascript
vue 地图可视化 maptalks 篇实例代码详解
2019/05/21 Javascript
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
python让列表倒序输出的实例
2018/06/25 Python
python实现遍历文件夹修改文件后缀
2018/08/28 Python
使用Python实现在Windows下安装Django
2018/10/17 Python
Python PIL读取的图像发生自动旋转的实现方法
2019/07/05 Python
python爬虫 爬取58同城上所有城市的租房信息详解
2019/07/30 Python
pandas 选取行和列数据的方法详解
2019/08/08 Python
Python lambda表达式filter、map、reduce函数用法解析
2019/09/11 Python
浅谈keras的深度模型训练过程及结果记录方式
2020/01/24 Python
python实现随机加减法生成器
2020/02/24 Python
python代码区分大小写吗
2020/06/17 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
2020/06/29 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
2021/02/22 Python
结合CSS3的新特性来总结垂直居中的实现方法
2016/05/30 HTML / CSS
婚庆答谢词
2015/01/04 职场文书
诚信考试承诺书范文
2015/04/29 职场文书
表扬信范文
2015/05/04 职场文书
费用申请报告范文
2015/05/15 职场文书