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. ...
随机推荐
- Windows任务栏遮挡
通过MSTSC远程桌面连接,远程的电脑桌面任务栏被本地的任务栏遮住了! 首先在本地的任务栏右键,选择任务管理器,选择正在运行的windows资源管理器进程,右键选择重新启动(R) OK,重启的Wind ...
- PHP中Cookie与 Session
在非常多时候,我们需要跟踪浏览者在整个网站的活动,对他们身份进行自动或半自动的识别(也就是平时常说的网站登陆之类的功能),这时候,我们常采用 Cookie与 Session 来跟踪和判断. Sess ...
- Vue路由编程式导航以及hash模式
import Vue from 'vue'; import App from './App.vue'; //引入公共的scss 注意:创建项目的时候必须用scss import './assets/c ...
- Zabbix3.4指定用户才能收到报警的配置
Zabbix3.4指定用户才能收到报警的配置 .下载python微信脚本 #安装simplejson wget https://pypi.python.org/packages/f0/07/26b51 ...
- Linux expect的安装与使用
Expect是在Tcl的基础上创建的,可以用来做一些Linux下无法做到交互的命令操作,可用于远程管理服务器. 一.安装Tcl: 1.下载源码包: wget http://nchc.dl.source ...
- opencv图片旋转90度
#include<iostream> #include <opencv2/opencv.hpp> using namespace std; using namespace cv ...
- Java socket详解
参考 https://www.jianshu.com/p/cde27461c226 刚给大家讲解Java socket通信后,好多童鞋私信我,有好多地方不理解,看不明白.特抽时间整理一下,详细讲述Ja ...
- 【430】BST and Splay Tree
参考:Hello, Splay! 目录: 1. Binary Search Tree 2. Splay Tree
- html中的<pre>标签
定义和用法 pre 元素可定义预格式化的文本.被包围在 pre 元素中的文本通常会保留空格和换行符.而文本也会呈现为等宽字体. <pre> 标签的一个常见应用就是用来表示计算机的源代码. ...
- Nginx 504响应超时
1.问题分析 nginx访问出现504 Gateway Time-out,一般是由于程序执行时间过长导致响应超时,例如程序需要执行90秒,而nginx最大响应等待时间为30秒,这样就会出现超时. ...