首页 > php学习 > php基础知识 > PHP中的数据类型
2016
12-16

PHP中的数据类型

boolean(bool):布尔型:true,false

string:字符串型:字符串长度取决于机器内存

integer(int):整型:2147483648和-2147483647之间

float:浮点型:最大值1.8e308

object:对象

array:数组

resourse:资源句柄

null:空值

通过 gettype() 函数查看变量类型和settype (mixed &$var , string $type )设置变量类型。

通过 var_dump() 函数可以输出某个变量的数据类型和具体的值。

isset()和用来判断一个变量是否存在,返回的是布尔值true或false。

unset()销毁指定的变量

empty()用来判断一个变量的值是否为空,如果为空则为true否则为false。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的

如果想通过判断变量类型来确定下一步逻辑动作,不建议使用gettype() ,而使用 is_$type()系列函数($type为想要检测是否为某种数据类型的名称字符串),如is_int($a)或is_integer($a)为判断变量$a是否为整形。

通过is_numeric()可以检查作为变量值是否是数值类型,包括int和float,和is_int()、is_float()不同。

数字的进制转换:所有进制转换函数的返回都为一个字符串

十进制转换为二进制:decbin(int $number)

十进制转换为八进制:decoct(int $number)

十进制转换为十六进制:dechex(int $number)

二进制转换为十六进制:bin2hex(int $number)

二进制转换为十进制:bindec(int $number)

八进制转换为十进制:octdec(int $number)

十六进制转换为十进制:hexdec(int $number)

任意进制转换:base_convert(string $number , int $frombase , int $tobase )返回number以tobase进制表示的字符串。number本身的进制由frombase指定。frombase 和 tobase 都只能在2 和36之间(包括2和36)

强制转换数据类型:

($type)$val : 表示把$val转化为$type指定的数据类型

settype($var,$type) : 将变量$valvar的类型设置成$type,返回是否成功的bool值。

floatval ( mixed $var )返回变量 var 的 float 数值。 var不能是数组或对象。

intval ( mixed $var [, int $base = 10 ] )获取变量的整数值并通过使用指定的进制 base 转换(默认是十进制),返回变量 var 的 integer 数值。 intval() 不能用于 object,否则会产生 E_NOTICE 错误并返回 1。如果 base 未指定,通过检测 var 的格式来决定使用的进制:

如果字符串包括了 "0x" (或 "0X") 的前缀,使用 16 进制 (hex);否则,如果字符串以 "0" 开始,使用 8 进制(octal);否则,将使用 10 进制 (decimal)。

strval ( mixed $var )返回 var 的 string 值。 var 可以是任何标量类型。不能将 strval() 用于数组或对象。

判断函数是否存在:function_exists(string $funcmane)

布尔型boolean(bool) :

对于其他类型我们可以使用(bool)$a或者(boolean)$a把$a进行强制转换成布尔类型。

其中int型0、float型0.0、空字符串或字符串"0"、空数组、null会被转换为false。

整型integer:

整型的范围-2147483647--2147483647 ,如果超过该值会自动转换成float型。

我们可以使用echo PHP_INT_SZIE输出integer的字长,和机器有关。echo PHP_INT_MAX输出integer的最大值。

PHP中没有整除运算 如果执行1/2会产生float的0.5 如果想实现整除效果,则可以使用 (int)(1/2)=0 或者使用round(25/7)=4。

对于其他类型我们可以使用(int)$a或者(integer)$a把$a进行强制转化成整型:

bool类型,ture 转换成1,false转换成0。

string类型所有不是以数组开始的数组都转换为0,以数字开始的字符串转换为开始的数字部分(字符串中间的数字不输出),如echo (int)"34abc4cd",输出34。

array类型空数组转换为0,其他数组转换为1。null类型转换为0.

mt_rand ( int $min , int $max )获取一个随机整数,该整数大于等于$min并且小于等于$max。 rand ( int $min , int $max )功能相同,但是运行生成速度慢,所以用mt_rand()代替

abs() 绝对值

floor(float $value)舍去法取整,返回不大于$value的最接近的整数,即舍去小数部分取整。

ceil(float $value ) 进一法取整,返回不小于$value的下一个整数,$value如果有小数部分则进一位。

round(float $val [, int $precision = 0]) 四舍五入,$precision为四舍五入以后的小数点后保留的位数

min() 求最小值或数组中最小值,如果仅有一个参数且为数组,返回数组中最小值。如果给出了两个或更多参数, 会返回这些值中最小值。

max() 求最大值数组中最大值

字符串string:

定义字符串的4种方法:

1.单引号

2.双引号

3.heredoc语法结构

4.nowdoc 语法结构(PHP5.3.0之后)

单引号定义了最原始的字符串,里面的所有内容都按字符串处理,如果字符串中包含单引号则用\转义

双引号定义的字符串会解析一些特殊字符(\n,\b)和变量(变量用一对{}包住),如果字符串中包含双引号则用\转义

heredoc语法:

<<<标示符

字符串

标示符

结束时的标示符必须在一行的开始位置前面不能有任何字符包括tab,可以在标示符后面添加一个分号,切分号前后也不能有tab或空格,否则PHP将无法解析该标示符,会继续向下查找标示符,如果在文件结尾前仍没有找到则会产生一个错误,而且标示符的定义格式也必须按照PHP定义的规则,只能包含数字,字母,下划线,并且不能以数字下划线开头。

heredoc就是一个没有使用双引号的双引号,就是里面可以包含双引号,且不用转义,而且可以解析特殊字符和变量。

nowdoc语法

<<<'标示符'

字符串本身

标示符

nowdoc的开始标示符必须使用单引号括起来,结束标示符和其他规则都和heredoc一样。

nowdoc就是没有使用单引号的单引号,nowdoc包含的字符串会原样输出,里面包含的特殊字符和变量不会被解析。

null类型:

null大小写不敏感,NULL类型只有一个取值,表示一个变量没有值,下面三种情况变量被认为为NULL

1.被赋值为NULL

2.尚未被赋值

3.被unset();

浮点型float:

sprintf("%.nf", $num);:把整形转化为浮点型并指定小数点后位数为n

最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。