2.1 PHP变量简介
PHP变量可以被赋予某个值或者表达式。
PHP变量规则:
- 变量以
$
符号开始,后面紧跟变量名。 - 变量名必须以字母或者下划线开始。
- 变量名只能包含字母、数字和下划线,不能包含空格。
- 变量名区分大小写。
<?php
$x = 5; //为PHP变量赋予某个值
$y = 6;
$z = $x + $y; //为PHP变量赋予某个表达式
?>
2.2 创建PHP变量
PHP没有声明变量的命令,变量在第一次赋值时被创建。
PHP是一门弱类型语言,即我们在创建变量时不需要生命该变量的数据类型(在强类型语言中,我们必须在使用变量前声明变量的数据类型和名称),PHP会根据变量的值,自动把变量转换为正确的数据类型。
<?php
$str = "Hello World!";
$x = 4;
$y = 2.5;
?>
2.3 PHP变量的作用域
变量的作用域是脚本中变量可被引用/使用的部分。
PHP有四种不同的变量作用域:
- local
- global
- static
- parameter
2.3.1 局部和全局作用域
-
所有定义在函数外部的变量,拥有全局作用域。除了函数内部之外,全局变量可以被脚本中的任何部分访问。要在函数内部访问一个全局变量,必须使用
global
关键字。 -
在PHP函数内部声明的变量是局部变量,仅能在函数内部访问。
<?php
$x = 5; // x为全局变量
function myTest() {
$y = 10; // y为局部变量
global $x; // 要在函数内部使用全局变量x, 必须使用global关键字
$z = $x + $y;
}
?>
2.3.2 static作用域
当一个函数完成时,它的所有变量通常都会被删除。如果希望某个局部变量在函数结束后不被删除,可以使用static
关键字来修饰它(该变量仍然是局部变量)。
然后,在每次调用该函数时,该变量将会保留着函数上一次调用结束时的值。
<?php
function fun() {
static $x = 0;
echo $x;
x++;
echo PHP_EOL; //换行
}
fun();
fun();
fun();
/*
* 输出:
* 0
* 1
* 2
*/
?>
2.3.3 参数作用域
参数是通过调用代码将值传递给函数的局部变量。
<?php
function fun($x) {
echo $x;
}
?>