php之类型转换

php是弱类型语言,在运算中会根据运算符将数据转换成该运算符所能处理的数据。

1.自动转换

  1. if($a | 数字) { 。。。} //if里面的变量或者数字会自动转换成布尔
  2. 算术运算符会将数据变为数字处理
$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.与类型相关的函数

  1. var_dump() :输出一个变量的完整信息
  2. getType():获取一个变量的类型名称,返回是一个类型名称字符串
  3. setType(变量,”目标类类型”); 设置一个变量的类型
  4. isset() 如果变量存在并且值不是 NULL 则返回 TRUE ,否则返回 FALSE 。
  5. empty 判断一个变量数据是否为空
  6. unset() 销毁一个变量
  7. is_int()
  8. is_numeric() —1 ,1.2 ,”1.2” ,”12” 都为真
  9. is_array() is_scalar—是否基本数据类型: string float int boolean
  10. is_null — 检测变量是否为 NULL

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值