3_PHP表达式_5_数据类型转换_类型强制转换
以下为学习孔祥盛主编的《PHP编程基础与实例教程》(第二版)所做的笔记。
PHP类型转换分为类型自动转换和类型强制转换。
3.5.2 类型强制转换
类型强制转换允许编程人员手动将变量的数据类型转换成指定的数据类型。PHP提供以下3种类型强制转换方法。
方法1 在变量前面加一个小括号,并把目标数据类型填写在括号中。
这些目标数据类型包括:int, bool, float, string, array, object等。
程序:
<?php
$x = 11.2; $i = (int)$x;
$f = (float)$x;
$b = (bool)$x;
$a = (array)$x;
$o1 = (object)$x;
$o2 = (object)NULL; var_dump($i); //int 11
echo "<br/>";
var_dump($f); //float 11.2
echo "<br/>";
var_dump($b); //boolean true
echo "<br/>";
var_dump($a); //array (size=1) 0 => float 11.2
echo "<br/>";
var_dump($o1); //object(stdClass)[1] public 'scalar' => float 11.2
echo "<br/>";
var_dump($o2); //object(stdClass)[2]
echo "<br/>";
?>
输出:
D:\wampServer\www\Apache服务器主目录\practise\例程.php:11:int 11 D:\wampServer\www\Apache服务器主目录\practise\例程.php:13:float 11.2 D:\wampServer\www\Apache服务器主目录\practise\例程.php:15:boolean true D:\wampServer\www\Apache服务器主目录\practise\例程.php:17:
array (size=1)
0 => float 11.2 D:\wampServer\www\Apache服务器主目录\practise\例程.php:19:
object(stdClass)[1]
public 'scalar' => float 11.2 D:\wampServer\www\Apache服务器主目录\practise\例程.php:21:
object(stdClass)[2]
说明:1.stdClass是一个既没有成员变量,又没有成员方法的PHP内置类,其作用是:标量数据类型的数据被类型转换为对象时,动态地向对象添加scalar成员变量,scalar成员变量的值来自标量数据类型的取值。2.NULL被类型转换为对象时,将产生一个空对象。
方法2 使用以 val 结尾的函数名的函数
诸如intval()、float()、strval()函数。
程序:
<?php
$a = "123.9abc";
$b = intval($a);
$c = floatval($a);
$d = strval($a);
var_dump($b); //int 123
echo "<br/>";
var_dump($c); //float 123.9
echo "<br/>";
var_dump($d); //string '123.9abc' (length=8)
echo "<br/>";
?>
输出:
D:\wampServer\www\Apache服务器主目录\practise\例程.php:6:int 123 D:\wampServer\www\Apache服务器主目录\practise\例程.php:8:float 123.9 D:\wampServer\www\Apache服务器主目录\practise\例程.php:10:string '123.9abc' (length=8)
方法3 使用settype()函数
语法格式:bool settype(mixed var, string type)
函数功能:设置var的数据类型为type数据类型,type的取值包括"bool'、“int”、“float”、"string"、"array"、"object"、”NULL“等字符串。函数如果执行成功则返回TRUE,否则返回FALSE.
程序:
<?php
$a = "123.9abc";
settype($a, "bool");
var_dump($a); //boolean true
echo "<br/>"; $b = "123.9abc";
settype($b, "int");
var_dump($b); //int 123
echo "<br/>"; $c = "123.9abc";
settype($c, "float");
var_dump($c); //float 123.9
echo "<br/>"; $d = "123.9abc";
settype($d, "string");
var_dump($d); //string '123.9abc' (length=8)
echo "<br/>"; $e = "123.9abc";
settype($e, "array");
var_dump($e); //array (size=1) 0 => string '123.9abc' (length=8)
echo "<br/>"; $f = "123.9abc";
settype($f, "object");
var_dump($f); //object(stdClass)[1] public 'scalar' => string '123.9abc' (length=8)
echo "<br/>"; $g = "123.9abc";
settype($g, "NULL");
var_dump($g); //null
echo "<br/>";
?>
输出:
D:\wampServer\www\Apache服务器主目录\practise\例程.php:4:boolean true D:\wampServer\www\Apache服务器主目录\practise\例程.php:9:int 123 D:\wampServer\www\Apache服务器主目录\practise\例程.php:14:float 123.9 D:\wampServer\www\Apache服务器主目录\practise\例程.php:19:string '123.9abc' (length=8) D:\wampServer\www\Apache服务器主目录\practise\例程.php:24:
array (size=1)
0 => string '123.9abc' (length=8) D:\wampServer\www\Apache服务器主目录\practise\例程.php:29:
object(stdClass)[1]
public 'scalar' => string '123.9abc' (length=8) D:\wampServer\www\Apache服务器主目录\practise\例程.php:34:null
3_PHP表达式_5_数据类型转换_类型强制转换的更多相关文章
- 3_PHP表达式_5_数据类型转换_类型自动转换
以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. PHP类型转换分为类型自动转换和类型强制转换. 1.布尔型数据参与算数运算时,TRUE被转换为整数1,FALSE被 ...
- C#高级编程笔记 2016年10月8日运算符和类型强制转换
1.checked和unchecked 运算符 C#提供了checked 和uncheckde 运算符.如果把一个代码块标记为checked, CLR就会执行溢出检查,如果发生溢出,就抛出overfl ...
- C#高级编程 (第六版) 学习 第六章:运算符和类型强制转换
第六章 运算符和类型强制转换 1,运算符 类别 运算符 算术运算符 + - * / % 逻辑运算符 & | ^ ~ && || ! 字符串连接运算符 + 增量和减量运算符 ++ ...
- 【读书笔记】C#高级编程 第七章 运算符和类型强制转换
(一)运算符 类别 运算符 算术运算符 + - * / % 逻辑运算符 & | ^ ~ && || ! 字符串连接运算符 + 增量和减量运算符 ++ -- 移位运算符 < ...
- C语言指针类型 强制转换
关于C语言指针类型 强制转换 引用一篇文章: C语言中,任何一个变量都必须占有一个地址,而这个地址空间内的0-1代码就是这个变量的值.不同的数据类型占有的空间大小不一,但是他们都必须有个地址,而这个 ...
- C#高级编程9-第7章 运算符和类型强制转换
运算符和类型强制转换 1.运算符 运算符的简化操作 条件运算符: if-else的简化操作,也称三元运算符.如果条件为真,返回一个值,为假返回另外一个值. condition?true_value:f ...
- C# 运算符和类型强制转换(6) 持续更新
C#支持的运算符 https://msdn.microsoft.com/zh-cn/library/6a71f45d(v=vs.140).aspx checked 和 unchecked ; b++; ...
- C#学习笔记二 (资源托管,泛型,数组和元组,运算符和类型强制转换)
托管和非托管资源 1.托管资源是指GC管理的内存空间,非托管资源是指文件句柄,网络连接,数据库连接等. 2.方法中临时申请的变量,被存放在栈中.栈存储非对象成员的值数据.例如在方法中有B b=new ...
- Go 类型强制转换
Go 类型强制转换 强制类型的语法格式:var a T = (T)(b),使用括号将类型和要转换的变量或表达式的值括起来 强制转换需要满足如下任一条件:(x是非常量类型的变量,T是要转换的类型) 1. ...
随机推荐
- Kotlin介绍
Kotlin介绍 转 https://www.jianshu.com/p/d30406daaf25 Google在今年的IO大会上宣布,将Android开发的官方语言更换为Kotlin,作为跟着Goo ...
- 实战c++中的string系列--std:vector 和std:string相互转换(vector to stringstream)
string.vector 互转 string 转 vector vector vcBuf;string stBuf("Hello DaMao!!!");----- ...
- Spring MVC 保存并获取属性参数
在开发控制器的时候,有时也需要保存对应的数据到这些对象中去,或者从中获取数据.而Spring MVC给予了支持,它的主要注解有3个:@RequestAttribute.@SessionAttribut ...
- Python - Django - ORM 聚合查询和分组查询
models.py: from django.db import models # 出版社 class Publisher(models.Model): id = models.AutoField(p ...
- Spring4.X整合redis
包和版本的依赖关系很严重 我的配置 spring-data-redis-1.6.6.RELEASE.jar spring-tx-4.2.5.RELEASE.jar redis-2.7.2.jar co ...
- HTML布局排版4三部分测试图片页面
布局样式有前面的三个相关博文介绍: 该页面因为方便以后自己用,所以JS并没有判断输入内容为空或不对的情况.页面本身特点:1.页头的透明图,方便不更换底层渐变的情况下,更换图片2.浏览器宽度改变,中间b ...
- 【Leetcode_easy】1037. Valid Boomerang
problem 1037. Valid Boomerang 参考 1. Leetcode_easy_1037. Valid Boomerang; 完
- 09点睛Spring4.1-AOP
9.1 AOP AOP可以了让一组类共享相同的行为.在OOP中只能通过继承类和实现接口,这样使代码的耦合度增强,且类继承只能为单继承,阻碍更多行为添加到一组类上; 下面演示一个日志系统的实现,简单但不 ...
- face_code业务信息不匹配
face_code业务信息不匹配 检查获取 face code时的 appid, mch_id,out_trade_no以及可选的sub_mch_id , 与 face pay 时是否一致.
- 【NER】对命名实体识别(槽位填充)的一些认识
命名实体识别 1. 问题定义 广义的命名实体识别是指识别出待处理文本中三大类(实体类.时间类和数字类).七小类(人名.机构名.地名.日期.货币和百分比)命名实体.但实际应用中不只是识别上述所说的实体类 ...