定义与赋值
$变量名=值;
$this 特殊变量,不能被赋值。
$var = 100; $中国 = '中华人民共和国'; //合法,但不推荐使用中文定义变量名。1个中文占3个字节。
变量名
- 区分大小写
- 由字母或下划线开头,后跟任意数量字母、数字、下划线
- 正则表达式: ^[a-zA-Z][_]?[\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
传值方式
当一个变量的值赋给另一个变量时:
值传递(默认):改动新变量的值不会影响原始变量。
引用传递(&):改动新变量的值会影响原始变量 。有名字的变量才可以引用赋值。
$num = & 5;//Parse error: syntax error,脚本中止运行。
未初始化变量默认值
未初始化变量的默认值:NULL
未初始化布尔类型变量的默认值:false
未初始化字符串类型变量的默认值:空字符串
未初始化整型类型变量的默认值:0
未初始化浮点类型变量的默认值:0
如使用以上未初始化变量,会报错:Notice: Undefined variable,同时输出相应的值
未初始化对象类型变量的默认值:标准类stdClass对象实例
如使用以上未初始化变量,会报错:Warning: Creating default object from empty value,同时输出相应的值
未初始化数组类型变量的默认值:空数组
如使用以上未初始化变量,不会报错。
作用域
局部变量:函数内。如需使用全局变量,方法一:通过global引入,此时是引用的方式。方法二:使用$GLOBALS超全局变量(数组)
全局变量:函数外。
超全局变量:函数内+函数外。
预定义变量
许多依赖于运行的服务器的版本和设置。
一些预定义变量在 PHP 以命令行形式运行时并不生效。
$GLOBALS 引用全局作用域中可用的全部变量
$_SERVER — 服务器和执行环境信息
$_GET — HTTP GET 变量
$_POST — HTTP POST 变量
$_FILES — HTTP 文件上传变量
$_REQUEST — HTTP Request 变量
$_SESSION — Session 变量
$_COOKIE — HTTP Cookies
可变变量
一个变量的变量名又是另一个变量。
静态变量(static)
函数内,函数执行完毕其值不会消失,此时的静态变量属于引用的方式。
判断变量是否已初始化(存在)
isset() //判断一个变量是否已被初始化
确定变量类型
gettype() is_array() is_float() is_int() is_object() is_string()