php 数据类型转换

 

php 数据类型转换

 

php 数据类型转换

 

运算数在参加运算的时候,需要将类型转为相同,然后才进行计算。在上面的例子中,第一个运算中,会先将$int转成浮点,然后和$f1相加,第二个运算中,会先将$str转成int类型,然后和$int相加。

 

在这个过程中,出现了类型转换。在上面的例子中,转换是系统自己进行的。

 

弱类型和强类型。

 

在定义一个变量的时候,不需要指定变量的类型,它的类型由程序的上下文来决定的,比如$a = 10,那就意味着$a是一个整型,$a = ‘hello’,就意味着$a是一个字符串。

像这种确定变量类型的方式就是弱类型。

与之对应的就是强类型,比如C、java、C#等。

 

变量在参与运算的时候,类型发生了变化,但变量本身的类型并没有改变。

 

 

注意两点:

Ø 在参与运算的多个操作数据之间,运算之前都需要将数据类型转成一致才可以。

Ø 这并没有改变这些操作数本身的类型;改变的仅是这些操作数如何被求值以及表达式本身的类型。

 

通常有两种方式来完成类型转换:

Ø 强制转换

Ø 自动转换

 

强制转换,我们在需要转换的变量之前,使用类型关键字,用括号括起来。

Int 或者 interger

Float

Boolean

String

Array

Object

 

在PHP中,实现强制转换,在要转换的变量之前加上用括号括起来的目标类型即可。

Ø (int), (integer) - 转换为 整型(integer)

Ø (bool), (boolean) - 转换为 布尔型(boolean)

Ø (float), (double), (real) - 转换为 浮点型(float)

Ø (string) - 转换为 字符串(string)

Ø (array) - 转换为 数组(array)

Ø (object) - 转换为 对象(object)

Ø (unset) - 转换为 NULL

 

将其他类型转为资源类型是没有意义的。

强制转换在程序中,应用并不多,大部分情况下,使用自动类型转换就可以完成业务逻辑。

 

转换规则

 

转换成字符串

Ø 一个 整数 或 浮点数 被转变为数字的字面样式的字符串

Ø 一个boolean TRUE 值被转换成 字符串"1"。 Boolean FALSE 被转换成""

Ø 数组转换成 字符串 "Array"

Ø 资源总会被转变成"Resource id #1"这种结构的 字符串

Ø NULL 总是被转变成空的字符串。

php数据结构转换

 

转换成整型

Ø 从布尔值转换,FALSE 将产生出 0(零),TRUE 将产生出 1(壹)。

Ø 从浮点数转换,当从浮点数转换成整数时,将向下取整。

从字符串转换,如果字符串 没有包含 '.','e'或'E' 并且数字值符合整数类型的限定 ,可被认定是一个 integer, 否则被认定为一个float。字符串的开始部分给定了它的值,如果 字符串 以合法的数字开始,这个数字可直接使用。 否则,值就是 0 。

 

php 转换成整形

 

转换成布尔型

当转换为 boolean 时,以下值被认为是 FALSE:

Ø 布尔值 FALSE 自身

Ø 整型值 0 (零)

Ø 浮点型值 0.0 (零)

Ø 空字符串, 以及 字符串 "0" (注意"00"、"0.0"被认为是TRUE)

Ø 空数组

Ø 特殊类型 NULL (包括尚未设定的变量)

 

所有其它值都被认为是 TRUE(包括对象和资源)。

1 和其它非零值(不论正负)一样,被认为是 TRUE! 

 

php 数据转换成布尔

 

☞ 注意细节

Ø HTML 表单并不传递整数、浮点数或者布尔值,它们只传递字符串。

Ø FALSE 是一个布尔值而 "false" 是一个字符串。

数据类型相关函数

Ø Var_dump:打印变量的详细信息,包括类型和值

Ø Gettype:获得类型

Ø Settype:设置类型

Ø Is系列:其中is_array会经常用到

Ø Isset:检查一个变量是否存在(设置)

Ø Empty:检查一个变量是否为空

 

对于isset而言,只要声明过(有值),不管它的值是什么,那么就返回true

对于empty而言,相当于 boolean(变量) ,然后再来取反。

sjjg4.png

 

简单例子

sjjg5.png

 

注意,在使用empty时候,要结合具体的业务逻辑类分析。

文章来至:http://www.codexueyuan.com/learn/learn-detail30-phpsilxzh

转载于:https://my.oschina.net/u/1454380/blog/1612204

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值