以下为学习孔祥盛主编的《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