## 关于变量的见解
PHP 变量
正如代数,PHP 变量可用于保存值(x=5)和表达式(z=x+y)。
变量的名称可以很短(比如 x 和 y),也可以取更具描述性的名称(比如 carname、total_volume)。
PHP 变量规则:
- 变量以 $ 符号开头,其后是变量的名称
- 变量名称必须以字母或下划线开头
- 变量名称不能以数字开头
- 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
- 变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
在代数中我们使用字母(比如 x)来保存值(比如 5)。
从上面的表达式 z=x+y,我们能够计算出 z 的值是 11。
在 PHP 中,这三个字母被称为变量。
关于变量我们在js就已经学习过,在js中变量分为:全局变量、局部变量。
在php中变量分为:全局变量、局部变量和静态变量。
以上的变量都可以在PHP脚本中的任何位置声明,但是声明变量的位置会大大影响访问变量的范围,这个可以访问的范围称作作用域。
1.局部变量
在函数内声明的变量,仅在函数内有效
<?php
function say(){
$name = "jj“;
echo $name;
}
say()//输出张三
2.全局变量
¥name="jj";
function say(){
$name="xx";
echo $name;
}
say();
echo $name;
//jj(先输出局部变量);
//xx(再输出局部变量);外部的全局变量不可在函数内部直接使用,但可以使用关键词‘global’声明使用全局变量。在函数内使用
global关键词是会改变比那辆在里面存放的值。
$name="jj";
function say(){
$name=xx;
echo $name;
}
say();
echo $name;
//输出jj(因为在say函数内部对局部变量$name进行赋值$name = jj,因为局部变量会屏蔽全局变量,因此此时赋值语句中两个$name都是局部变量,因为$name还没有初始化所以值为随机值)
静态变量
function text(){
static $n = 0;
$n++;
echo $n;
}
text();
text();
text();
//输出 1 2 3