php变量定义规则
- 变量必须以$符号开头,后面接变量名
- 变量名必须以字母或者下划线开头
- 变量名只能包含字母数字和下划线(A-z,0-9和_)
- 变量名不能包含空格
- 变量名区分大小写
创建变量
在php中,不必事先声明变量,在给变量赋值的时候被创建
<?php
$txt = 'Hello,world'; //在给文本赋值的时候要加上引号
$x = 5;
$number = 5.5;
?>
- 1
- 2
- 3
- 4
- 5
通过上面的变量赋值可以看出,没有对变量声明数据类型,这是因为php是一门弱类型的语言,php会自动把变量转换为正确的数据类型
php变量作用域
变量的作用域是脚本中变量可被引用/使用的范围,共有四种
- local
- global
- static
- paramter
全局作用域和局部作用域
在所有函数外部定义的变量,拥有全局作用域global;在函数内部定义的变量用于局部作用域local。全局变量可以被脚本的任何位置访问,但在函数内部访问全局变量要使用global关键字。而局部变量只能在函数内部进行访问。
<?php
$x = 2;
function test(){
$y = 3;
echo $x;
echo "<br>";
echo $y;
echo "<br>";
}
test();
echo $x;
echo "<br>";
echo $y;
上面的代码中,当调用test()函数时,会输出两个变量的值,函数会输出局部变量$y
的值,但是不能输出全局变量$x
的值。
而在函数外输出的两个变量的值中,会输出变量$x
的值,但是不能输出$y
的值,因为$y
是局部变量,不能在函数外部访问。
函数内部访问全局变量
在函数内部访问全局变量,要使用global关键字
<?php
$x = 1;
function test(){
global $x;
$y = 2;
echo $x+$y;
}
test(); //输出3
?>
static作用域
当一个函数调用完后,它的所有变量都会被删除,如果想要某个局部变量不被删除,那么可以使用static关键字
<?php
function test(){
$x = 0;
echo $x;
$x++;
}
test(); //输出0
test(); //输出0
test(); //输出0
?>
<?php
function test(){
static $x = 0;
echo $x;
$x++;
}
test(); //输出0
test(); //输出1
test(); //输出2
?>
parameter 参数作用域
参数是通过调用代码将值传递给函数的局部变量,参数是在参数列表中声明的,作为函数声明的一部分。
<?php
function test($x){
echo $x;
}
test(1); //输出1
test(2); //输出2
?>