1. 形式: $ Name 其中Name的形式是 以_ 或者字母开头 后跟 _ 字母 数字 。
变量名称区分大小写,但是函数名称不区分大小写。
2.变量赋值
eg. (普通的变量赋值 变量间的赋值)
$a = "我是小a";
$b = $a;
$a = "我变化了";
echo $b;
结果:我是小a
eg.(引用赋值 。 注意 一个变化 另外一个跟着变 。 所谓引用就是起个别名, 其实是一个东西)
$a = "我是小a";
$b = &$a;
$a = "我变化了";
echo $a."<br/>";
echo $b;
OR
$a = "我是小a";
$b = &$a;
$b = "我变化了";
echo $a."<br/>";
echo $b;
结果一样:
我变化了
我变化了
3.根据作用域分类
全局变量:所有函数以外的变量,不能在用户自定义函数内部使用,若想用,使用global关键字声明或者全局数组$golbals访问。
局部变量:作用域是函数内部。
静态变量:static声明变量。作用同c的一样。
例子
函数内部访问全局变量的例子
<?php
$name = 'Ramsey';
function print_and_change_name()
{
global $name;
echo "<p>{$name}<p>";
$name='Heather';
}
print_and_change_name();
print_and_change_name();
?>
结果:
Ramsey
Heather
超全局数组实现全局变量的内部访问
<?php
$name = 'Ramsey';
function print_and_change_name()
{
//global $name;
echo "<p>{$GLOBALS['name']}<p>";
$GLOBALS['name']='Heather';
}
print_and_change_name();
print_and_change_name();
?>
注意:$GOLBALS要大写。
静态变量的例子
function print_alias($alias)
{
static $number_of_aliases = 1;
echo "{$number_of_aliases}.{$alias} \n";
$number_of_aliases ++;
}
echo "<pre>";
print_alias('Eli');
print_alias('HyPeR aCtIve');
print_alias('Thl Siegfried Sebastian Faust');
echo "</pre>";
结果:
1.Eli
2.HyPeR aCtIve
3.Thl Siegfried Sebastian Faust
4.可变变量
使用一个变量的值作为另一个变量的名称。
eg.
<?php
$a="b";
$b="php教程";
echo $$a;
?>
结果:php教程
可利用可变变量形成关联
$favorite_color = 'blue';
$favorite_weapon = 'crossbow';
$favorite_drink = 'bourbon';
$favorite_things = array('color','weapon','drink');
foreach($favorite_things as $thing)
{
echo '<p>',$thing,'=',${"favorite_{$thing}"},'</p>';
}
结果:
color=blue
weapon=crossbow
drink=bourbon
5.简单的一些变量的判别函数
$bool = isset($variable); // 是否赋值 赋值但不为null返回true
$bool = empty($variable); // 是否为空 赋值但是为null或者0返回true
unset($variable); //清楚值并销毁变量
$success = settype($variable,$type); // 强制类型转换
$newvar = (Type) $oldvar; //数值转换成指定类型
6.变量的比较
eg.当我们要找到字符串中某个字符的为止时候,找不到会返回false,但是有时函数会返回0. 那么此时就会无法区分是为止0还是false。
因此 引入=== 和 !== 代替== 和!= .
7.预定义变量
$_SERVER['SERVER_ADDR'] 当前运行脚本所在服务器ip
$_SERVER['SERVER_NAME'] 当前脚本运行在的主机名或者虚拟机名
$_SERVER['REQUEST_METHOD'] 访问页面时的请求方法 。GET HEAD POST PUT......
$_SERVER['REMOTE_ADDR'] 正在浏览当前页面的用户IP
$_SERVER['REMOTE_HOST] 正在浏览当前页面用户的主机名。反向域名解析基于该用户的REMOTE_ADDR
$_SERVER['REMOTE_PORT] 用户连接到服务器时候所使用的端口
$_SERVER[SCRIPT_FILENAME] 当前执行脚本的绝对路径名
$_SERVER['SERVER_PORT'] 服务器所使用的端口,默认为80 若为ssl连接 端口为用户设定的http端口
$_SERVER['SERVER_SIGNATURE'] 包含服务器版本和虚拟主机名的字符串
$_SERVER['DOCUMENT_ROOT'] 当前运行脚本的文档根目录,在服务器配置文件中定义
$_FILES[filename][name] 上传文件的文件名
$_FILES[filename][size] 文件大小 单位为字节
$_FILES[filename][tmp_name] 文件上传时首先在临时目录中被保存成一个临时文件,该变量为临时文件名
$_FILES[filename][type] 上传文件类型
$_FILES[filename][error] 上传文件结果 上传成功返回0
$_COOKIE 通过HTTPCookie传递到脚本的信息。 这些cookie多数是由执行php脚本时通过setcookie()函数设置的。
$_SESSION 包括与所有会话变量有关的信息。 $_SESSION变量主要用于会话控制和页面之间的传递。
$_POST 包含通过POST方法传递的参数的相关信息。主要用于获取通过POST方法提交的数据。
$_GET 包含通过GET方法传递的参数的相关信息。主要用于获取通过GET方法提交的数据。
$GOLBALS 由所有已定义全局变量组成的数组。变量名就是该数组的索引。