一、变量
在程序执行期间可以变化,用于临时存储值的容器
1、变量命名规范
- 必须以美元符号($)开头
- 必须字母或下划线开头,后跟任意数量的字母、数字或下划线。
- 美元符后不能紧跟数字
- 严格区分大小写(内置结构、关键字和用户自定义的类名、函数名不区分),
$name
和$Name
是不同的变量 - 可以不声明直接使用
常用的命名模式:小驼峰$firstName
或大驼峰$FirstName
或下划线$first_name
打印变量
$var = 'Bob';
$Var = 'Joe'; //变量名区分大小写,$var和$Var是不同的变量
$4site = 'not yet'; // 非法变量名;以数字开头
$_4site = 'not yet'; // 合法变量名;以下划线开头
$i站点is = 'mansikka'; // 合法变量名;可以用中文,但是尽量不要这么用,会出现各种莫名其妙的问题
2、可变变量
可变变量允许我们动态地改变一个变量的名称。这个特性的工作原理是用一个变量的值作为另一个变量的名称。
$name = 'jack';
$$name = '聂哥';
echo $name,$jack;
//$jack 等价 $$name
3、 变量的引用
3.1 不引用的情况
$a = "str";//定义一个变量
$b = $a; //赋值给$b
原理是会将变量$a
复制拷贝一份,也就是内存中重新申请一个地址存储变量$b
了
3.2 使用引用
指一个变量有多个名字,可以用不同的名字访问或操作同一个变量的内容,当改变其中一个变量的值时,另一个变量也跟着变化,引用赋值使用&符合
$a = "str";
$b = & $a;
使用引用,PHP引擎不会拷贝一份变量,其实就是将指针指向了$a
在内存中的地址,$b
中就是保存了这个指针。
unset只会删除变量,并不会清空变量值对应的内存空间.只有当指向该变量的所有变量(如引用变量)都被销毁后,才会释放内存 延伸阅读:https://www.cnblogs.com/hongfei/archive/2012/07/05/2578120.html
4、预定义变量
-
4.1 $_SERVER:大量与服务器相关的信息
- $_SERVER['SCRIPT_FILENAME']:运行脚本的完整路径和名称
- $_SERVER['HTTP_USER_AGENT']:代表访问该脚本的用户的web浏览器和操作系统
- $_SERVER['SERVER_SOFTWARE']:php运行的程序(Apache|IIS|Nginx)
$file = $_SERVER['SCRIPT_FILENAME']; $user = $_SERVER['HTTP_USER_AGENT']; $server = $_SERVER['SERVER_SOFTWARE'];
- 4.2、$_GET: — HTTP GET 变量
- 4.3、$_POST: — HTTP POST 变量
- 4.4、$_FILES — HTTP 文件上传变量
- 4.5、$_REQUEST — HTTP Request 变量
- 4.6、$_SESSION — Session 变量
- 4.7、$_ENV — 环境变量
- 4.8、$_COOKIE — HTTP Cookies
- 4.9、$php_errormsg — 前一个错误信息
- 4.10、$HTTP_RAW_POST_DATA — 原生POST数据
- 4.11、$http_response_header — HTTP 响应头
- 4.12、$argc — 传递给脚本的参数数目
- 4.13、$argv — 传递给脚本的参数数组
5、相关函数
5.1 isset
检测一个变量是否有定义
isset($name);
isset($_GET['name']);