浅析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 相关文章推荐
ajax缓存问题解决途径
Dec 06 PHP
在PHP中使用Sockets 从Usenet中获取文件
Jan 10 PHP
php heredoc和phpwind的模板技术使用方法小结
Mar 28 PHP
php 获取全局变量的代码
Apr 21 PHP
克隆一个新项目的快捷方式
Apr 10 PHP
Joomla使用Apache重写模式的方法
May 04 PHP
PHP邮箱验证示例教程
Jun 01 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
Sep 22 PHP
Zend Framework入门教程之Zend_Config组件用法详解
Dec 09 PHP
php观察者模式应用场景实例详解
Feb 03 PHP
ThinkPHP中调用PHPExcel的实现代码
Apr 08 PHP
PHP children()函数讲解
Feb 03 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
Ajax PHP 边学边练 之三 数据库
2009/11/26 PHP
PHP 导出数据到淘宝助手CSV的方法分享
2010/02/27 PHP
适用于抽奖程序、随机广告的PHP概率算法实例
2014/04/09 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
2016/03/22 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
2020/01/26 PHP
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
通过pjax实现无刷新翻页(兼容新版jquery)
2014/01/31 Javascript
jQuery中使用each处理json数据
2015/04/23 Javascript
悬浮广告方法日常收集整理
2016/03/18 Javascript
Listloading.js移动端上拉下拉刷新组件
2016/08/04 Javascript
jQuery实现的放大镜效果示例
2016/09/13 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
2016/11/25 Javascript
javascript实现简易计算器
2017/02/01 Javascript
详解Vue中watch的高级用法
2018/05/02 Javascript
js 判断当前时间是否处于某个一个时间段内
2019/09/19 Javascript
js判断密码强度的方法
2020/03/18 Javascript
[41:17]完美世界DOTA2联赛PWL S3 access vs CPG 第二场 12.13
2020/12/17 DOTA
Python批量转换文件编码格式
2015/05/17 Python
在Python程序中操作文件之flush()方法的使用教程
2015/05/24 Python
Python数据分析:手把手教你用Pandas生成可视化图表的教程
2018/12/15 Python
Django分页功能的实现代码详解
2019/07/29 Python
python 模拟银行转账功能过程详解
2019/08/06 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
Tensorflow 实现分批量读取数据
2020/01/04 Python
python 爬取百度文库并下载(免费文章限定)
2020/12/04 Python
戴尔美国官方折扣店:Dell Outlet
2018/02/13 全球购物
微软加拿大官方网站:Microsoft Canada
2019/04/28 全球购物
加州风格的游泳和沙滩装品牌:Cupshe
2019/06/10 全球购物
三好学生自我鉴定
2013/12/17 职场文书
环保口号大全
2014/06/12 职场文书
学校关爱留守儿童活动方案
2014/08/27 职场文书
离职证明标准格式
2014/09/15 职场文书
群众路线教育实践活动剖析材料
2014/09/30 职场文书
刘公岛导游词
2015/02/05 职场文书
会议通知
2015/04/15 职场文书
2016年“9.22”世界无车日活动小结
2016/04/05 职场文书