浅析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扩展函数
Oct 09 PHP
谈谈PHP语法(3)
Oct 09 PHP
php中的一个中文字符串截取函数
Feb 14 PHP
Ha0k 0.3 PHP 网页木马修改版
Oct 11 PHP
php addslashes和mysql_real_escape_string
Jan 24 PHP
PHP中使用sleep函数实现定时任务实例分享
Aug 21 PHP
PHP中创建图像并绘制文字的例子
Nov 19 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
Mar 21 PHP
利用PHP判断文件是否为图片的方法总结
Jan 06 PHP
关于PHP中协程和阻塞的一些理解与思考
Aug 11 PHP
Laravel框架实现的rbac权限管理操作示例
Jan 16 PHP
使用php的mail()函数实现发送邮件功能
Jun 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
使用eAccelerator加密PHP程序
2008/10/03 PHP
需要发散思维学习PHP
2009/06/29 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
2014/08/21 PHP
PHP直接修改表内容DataGrid功能实现代码
2015/09/24 PHP
PHP PDOStatement::fetchObject讲解
2019/02/01 PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
2019/11/13 PHP
JQuery文字列表向上滚动的代码
2013/11/13 Javascript
JavaScript中的数学运算介绍
2014/12/29 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
window.onload绑定多个事件的两种解决方案
2016/05/15 Javascript
jQuery Mobile框架中的表单组件基础使用教程
2016/05/17 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
js从外部获取图片的实现方法
2016/08/05 Javascript
搭建简单的nodejs http服务器详解
2017/03/09 NodeJs
Angular将填入表单的数据渲染到表格的方法
2017/09/22 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
2017/10/27 Javascript
利用nvm管理多个版本的node.js与npm详解
2017/11/02 Javascript
JS实现的找零张数最小问题示例
2017/11/28 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
Python找出list中最常出现元素的方法
2016/06/14 Python
python实现百万答题自动百度搜索答案
2018/01/16 Python
对python判断是否回文数的实例详解
2019/02/08 Python
详解numpy.meshgrid()方法使用
2019/08/01 Python
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
python tqdm库的使用
2020/11/30 Python
HTML5网页录音和上传到服务器支持PC、Android,支持IOS微信功能
2019/04/26 HTML / CSS
香港草莓网:Strawberrynet香港
2019/05/10 全球购物
德国大型和小型家用电器网上商店:Energeto
2019/05/15 全球购物
工艺工程师工作职责
2013/11/23 职场文书
企业厂务公开实施方案
2014/03/26 职场文书
授权收款委托书
2014/09/23 职场文书
领导干部作风建设工作总结
2014/10/23 职场文书
2015年乡镇工会工作总结
2015/05/19 职场文书
中秋晚会致辞
2015/07/31 职场文书
2016年教代会开幕词
2016/03/04 职场文书
vue配置型表格基于el-table拓展之table-plus组件
2022/04/12 Vue.js