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. ...
随机推荐
- 图像处理代码举例(C++、MATLAB、OpenCV)
一.C中用数组存图像信息,下标索引: pbTag[y*newWidth+x] 见:https://www.cnblogs.com/wxl845235800/p/11149853.html HRESUL ...
- Chrome V75V76新版无法存为mhtml格式解决办法
升级到75.76版本后谷歌浏览器Chrome V75.0.3770.142 V76.0.3809.87新版,发现无法另存为/保存网页为MHTML了.原来chrome搞了个"Chrome Fl ...
- java 特殊字符处理
// 去除富文本中的html标签 // <p>段落替换为换行 content = content.replaceAll("<p .*?>", "\ ...
- [ jenkins ] 基础安装及权限管理
1. 安装 jenkins 在安装 jenkins 之前需要 java 的支持 (1)安装 jdk1.8 [root@192.168.118.17 ~]#tar xf jdk-8u77-linux-x ...
- LODOP打印table超宽用省略号带'-'的内容换行问题
前面的博文有div超宽隐藏(LODOP打印超过后隐藏内容样式),还有有table设置超宽隐藏(),此外,还有超宽后用省略号表示的css样式,此文是针对这个样式的.该样式正常情况下没问题,但是遇到-短线 ...
- AI - AutoKeras - 简介
前言 在数据集上训练神经网络时,主要有两个目标: 定义符合数据集特性的神经网络架构. 在许多试验中对一组超参数进行调优,从而使得模型具有较高的准确率并且能够泛化至训练集和测试集之外的数据. 针对不同的 ...
- PHP与Memcached服务器交互的分布式实现源码分析
转自: http://blog.csdn.net/hguisu/article/details/7353595 前段时间,因为一个项目的关系,研究了php通过调用memcache和memcached ...
- Pytorch Tensor 常用操作
https://pytorch.org/docs/stable/tensors.html dtype: tessor的数据类型,总共有8种数据类型,其中默认的类型是torch.FloatTensor, ...
- 【程序人生】程序员真会玩,工作996,生病ICU
昨天Github上一个项目彻底爆红了网络,短短一天star数突破一万,Issues已破1800,大家纷纷说出有关企业的不合理加班行为,句句吐露程序员的心声,掀起了一波抵制加班潮,抵制996. 该项目里 ...
- Python31之类和对象1(三大特征:多封继——多疯子)
一.对象: Python即是面向对象的编程也是面向过程的编程语言,其内部可谓是无处不对象,我们所熟知的列表,字符串等工厂函数本质上都是对象.对象其实是对属性和方法的封装. 属性是对象的静态特征 方法是 ...