浅析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 相关文章推荐
fleaphp crud操作之findByField函数的使用方法
Apr 23 PHP
深入理解require与require_once与include以及include_once的区别
Jun 05 PHP
解析argc argv在php中的应用
Jun 24 PHP
php自定义apk安装包实例
Oct 20 PHP
php实现的SESSION类
Dec 02 PHP
php+ajax实现文章自动保存的方法
Dec 30 PHP
php制作动态随机验证码
Feb 12 PHP
Laravel实现构造函数自动依赖注入的方法
Mar 16 PHP
TP5框架页面跳转样式操作示例
Apr 05 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
Apr 27 PHP
基于PHP+mysql实现新闻发布系统的开发
Aug 06 PHP
php中数组最简单的使用方法
Dec 27 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 中执行系统外部命令
2006/10/09 PHP
深入PHP运行环境配置的详解
2013/06/04 PHP
Yii框架中jquery表单验证插件用法示例
2016/10/18 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
2016/12/29 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
dojo 之基础篇(三)之向服务器发送数据
2007/03/24 Javascript
JS/Jquery判断对象为空的方法
2015/06/11 Javascript
JavaScript实现打字效果的方法
2015/07/10 Javascript
解决jQuery uploadify在非IE核心浏览器下无法上传
2015/08/05 Javascript
jQuery实现最简单实用的分秒倒计时
2017/02/05 Javascript
JavaScript EventEmitter 背后的秘密 完整版
2018/03/29 Javascript
基于jquery实现左右上下移动效果
2018/05/02 jQuery
layui的table中显示图片方法
2018/08/17 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
可能被忽略的一些JavaScript数组方法细节
2019/02/28 Javascript
javascript头像上传代码实例
2019/09/28 Javascript
解决vue请求接口第一次成功,第二次失败问题
2020/09/08 Javascript
Python爬虫获取整个站点中的所有外部链接代码示例
2017/12/26 Python
Python中一行和多行import模块问题
2018/04/01 Python
详解Python3序列赋值、序列解包
2019/05/14 Python
Django如何开发简单的查询接口详解
2019/05/17 Python
python多线程高级锁condition简单用法示例
2019/11/07 Python
Pycharm 安装 idea VIM插件的图文教程详解
2020/02/21 Python
Anconda环境下Vscode安装Python的方法详解
2020/03/29 Python
django rest framework serializers序列化实例
2020/05/13 Python
Python-openpyxl表格读取写入的案例详解
2020/11/02 Python
利用CSS3的线性渐变linear-gradient制作边框的示例
2016/06/02 HTML / CSS
全天然狗零食:Best Bully Sticks
2016/09/22 全球购物
Ibatis如何调用存储过程
2015/05/15 面试题
初中体育教学反思
2014/01/14 职场文书
爬山的活动方案
2014/08/16 职场文书
党的群众路线整改落实情况汇报
2014/10/28 职场文书
报案材料怎么写
2015/05/25 职场文书
Pycharm远程调试和MySQL数据库授权问题
2022/03/18 MySQL
使用CSS定位HTML元素的实现方法
2022/07/07 HTML / CSS