var_dump()
- var_dump(); 该功能可以直接将数据的值和类型显示出来
- 优点:既可以查看变量类型也可以查看值
- 缺点:类型和值的结果无法被接收,后续代码无法使用
gettype()
获取数据类型
<?php $int = 10; $res = gettype($int); var_dump($res); //integer
可以返回的字符串类型关键字
- "boolean"
- "integer"
- "double" 由于历史原因,如果是float则返回"double",而不是"float"
- "string"
- "array"
- "object"
- "resource"
- "NULL"
优点:可以获取任何数据的类型,获取之后可以给下方的程序使用
缺点:功能强大导致效率低下,需要逐个匹配类型is系列的检测变量的方式效率比较高
- is_int() is_integer()
- is_float() is_double()
- is_string()
- is_bool()
- is_object()
- is_array()
- is_resource()
- is_null()
- is_numeric() 检测数据是否是数字(整型、浮点型、字符串)
- is_scalar() 检测数据是否是标量(整型、浮点型、字符串、布尔型)
is_函数的优缺点
- 优点:检测效率高,并且也可以检测到结果
- 缺点:功能单一
数据类型的转换
PHP是一门弱类型的语言
- 八种数据可以转换,而且不需要人工干预
数据类型转换的分类
- 自动数据类型转换(隐形数据转换)
- 强制数据类型转换(显性)
自动数据类型转换
<?php $str = '999'; $int = 1; $res = $str + $int; var_dump($res); // int 1000 $a = true; $b = 10; $res = $a + $b; var_dump($res); //int 11
- 自动数据类型转换不需要人工的干预
- 自动类型发生在运算或者判断过程中
- 自动类型转换仅限标量
- 在类型转换过程中一般是向着更精确的数据进行转换
<?php $int = 10; $float = 3.14; $res = $int + $float; var_dump($res); //float 13.14
强制数据类型转换
一共分三种方法
- 使用语言结构的方式修改变量的类型
$var = 250; echo '原类型'; var_dump($var); //进行转换 $newVar = (string)$var; //int 250 $newVar = (float)$var; //float 250 echo '新类型'; var_dump($newVar);
可以转换的类型和关键字
- 整型 (int) (integer)
- 浮点型(float) (double)
- 布尔值(bool)(boolean)
- 数组(array)
- 对象(object)
- 字符串(string)
- 资源---无法转换
- 空---无法转换
使用指定类型的转换功能
只有这三种
- strval()
- floatval()
- intval()
$var = 5.03; $res = intval($var); var_dump($res); //int 5 $a = '11你好'; $res = floatval($a); var_dump($res); //float 11 $b = '你好11'; $res = intval($b); var_dump($res); //int 0
字符串转换规则
字符串->数值
- 如果是纯数字字符串,转换之后只改变类型
通用类型转换功能
settype()
除了资源类型都可以转换
$var = 'nihao'; $res = settype($var,'int'); var_dump($res); //true->代表转换成功 var_dump($var);//int 0;
- int integer
- float double
- string
- boolean bool
- array
- object
- null
返回值:成功返回true,失败返回false;
能转换布尔值为false的情况
- 整型 0
- 浮点型 0.0
- 字符串 ''和'0'
- 布尔型 false
- 数组 array()
- 对象 都是真
- 资源 都是真
- 空 null
PHP中的常量
什么是常量
- 通常不会改变的量就是常量
常量如何声明
- Define(‘常量名’,’常量值’,[true|false]);
- b)注意:第三个参数是可选参数,默认为false,表示常量名严格区分大小写,如果设置为true表示不区分大小写。
注意事项
- 常量名开头不可以使用$
- 声明常量不要使用中文,可以使用英文,推荐大写
- 可以使用数字,但是不能以数字开头
- 不可以使用特殊字符,除了下划线
- 常量命名要有意义
- 常量是否区分大小写,由define的第三个参数决定,true是不区分大小写,默认是false,区分大小写
常量值 - Php版本\<7,常量的值仅能在标量中选取
- Php版本>=7,常量的值仅能在标量或者数组中选取
常量的特点
- 常量一旦定义就不可以在改变其值
- 常量习惯上使用大写
- 常量如果声明就要有值,如果不声明就将该常量名称当做字符串来处理
Php版本>5.3之后可以使用
使用const关键字声明常量
格式:const 常量名 = 常量值
该方式只有声明方式和define不同,其他规则都相同
区别
const不能再流程控制中定义,而define可以定义
只要不是在类中声明常量其他地方都使用define
如果在类中声明常量则使用const
系统中自带的魔术常量
- FILE 表示当前文件相对于系统的绝对路径
- LINE 表示当前常量所在的行
- FUNCTION 可以在函数中获取当前函数的名称
- CLASS 表示当前常量所在的class(类)的名称
- METHOD 表示当前常量所在的类和方法名
常量相关的几个功能
constant() 获取一个常量值的功能
作用:当一个常量名是一个字符串的时候,才能发挥constant的作用
返回常量值 = constant(‘字符串类型的常量名’)
- get_defined_constants() 获取当前定义的所有常量集合,返回一个数组(了解级别)
- Defined() 检测一个常量是否被定
格式:返回结果变量 = defined(‘要检测的常量名’)
返回值:如果该常量已经被定义则返回true;
如果该常量没有被定义则返回false;
© 著作权归作者所有
发表评论