PHP的变量

一、变量

在程序执行期间可以变化,用于临时存储值的容器

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']);