PHP 变量

变量名组成

$ 所有变量名前必须加 $ 字符
数字 变量不能以数字开头
大写字母、小写字母 区分大小写
下划线、ASCII 127-255

变量定义:

var $name; 定义一个变量
$name = "tc"; 直接使用变量
global $name; 在函数内部,使用函数外部变量,需用 global 说明。
$arr = array(1,2,3); 定义一维数组
$arr = array("a"=>1,"b"=>2,"c"=3) 定义一维带关键字的数组
$arr = array("somearray" => array(6 => 5, 13 => 9, "a" => 42)) 定义多维带关键字的数组

变量检测与取消:

语法 意义
isset("abc") 检测变量(POST参数、COOKIE、SESSION 等)是否存在
unset("abc") 取消变量定义

数组定义

$arr = array( [key=>] value, ... );

$arr = array( key=> array([key=>] value, ...) );

示例:

<?php
   $arr = array("foo" => "bar",12 => true)
   echo $arr["foo"]; // bar
   echo $arr[12];    // 1

      
   echo $arr["somearray"][6];    // 5
   echo $arr["somearray"][13];   // 9
   echo $arr["somearray"]["a"];  // 42
?>

解析字符串的变量

在以 " " 双引号为界字符串中,若包含 "$" 字符,系统认为是变量名,自动换成变量值。

$beer = 'Heineken';  //单变量
echo "$beer's taste is great";        // 能解析,单引号不在变量可用字符内
echo "He drank some $beers";          // 不能解析,没有匹配的变量名
echo "He drank some ${beer}s";        // 能解析
echo "He drank some {$beer}s";        // 能解析
 
$fruits = array('strawberry'=> 'red', 'banana' => 'yellow'); //数组变量
echo "A banana is $fruits[banana].";     //能解析
echo "A banana is {$fruits['banana']}."; //能解析
echo "A banana is {$fruits[banana]}.";   //能解析
echo "A banana is $fruits['banana'].";   //不能解析,无需单引号
echo "A banana is " . $fruits['banana']; //能解析
echo "This square is $square->width meters broad.";//能解析

特殊用法

宏替换功能 $a = "b";

$$a = "c"; // 相当于 $b = "c";

字符串变成函数指针使用 function abc() { ... }

$fun = "abc";

$fun(); // 把变量的值当作函数指针使用