注册 登录

清河洛

PHP中的数据类型

qingheluo2016-12-16清河洛348
boolean(bool):布尔型:true,falsestring:字符串型:字符串长度取决于机器内存integer(int):整型:2147483648和-2147483647之间float:浮点型:最大值1.8e308object:对象array:数组resourse:资源句柄null:空值gettype() 函数查看变量类型var_dump()函数可以输出某个变量的数据类型和具体的值isset()和用来判断一个变量是否存在,返回的是布尔值true或falseunset()销毁指定的变量empty()用来判断一个变量的值是否为空,如果为空则为true否则为false。换句话说,""...

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

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

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

float:浮点型:最大值1.8e308

object:对象

array:数组

resourse:资源句柄

null:空值

gettype() 函数查看变量类型

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 转换(默认是十进制),返回变量的integer 数值。

intval() 不能用于 object,否则会产生 E_NOTICE 错误并返回 1。如果 base 未指定,通过检测 var 的格式来决定使用的进制:
如果字符串包括了 "0x" (或 "0X") 的前缀,使用 16 进制 (hex)
如果字符串以 "0" 开始,使用 8 进制(octal)
否则,将使用 10 进制 (decimal)

strval ( mixed $var )返回 var 的 string 值。 不能将strval()用于数组或对象

判断函数是否存在

function_exists(string $funcmane)

布尔型boolean(bool)

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

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

整型integer

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

常量PHP_INT_SZIE输出integer的字长,和机器有关

常量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.双引号:定义的字符串会解析一些特殊字符(\n、\t等)和变量(用一对{}包住)

3.heredoc语法结构

<<<标示符
字符串
...
标示符

结束时的标示符必须在一行的开始位置前面不能有任何字符包括tab

可以在标示符后面添加一个分号,且分号前后也不能有tab或空格,否则PHP将无法解析该标示符,会继续向下查找标示符

如果在文件结尾前仍没有找到则会产生一个错误,而且标示符的定义格式也必须按照PHP定义的规则,只能包含数字,字母,下划线,并且不能以数字下划线开头

heredoc就是一个没有使用双引号的双引号,可以解析特殊字符和变量

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

<<<'标示符'
字符串本身
...
标示符

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

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

null类型

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

1.被赋值为NULL
2.尚未被赋值
3.被unset()


网址导航