4.PHP 教程_PHP 变量

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 ?>

 

posted @ 2015-08-04 21:14  wboli  阅读(233)  评论(0编辑  收藏  举报