以下为学习孔祥盛主编的《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_数据类型转换_类型强制转换的更多相关文章

  1. 3_PHP表达式_5_数据类型转换_类型自动转换

    以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. PHP类型转换分为类型自动转换和类型强制转换. 1.布尔型数据参与算数运算时,TRUE被转换为整数1,FALSE被 ...

  2. C#高级编程笔记 2016年10月8日运算符和类型强制转换

    1.checked和unchecked 运算符 C#提供了checked 和uncheckde 运算符.如果把一个代码块标记为checked, CLR就会执行溢出检查,如果发生溢出,就抛出overfl ...

  3. C#高级编程 (第六版) 学习 第六章:运算符和类型强制转换

    第六章 运算符和类型强制转换 1,运算符 类别 运算符 算术运算符 + - * / % 逻辑运算符 & | ^ ~ && || ! 字符串连接运算符 + 增量和减量运算符 ++ ...

  4. 【读书笔记】C#高级编程 第七章 运算符和类型强制转换

    (一)运算符 类别 运算符 算术运算符 + - * / % 逻辑运算符 & | ^ ~ && || ! 字符串连接运算符 + 增量和减量运算符 ++ -- 移位运算符 < ...

  5. C语言指针类型 强制转换

    关于C语言指针类型 强制转换  引用一篇文章: C语言中,任何一个变量都必须占有一个地址,而这个地址空间内的0-1代码就是这个变量的值.不同的数据类型占有的空间大小不一,但是他们都必须有个地址,而这个 ...

  6. C#高级编程9-第7章 运算符和类型强制转换

    运算符和类型强制转换 1.运算符 运算符的简化操作 条件运算符: if-else的简化操作,也称三元运算符.如果条件为真,返回一个值,为假返回另外一个值. condition?true_value:f ...

  7. C# 运算符和类型强制转换(6) 持续更新

    C#支持的运算符 https://msdn.microsoft.com/zh-cn/library/6a71f45d(v=vs.140).aspx checked 和 unchecked ; b++; ...

  8. C#学习笔记二 (资源托管,泛型,数组和元组,运算符和类型强制转换)

     托管和非托管资源 1.托管资源是指GC管理的内存空间,非托管资源是指文件句柄,网络连接,数据库连接等. 2.方法中临时申请的变量,被存放在栈中.栈存储非对象成员的值数据.例如在方法中有B b=new ...

  9. Go 类型强制转换

    Go 类型强制转换 强制类型的语法格式:var a T = (T)(b),使用括号将类型和要转换的变量或表达式的值括起来 强制转换需要满足如下任一条件:(x是非常量类型的变量,T是要转换的类型) 1. ...

随机推荐

  1. 让remix使用本地文件系统

    让remix使用本地文件系统   转:https://blog.csdn.net/platocnet/article/details/83376792 1. 测试发现使用npm命令安装相关环境不成功, ...

  2. 【Leetcode_easy】970. Powerful Integers

    problem 970. Powerful Integers solution: class Solution { public: vector<int> powerfulIntegers ...

  3. 【Leetcode_easy】942. DI String Match

    problem 942. DI String Match 参考 1. Leetcode_easy_942. DI String Match; 完

  4. ibatis 参数 指定类型

    文档: http://ibatis.apache.org/docs/dotnet/datamapper/ch03s04.html <update id="UpdateAccountVi ...

  5. 实验1 C 语言开发环境使用和数据类型、运算符、表达式

    # include <stdio.h> int main() { int x; printf("x:\n"); scanf("%d",&x) ...

  6. Word中如何加载EndNote

    在百度中搜索了很多解决方案,都不尽相同忙了一上午也没解决,然后搁浅,吃过午饭回来在安装目录下找到如下exe文件三四步点击搞定 所以,有时候问题出现了长时间没解决,可以换下环境出去溜达一圈说不定就茅塞顿 ...

  7. MySQL索引对NULL值的处理

    # 索引不会包含有NULL值的列 只要列中包含有NULL值都将不会被包含在索引中,复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的.所以我们在数据库设计时不要让字段的默认值为NU ...

  8. Git常用命令及方法

    https://blog.csdn.net/web_csdn_share/article/details/79243308 Git常用命令及方法大全 下面是我整理的常用 Git 命令清单.几个专用名词 ...

  9. 读取以key=value形式存储的txt文件

    代码片段(假设只有3个key=value): public static void main(String[] args) throws IOException { BufferedReader br ...

  10. linux下查看进程的状态 /proc/[pid]/status

    查看进程的状态: 1.查看进程的pid,以java为例:ps -ef | grep java 2.查看进程状态:cat /proc/[pid]/status 关键字: linux [root@loca ...