痕迹_PHP基础语法——变量

ぃ、小莉子 提交于 2020-04-07 13:05:42

变量
特性:php使用变量之前不需要声明。

1.变量范围
一般,声明的变量(不在函数内)范围为声明处到页面文件结束。不受<?php ?>标签和include和require引入文件的限制。其中,COOLIE和SESSION可以多页面中使用。

手册例子:

全局变量与局部变量范围简单理解

 1 <?php
 2 //global 关键字
 3 $a = 1;
 4 $b = 2;
 5 
 6 function Sum()
 7 {
 8     global $a, $b;
 9     $b = $a + $b;
10 }
11 
12 Sum();
13 echo $b;                    //输出 3
14 //超全局变量 $GLOBALS
15 $a = 1;
16 $b = 2;
17 
18 function Sum()
19 {
20     $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
21 }
22 
23 Sum();
24 echo $b;                    //输出  3
25 ?> 

注意:在变量前面加上 global 的名称,就是定义该变量为全局变量。用这种方式,就不需使用 $GLOBALS 数组,也能让变量进入自行开发的函数中。

2.变量命名(标识符是变量的名称)
(1).长度任意,字母、数字、下划线组成
    注意:不能以数字开头
(2).变量名严格区分大小写,而内置结构和关键字及类名函数名都不区分大小写。

 1 <?php
 2     //以下三个变量是三个不同的变量
 3    $abc="111";
 4     $Abc="222";
 5     $ABC="333";
 6     //如echo  的大小写意义相同,都输出  444
 7     echo "444";
 8     Echo "444";
 9     ECHO "444";
10 ?>

(3).变量名称可以与函数名称相同(不推荐这样使用),但函数之间不能同名。

3.可变变量(动态改变一个变量的名称)

实例理解

1 <?php
2     $var="hello";
3     $$var="world";
4     echo $var;          //输出 hello
5     echo $$var;        //输出 world
6     echo $hello;       //输出 world
7 ?>

4.变量的引用赋值——&
    通常,再将一个变量的值赋给另一个变量的时候,先产生原变量的一个副本,然后再将它保存在内存的其他地方。

实例理解

 1 <?php
 2     $a=8;
 3     $b=$a;
 4     $a=9;               //此时$a的值改变,而$b的值任然为 8 没有改变
 5 
 6     //然而,引用赋值可以避免产生这样的副本。
 7 
 8    $a=8;
 9     $b=&$a;
10     $a=9;               //此时$a和$b的值都改变为9
11 ?>

注意:引用像一个别名、指向,而不是一个指针。$a和$b都指向了内存的相同的地址。

(5).静态变量使用
函数在执行时所产生的变量,在函数结束时就消失了,有时因为程序的需要,函数在循环中,当不希望变量在每次执行完函数就消失的话,静态变量 (staticvariable) 就派上用场了
手册例子:
演示需要静态变量的例子

 1 <?php
 2 function Test()
 3 {
 4     $a = 0;
 5     echo $a;
 6     $a++;
 7 }
 8 
 9 //本函数没什么用处,因为每次调用时都会将 $a 的值设为 0 并输出 "0"。将变量加一的 $a++ 没有作用,因为一旦退出本函数则变量 $a 就不存在了。要写一个不会丢失本次计数值的计数函数,要将变量 $a 定义为静态的: 
10 
11 //使用静态变量的例子
12 
13 function Test()
14 {
15     static $a = 0;
16     echo $a;
17     $a++;
18 }
19 //现在,每次调用 Test() 函数都会输出 $a 的值并加一。
20 ?>  

再看一个比较实际的例子,它是处理表格的颜色,让隔行的颜色不同。

 1 <?php
 2 function TdBackColor() {
 3   static $ColorStr;
 4   if ($ColorStr=="808080") {
 5     $ColorStr="c0c0c0";
 6   } else {
 7     $ColorStr="808080";
 8   }
 9   return($ColorStr);
10 }
11 echo "<table border=1>\n";
12 for ($i=0; $i<10; $i++) {
13   $ColorStr=TdBackColor();
14   echo "<tr><td bgcolor=".$ColorStr.">这是第".$i."行</td></tr>\n";
15 }
16 echo "</table>";
17 ?>

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!