您的位置:首页 > 编程语言 > PHP开发

痕迹_PHP基础语法——变量

2012-08-02 10:59 344 查看
变量
特性:php使用变量之前不需要声明。

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

手册例子:

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

<?php
//global 关键字
$a = 1;
$b = 2;

function Sum()
{
global $a, $b;
$b = $a + $b;
}

Sum();
echo $b;                    //输出 3
//超全局变量 $GLOBALS
$a = 1;
$b = 2;

function Sum()
{
$GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}

Sum();
echo $b;                    //输出  3
?>


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

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

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


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

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

实例理解

<?php
$var="hello";
$$var="world";
echo $var;          //输出 hello
echo $$var;        //输出 world
echo $hello;       //输出 world
?>


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

实例理解

<?php
$a=8;
$b=$a;
$a=9;               //此时$a的值改变,而$b的值任然为 8 没有改变

//然而,引用赋值可以避免产生这样的副本。

$a=8;
$b=&$a;
$a=9;               //此时$a和$b的值都改变为9
?>


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

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

<?php
function Test()
{
$a = 0;
echo $a;
$a++;
}

//本函数没什么用处,因为每次调用时都会将 $a 的值设为 0 并输出 "0"。将变量加一的 $a++ 没有作用,因为一旦退出本函数则变量 $a 就不存在了。要写一个不会丢失本次计数值的计数函数,要将变量 $a 定义为静态的:

//使用静态变量的例子

function Test()
{
static $a = 0;
echo $a;
$a++;
}
//现在,每次调用 Test() 函数都会输出 $a 的值并加一。
?>


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

<?php
function TdBackColor() {
static $ColorStr;
if ($ColorStr=="808080") {
$ColorStr="c0c0c0";
} else {
$ColorStr="808080";
}
return($ColorStr);
}
echo "<table border=1>\n";
for ($i=0; $i<10; $i++) {
$ColorStr=TdBackColor();
echo "<tr><td bgcolor=".$ColorStr.">这是第".$i."行</td></tr>\n";
}
echo "</table>";
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: