|
PHP 变量
变量是用于存储信息的"容器":
1 <?php
2 $x = 5;
3 $y = 6;
4 $z = $x + $y;
5 echo $z;
6 ?>
与代数相似
x=5
y=6
z=x+y
在代数中,我们使用字母(如x),并给它赋值(如5).
从上面的表达数z=x+y,我们可以计算z的值为11.
在PHP中,这些字母被称为变量
PHP变量
与代数相似,可以给PHP变量赋予某个值(x=5)或者表达式(z=x+y).
变量可以是很短的名称(如x和y)或者更具描述性的名称(如age、camame、totalvolume).
PHP变量规则:
- 变量以$符号开始,后面跟着变量的名称
- 变量名必须以字母或者下划线字符开始
- 变量名只能包含字母数字字符以及下划线(A_z、0-9和_)
- 变量名不能包含空格
- 变量名是区分大小写的($y和$Y是连个不同的变量)
创建(声明)PHP变量
PHP没有声明变量的命令.
变量在您第一次赋值给它的时候被创建:
1 <?php
2 $txt = "Hello World!";
3 $x = 5;
4 $y = 10.5
5 ?>
在上面的语句执行中,变量txt将保存值Hello World!,且变量x将保存值5.
注释:当您赋一个文本值给变量时,请在文本值两侧加上引号.
PHP是一门弱类型语言
在上面的实例中,我们注意到,不必向PHP声明该变量的数据类型.
PHP会根据变量的值,自动把变量转换为正确的数据类型.
在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称.
PHP变量作用域
变量的作用域是脚本中变量可被引用/使用的部分.
PHP有四种不同的变量作用域:
- local
- global
- static
- parameter
局部和全局作用域
在所有函数定义的变量,拥有全局作用域,除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用global关键字.
在PHP函数内部声明的变量是局部变量,仅能在函数内部访问:
1 <?php
2 $x = 5; //全局变量
3 function myTest(){
4 $y = 10; //局部变量
5 echo "<p>Test variables inside the function:</p>";
6 echo "Variable x is:$x";
7 echo "<br>";
8 echo "Variable y is :$y";
9 }
10 myTest();
11 echo "<p>Test variables outside the function:<p>";
12 echo "Variable x is: $x";
13 echo "<br>";
14 echo "Variable y is: $y";
15 ?>
在以上实例中myTest()函数定义了$x和$y变量.$x变量在函数外声明,所以它是全局变量,$y变量在函数内声明所以它是局部变
量.
当我们调用myTest()函数并输出两个变量的值,函数将会输出局部变量$y的值,但是不能输出$x的值,因为$x变量在函数外定义,无
法在函数内使用,如果要在一个函数中访问一个全局变量,需要使用global关键字.
然后我们在myTest()函数外输出两个变量的值,函数将会输出全局变量$x的值,但是不能输出$y的值,因为$y变量在函数中定义,
属于局部变量.
PHP global关键字
global关键字用于函数内访问全局变量.
在函数中调用函数外定义的全局变量,我们需要在函数中的变量前加上global关键字:
1 <?php
2 $x = 5;
3 $y = 10;
4 function myTest(){
5 global $x,$y;
6 $y = $x+$y;
7 }
8 myTest();
9 echo $y; //输出15
10 ?>
PHP将所有全局变量存储在一个名为$GLOBALS[index]的数组中.index保存变量的名称.这个数组可以在函数内部访问,也可以直接用来更新全局变量.
上面的实例可以写成这样
1 <?php
2 $x = 5;
3 $y = 10;
4 function myTest(){
5 $GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
6 }
7 myTest();
8 echo $y;
9 ?>
Static作用域
当一个函数完成时,它的所有变量通常都会被删除.然而,有时候您希望某个局部变量不要被删除.
要做到这一点,请在您第一次声明变量时使用static关键字:
1 <?php
2 function myTest(){
3 static $x = 0;
4 echo $x;
5 $x++;
6 }
7 myTest();
8 myTest();
9 myTest();
10 ?>
然后,每次调用该函数时,该变量将会保留着函数前一次被调用时的值.
注释:该变量仍然是函数的局部变量.
参数的作用域
参数是通过调用代码将值传递给函数的局部变量.
参数是在参数列表中声明的,作为函数声明的一部分:
1 <?php
2 function myTest($x){
3 echo $x;
4 }
5 myTest(5);
6 ?>
|
|
|