变量特点
弱类型,值传递与引用传递,动态变量名(可变变量,变量标识符可以来自另一个变量的值)
检测与删除
isset():检测变量是否存在且值非null
unset():删除变量,无返回值
empty():是否为空,空字符串,空数组,null,false都为空
is_null():null/赋值为null,未赋值/unset()
数据类型
变量访问方式受到以下限制:数据类型,作用域,生命周期
1.基本类型
整数(int)、浮点数(float)、字符(string)、布尔(boolean)
2.复合类型
对象(object)、数组(array)
3.特殊类型
空(null)、资源(resource)
类型查询可用检测函数is_int()等返回布尔值或者gettype()返回类型
类型转换
1.自动转换
一般只发生在基本类型参与的算术或字符串运算中,表达式根据操作符将操作数转为一致的数据类型
2.强制转换
分为临时转换和永久转换,临时转换可使用类型提示符((int)或类型函数(intval()…);永久转换使用函数settype($var, $type)
作用域
- 变量作用域,也叫”变量范围”, 即定义变量时的上下文环境,通俗的说,就是变量的生效范围
- 一个变量必定属于一个作用域, 这个作用域也包括了当前作用域中引入其它文件,也有不受作用域限制的变量,例如超全局变量, 在程序中任何地方都是有定义的
- 函数作用域: php 中只有函数可以创建作用域, 函数之外的代码全部在全局空间中
php中没有块作用域
根据作用域不同,变量可以分为三类:
私有变量,函数中定义的变量
- 全局变量,函数之外的变量
-
静态变量
当多次调用同一函数,且要求每次调用之间共享或保留某些变量的时候
- 尽管全局变量也可以办到,但没必要, 采用局部静态变量更合适
变量过滤器
用于验证和过滤来自非安全来源的外部数据(表单,cookie,服务器变量,web服务数据,数据库查询结果)预定义常量
