PHP 中的变量用一个美元符号 $ 后面跟变量名来表示。

命名规范

变量名区分大小写,一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。

<?php
$var = 'Bob';
$Var = 'Joe';
echo "$var, $Var";      // 输出 "Bob, Joe"

$4site = 'not yet';     // 非法变量名;以数字开头
$_4site = 'not yet';    // 合法变量名;以下划线开头
$i站点is = 'mansikka';  // 合法变量名;可以用中文
?> 

传值

变量默认总是传值赋值。这意味着,例如,当一个变量的值赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量。

<?php

$a = 'hello';
$b = $a;
$a = 'hi';

var_dump($a,$b);

执行结果为

string(2) "hi"
string(5) "hello"

说明传值赋值,不会因为原变量改变二改变

引用

PHP 也提供了另外一种方式给变量赋值:引用赋值。这意味着新的变量相当于原变量的别名,改动新的变量将影响到原始变量,反之亦然。

使用引用赋值,简单地将一个 & 符号加到将要赋值的变量前

<?php

$a = 'hello';
$b = &$a;
$a = 'hi';

var_dump($a,$b);

结果为

string(2) "hi"
string(2) "hi"

有一点重要事项必须指出,那就是只有有名字的变量才可以引用赋值。例如,&(2 * 3) 为非法形式。

<?php

$a = 'a';
$b = $$a;
$c = &$a;
$d = &$b;

$a = 'b';

var_dump($a,$b,$c,$d);

结果输出

string(1) "b"
string(1) "a"
string(1) "b"
string(1) "a"

定义变量

PHP 提供了大量的预定义变量。其中一些变量依赖于运行的服务器的版本和设置,及其它因素。

  • $GLOBALS — 引用全局作用域中可用的全部变量
  • $_SERVER — 服务器和执行环境信息
  • $_GET — HTTP GET 变量
  • $_POST — HTTP POST 变量
  • $_FILES — HTTP 文件上传变量
  • $_REQUEST — HTTP Request 变量
  • $_SESSION — Session 变量
  • $_ENV — 环境变量
  • $_COOKIE — HTTP Cookies
  • $php_errormsg — 前一个错误信息
  • $HTTP_RAW_POST_DATA — 原生POST数据
  • $http_response_header — HTTP 响应头

以下预定义变量只在命令行执行的时候生效

  • $argc — 传递给脚本的参数数目
  • $argv — 传递给脚本的参数数组

变量范围

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。