您的位置:首页 > 编程语言 > PHP开发

php之类型转换

2016-04-03 22:42 405 查看
php是弱类型语言,在运算中会根据运算符将数据转换成该运算符所能处理的数据。

1.自动转换

if($a | 数字) { 。。。} //if里面的变量或者数字会自动转换成布尔

算术运算符会将数据变为数字处理

$a = "3";
$b = "5";
$c = $a + $b ;
var_dump($c);// 8  integer


3.  连接运算符. 转成字符串类型


$str = '123'.true.'abc';// 1231abc string


4. 比较运算符,分几种情况


①两个数字比较–正常情况

②其中有一个数据是布尔型的,则都转成布尔型进行比较 true>false

③数据中没有布尔型的,但其中有一个数据是数字,则转成数字 比较

④两边都是数字字符串,转成数字来比较

⑤比较运算符中两边都是字符串类型,从首个字符开始依次比较ASCII值,哪个大就停止后续比较。

一些转换规则:

“12” –> 12

“1.2” –> 1.2

“1.2a”- –> 1.2

“a1.2” —> 0

“1.1a1” —> 1.1

“0” —> false

“1” —> true

0 —> false

“0.0” —> true

“abc” —> 0

“” —> 0

“” – >false

<?php

header("content-type:text/html;charset=utf-8");
$name = "tom";
if($name)
{
echo '$name为真'.'<hr>';
}else
{
echo '$name为假'.'<hr>';
}

//1.在算数运算符中的类型转换 :会转换成数字进行计算

$a  = "1.1";//"1.1a" 会转换成1.1 , "a1.1"会转换成0
$b  = "7";

$c = $a + $b ;
echo $c," ",getType($c),'<hr>';//12 double

//连接运算符.其结果是字符串类型
$a = 5;
$b = true;// true 转换为 1 ,  false 转换成 0

$c = $a.$b ;
echo $c," ",getType($c),'<hr>';//51 string

//比较运算符,其结果一定是true或false
$a = false ;

$b = 5;

//如果两边至少一个布尔值,则把非布尔值数据转为布尔值比较,其结果类型也是布尔
$c = ($a < $b);//这里$b转为true , $c = false < true;

echo $c," ",getType($c),'<hr>';//1 boolean

//比较运算符中,两边不存在布尔类型但存在数字,则都转为数字类型比较
$a = 5 ;
$b = "abc";//$b 要转为数字比较,这里为0
$c = ($a > $b);
echo $c," ",getType($c),'<hr>';//1 boolean

//比较运算符中两边都是字符串类型
$a = "abc" ;
$b = "abd";
$c = ($a < $b);//从首个字符开始依次比较ASCII值,哪个大就停止后续比较
echo $c," ",getType($c),'<hr>';//1 boolean


2.强制转换

$a = 11.5;
$b = (int)$a;//强制转换成int赋值给$b
echo $a." 类型:".getType($a).'<hr>';//11.5 类型:double
echo $b." 类型:".getType($b).'<hr>';//11.5 类型:double

$c = (string)$a;
echo $c." 类型:".getType($c).'<hr>';//11.5 类型:11.5 类型:string

$d = (boolean)$a;
echo $d." 类型:".getType($d).'<hr>';//1 类型:boolean

$e = (float)$b;//强制转换成浮点数
echo $e." 类型:".getType($e).'<hr>';//11 类型:double

setType($c,"float");
echo $c." 类型:".getType($c).'<hr>';//11.5 类型:double


3.与类型相关的函数

var_dump() :输出一个变量的完整信息

getType():获取一个变量的类型名称,返回是一个类型名称字符串

setType(变量,”目标类类型”); 设置一个变量的类型

isset() 如果变量存在并且值不是 NULL 则返回 TRUE ,否则返回 FALSE 。

empty 判断一个变量数据是否为空

unset() 销毁一个变量

is_int()

is_numeric() —1 ,1.2 ,”1.2” ,”12” 都为真

is_array() is_scalar—是否基本数据类型: string float int boolean

is_null — 检测变量是否为 NULL

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: