3_PHP表达式_5_数据类型转换_类型自动转换
以下为学习孔祥盛主编的《PHP编程基础与实例教程》(第二版)所做的笔记。
PHP类型转换分为类型自动转换和类型强制转换。
1.布尔型数据参与算数运算时,TRUE被转换为整数1,FALSE被转换为整数0;NULL参与算术运算时,被转换为整数0。
<?php
$a = TRUE;
$b = FALSE;
$c = NULL;
$d = $a + 1;
$e = $b + 1;
$f = $c + 1; var_dump($d); //int 2
echo "<br/>";
var_dump($e); //int 1
echo "<br/>";
var_dump($f); //int 1
echo "<br/>";
?>
输出:
D:\wampServer\www\Apache服务器主目录\practise\例程.php:8:int 2 D:\wampServer\www\Apache服务器主目录\practise\例程.php:10:int 1 D:\wampServer\www\Apache服务器主目录\practise\例程.php:12:int 1
2.浮点数与整数进行算术运算时,将整数转换为浮点数后,再进行算术运算。
程序:
<?php
$a = TRUE;
$b = FALSE;
$c = $a + 1.0;
$d = $b + 1.0; var_dump($c); //float 2
echo "<br/>";
var_dump($d); //float 1
echo "<br/>";
?>
输出:
D:\wampServer\www\Apache服务器主目录\practise\例程.php:7:float 2 D:\wampServer\www\Apache服务器主目录\practise\例程.php:9:float 1
3.参与算术运算的字符串,只有以数字开头的字符串才会被认作数字。
程序:
<?php
$a = 1;
$b = "-4.01";
$c = "4.2e6"; //算术运算时,将被转换成4200000
$d = "-4.1degree"; //算术运算时,将被转换成 -4.1
$e = $a + "6th"; //算术运算时,将被转换成 6
$f = $a + $b;
$g = $a + $c;
$h = $a + $d;
$i = $a + "degree"; //算术运算时,"degree"将被转换成 0 var_dump($e); //int 7
echo "<br/>";
var_dump($f); //float -3.01
echo "<br/>";
var_dump($g); //float 4200001
echo "<br/>";
var_dump($h); //float -3.1
echo "<br/>";
var_dump($i); //int 1
?>
输出:
D:\wampServer\www\Apache服务器主目录\practise\例程.php:12:int 7 D:\wampServer\www\Apache服务器主目录\practise\例程.php:14:float -3.01 D:\wampServer\www\Apache服务器主目录\practise\例程.php:16:float 4200001 D:\wampServer\www\Apache服务器主目录\practise\例程.php:18:float -3.1 D:\wampServer\www\Apache服务器主目录\practise\例程.php:20:int 1
4.在进行字符串连接运算时
①整数、浮点数将被转换成字符串类型数据。
例如,12.3转换为字符串后为“12.3”。
②布尔型TRUE将被转换成字符串“1”,布尔型FALSE跟NULL将被转换成空字符串“”。
程序:
<?php
$a = 1;
$b = 1.02;
$c = TRUE;
$d = FALSE;
$e = NULL;
$f = "degree";
$g = $a.$f;
$h = $b.$f;
$i = $c.$f;
$j = $d.$f;
$k = $e.$f;
var_dump($g); //string '1degree' (length=7)
echo "<br/>";
var_dump($h); //string '1.02degree' (length=10)
echo "<br/>";
var_dump($i); //string '1degree' (length=7)
echo "<br/>";
var_dump($j); //string 'degree' (length=6)
echo "<br/>";
var_dump($k); //string 'degree' (length=6)
echo "<br/>";
?>
输出:
D:\wampServer\www\Apache服务器主目录\practise\例程.php:13:string '1degree' (length=7) D:\wampServer\www\Apache服务器主目录\practise\例程.php:15:string '1.02degree' (length=10) D:\wampServer\www\Apache服务器主目录\practise\例程.php:17:string '1degree' (length=7) D:\wampServer\www\Apache服务器主目录\practise\例程.php:19:string 'degree' (length=6) D:\wampServer\www\Apache服务器主目录\practise\例程.php:21:string 'degree' (length=6)
5.在进行逻辑运算时,空字符串“”、字符串零“0”、整数0、浮点数0.0、NULL以及空数组array()将被转换成布尔型为FALSE,其他数据将被转换成布尔型TRUE(注意字符串“0.0”将被转换成布尔型TRUE)。
程序:
<?php
$a = "";
$b = "0";
$c = "0.0";
$d = 0;
$e = 0.0;
$f = NULL;
$g = array();
$h = $a && TRUE;
$i = $b && TRUE;
$j = $c && TRUE;
$k = $d && TRUE;
$l = $e && TRUE;
$m = $f && TRUE;
$n = $g && TRUE; var_dump($h); //boolean false
echo "<br/>";
var_dump($i); //boolean false
echo "<br/>";
var_dump($j); //boolean true
echo "<br/>";
var_dump($k); //boolean false
echo "<br/>";
var_dump($l); //boolean false
echo "<br/>";
var_dump($m); //boolean false
echo "<br/>";
var_dump($n); //boolean false
echo "<br/>";
?>
输出:
D:\wampServer\www\Apache服务器主目录\practise\例程.php:17:boolean false D:\wampServer\www\Apache服务器主目录\practise\例程.php:19:boolean false D:\wampServer\www\Apache服务器主目录\practise\例程.php:21:boolean true D:\wampServer\www\Apache服务器主目录\practise\例程.php:23:boolean false D:\wampServer\www\Apache服务器主目录\practise\例程.php:25:boolean false D:\wampServer\www\Apache服务器主目录\practise\例程.php:27:boolean false D:\wampServer\www\Apache服务器主目录\practise\例程.php:29:boolean false
3_PHP表达式_5_数据类型转换_类型自动转换的更多相关文章
- 3_PHP表达式_5_数据类型转换_类型强制转换
		
以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. PHP类型转换分为类型自动转换和类型强制转换. 3.5.2 类型强制转换 类型强制转换允许编程人员手动将变量的数据 ...
 - 类型转换构造函数 及使用explicit避免类型自动转换------新标准c++程序设计
		
类型转换构造函数: 除复制构造函数外,只有一个参数的构造函数一般可以称作类型转换构造函数,因为这样的构造函数能起到类型自动转换的作用.例如下面的程序: #include<iostream> ...
 - JavaScript的类型自动转换高级玩法JSFuck
		
0 前言 最开始是不小心在微信公众号(程序员大咖)看到一篇JS的高逼格代码,然后通过里面的链接跳转到了JSFuck的wiki,就像顺着迷宫找宝藏的感觉,感叹JS的自动类型转换的牛逼. 1 样例 (!( ...
 - tp类型自动转换和自动完成
		
一.类型自动转换 在模型中对数据库字段自动完成 //模型中数据类型自动转换 添加一个$type数组即可protected $type=array( 'username'=>'serialize' ...
 - go之数据类型转换和类型断言
		
一.类型转换 1.1 简单类型转换 格式 valueOfTypeB = typeB(valueOfTypeA) int 转 float64 package main import "fmt& ...
 - struts2各个功能详解(1)----参数自动封装和类型自动转换
		
struts2里面的各个功能,现在确实都不清楚,完全属于新学! 通过前面的例子,有时就会疑问,这些jsp中的数据信息是怎么传送给action的?例如: <form action = " ...
 - struts2(三)之表单参数自动封装与参数类型自动转换
		
前言 对struts2的使用不外乎这几点,参数自动封装,拦截器的使用,数据校验,ognl表达(值栈和actionContext的讲解),struts2的标签,struts2的国际化, struts2的 ...
 - struts2(二) 表单参数自动封装和参数类型自动转换
		
前篇文章对struts2的一个入门,重点是对struts2的架构图有一个大概的了解即可,之后的几篇文章,就是细化struts2,将struts2中的各种功能进行梳理,其实学完之后,对struts2的使 ...
 - Java之戳中痛点 - (6)避免类型自动转换,例如两个整数相除得浮点数遇坑
		
先来看一个例子: package com.test; public class calculate { /** * 光速30万公里/秒 */ public static final int LIGHT ...
 
随机推荐
- [原]DOM、DEM、landcover,从tms服务发布格式转arcgis、google服务发布格式
			
原作:南水之源 先看看tms和google服务器发布数据的数据排列:(goole地图与arcgis一样) 我现在手上有tms发布的数据,dom,dem等,现在要用arcgis server来发布这些数 ...
 - shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中
			
shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中 利用shell脚本将文本数据导入到mysql中 需求1:处理文本中的数据,将文本中的数据插入到mys ...
 - git merge 结果是 git merge Already up-to-date. 该怎么解决?
			
git将主干合并到当前分支时,出现如下结果: 原因在于:执行git merge前,主干的代码没有更新 正确的操作步骤如下: 1 .切换到主干 $ git checkout master 2. 更新主干 ...
 - Python3基础 输出逐行递增的小星星
			
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
 - IsNull、rs、sum
			
<% 'response.write (IsNull(rs("month_finish_count_price"))) If IsNull(rs("month_fi ...
 - Spring cloud微服务安全实战-4-3常见的微服务安全整体架构
			
整体架构 这个图适合中小公司.麻雀虽小 五脏俱全.微服务架构所需要做的事在这个图里基本都有了. 绿色的不讲,主要讲的是这三块(橘黄色的).后面的和运维相关,会讲,不会讲的太深 订单服务 首先来写一个订 ...
 - NativeExcel3使用示例
			
除了XLSReadWriteII5,还有个NativeExcel也是比较好的操作excel的组件,现将NativeExcel3的使用示例写一下,以下是代码和生成的excel表格的效果: procedu ...
 - doris: shell invoke .sql script for doris and passing  values for parameters in sql script.
			
1. background in most cases, we want to execute sql script in doris routinely. using azkaban, to l ...
 - PhpStorm (强大的PHP开发环境)10.0.2 附注
			
最新版PhpStorm 10正式版改进了PHP 7支持,改进代码完成功能. PhpStorm 是最好的PHP开发工具,使用它进行PHP开发将会让你感觉到编程的乐趣. 快乐无极终于从oschina看到了 ...
 - 04点睛Spring4.1-资源调用
			
转发:https://www.iteye.com/blog/wiselyman-2210666 4.1 Resource spring用来调用外部资源数据的方式 支持调用文件或者是网址 在系统中调用p ...