PHP一些常用变量,数组等定义

变量的定义方法

  1. 用“$”加一个变量名即可,如$a,$var_name
  2. 变量名只能由英文字母(A-Z,a-z)、数字(0-9)和下划线构成
  3. 变量名是区分大小写的,即$VAR_NAME和$var_name就是两个不同的变量
  4. 变量声明或者赋值结束时必须用一个分号结束;

声明一个整型变量:    $x=100;
声明一个字符型变量: $str=”Iam a Chinese!”;
声明一个布尔型变量: $bool=true;
在网页中使用变量。
例,我们要在网页中显示一句话,“我是一个中国人”,”我今年28岁了”。

1 <?php
2 $str="我是一个中国人";
3 $age=28;
4 echo$str."<br>";
5 echo"我今年".$age."岁了";
6 ?>

第2行$str=”我是一个中国人";,定义一个字符串变量str,它的值是"我是一个中国人"。
第3行$age=28;,定义一个整型变量age,并给它赋值为28。
第4行echo$str."<br>";,echo是PHP中用来输出的关键字,跟随在它后面的内容表明是需要输出的内容,即$str是需要输出的变量,而在$str后的.是用来连接多个变量或变量与一般内容的标记,在这里表明$str后就将显示一个换行符号<br>。
第5行echo"我今年".$age."岁了";,这句话的理解方式与第4行相同。即将“我今年28岁了”这句话分成3部分,“我今年”是第一部分,28是用变量$age来替代,“岁了”是第3部分,它们之间用.来连接的。

变量的作用范围

  1. 局部变量
  2. 全局变量

局部变量:可以让它存在于一个小的函数内部,也可让它存在于整个程序当中。对于一般情况下声明的变量,我们称之为局部变量,只能在当前程序段中存在。

全局变量:使用$globals声明出来的变量则是在当前页面整个程序当中都会有效。

 1 <?php
2 $a=1;
3 $b=2;
4 function sum()
5 {$a;
6 $b;
7 $b=$a+$b;
8 }
9 sum();
10 echo$b;
11 ?>

在这段程序当中,
第2至3行,我们建立了两个变量a和b并分别给其赋值为1和2。
第4行至第7行,我们定义了一个自加的函数sum(),其作用是让sum内部的变量a和b进行相加,并将加得的值赋给b。
第8行,调用sum函数。
第9行,用echo将b的值输出。
可 能有人会认为此时在网页上输出的值一定是3,但是运行后你会发现,值还是为2,也就是b原先的值。这就是局部变量的原因造成的,在第2至3行当中声明的变 量无法在sum()函数中使用,也就是说,sum函数中使用的a和b和第2至3行中a和b只是名字相同,但两者之间毫无关系。所以,在最终输出的b也就是 第3行b的值了。

再看下面:

 1 <?php
2 $a=1;
3 $b=2;
4 function sum()
5 {
6 global $a,$b;
7 $b=$a+$b;
8 }
9 sum();
10 echo $b;
11 ?>

在sum函数中,我们给变量a和b加上了一个global修饰符,这个时候,a和b就和函数外的a和b建立上了关系,它们就是同一个变量了。因此,这个程 序在运行的时候,其结果就为3了。因此,我们在声明全局变量时,只需在局部使用它们时(本例中是在函数sum中),给它们加上一个修饰符global,它 们就可以继承外部的值,也就不再是局部变量了。

 

静态变量与自定义常量

静态变量:是指用static声明的变量,这种变量与局部变量的区别是,当静态变量离开了它的作用范围后,它的值不会自动消亡,而是继续存在,当下次再用到它的时候,可以保留最近一次的值。
下面举例:

<?php
function add()
{
static $i=0;
$i++;
echo $i;
}
add();
echo " ";
add();
?>

这段程序中,主要定义了一个函数add(),然后分两次调用add()。
如果用局部变量的方式来分工这段代码,两次的输出应该都是1。但实际输出却是1和2。
这 是因为,变量i在声明的时候被加上了一个修饰符static,这就标志着i变量在add()函数内部就是一个静态变量了,具备记忆自身值的功能,当第一次 调用add时,i由于自加变成了1,这个时候,i就记住自己不再是0,而是1了,当我们再次调用add时,i再一次自加,由1变成了2。由此,我们就可以 看出静态变量的特性了。

 

自定义常量:就是指用一个字符标识来代表另外一个对象,这个对象可以是一个数值,一个字符串,一个布尔值等等。它的定义与变量有着许多相似之处。只有一点不一样,那就是变量的值在程序运行过程中可以任意更改,而自定义常量一旦定义下来后,在程序运行中就再也不能修改了。
定义方式如下:
define("YEAR","2012");
使用define关键字来将2012这个字符串绑定到YEAR上来,以后在程序当中出现YEAR的地方就用2012来代替。一般情况下,我们定义常量时,常量名都使用大写字母。
例:

<?php
define("YEAR","2012");
define("MONTH","12");
define("DATE","21");
define("THING","Doomsday");
echo YEAR."-".MONTH."-".DATE." ".THING;
?>

这段程序中,定义了四个常量,分别是YEAR,MONTH,DATE,THING,它们对应的值分别是2012,12,21,Doomsday,当我们用echo将它们连起来显示时,与变量不同的地方就在于没有使用“$”。
它的运行结果是:2012-12-21 Doomsday。

超级全局变量:也叫做预定义变量,是PHP系统中自带的变量,它可让你的程序设计更加的方便快捷。

它的类型包括:

$GLOBALS    //包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键名为全局变量的名称。从 PHP 3 开始存在 $GLOBALS 数组。
$_SERVER    //变量由 web 服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组
$_GET          //经由 URL 请求提交至脚本的变量。

$_POST     //经由 HTTP POST 方法提交至脚本的变量。
$_COOKIE   //经由 HTTP Cookies 方法提交至脚本的变量。
$_FILES   // 经由 HTTP POST 文件上传而提交至脚本的变量。
$_ENV   // 执行环境提交至脚本的变量。
$_REQUEST   // 经由 GET,POST 和 COOKIE 机制提交至脚本的变量。
$_SESSION   // 当前注册给脚本会话的变量。

更多的变量可以通过phinfo.php文件中查看。

超级全局变量可以直接输出:

echo "当前服务器的IP地址为:".$_SERVER["SERVER_ADDR"];  //输出你php文件的服务器IP


 

全局范围内自动生效,例如,在任何范围内自动生效。因此通常被称为自动全局变量(autoglobals)或者超全局变量(superglobals)

<?php
$a = "PHP教程网";
echo "通过\$GLOBALS来取变量值:".$GLOBALS['a'];
//输出:通过$GLOBALS来取变量值:PHP教程网
echo "<br/>";
echo "当前执行脚本的文件名:".$_SERVER['PHP_SELF'];
//输出:当前执行脚本的文件名:/study_php/2-3.php
echo "<br/>";
echo "当前执行脚本所在的根目录:".$_SERVER['DOCUMENT_ROOT'];
//输出:当前执行脚本所在的根目录:H:
echo "<br/>";
echo "当前执行脚本的的绝对路径:".$_SERVER['SCRIPT_FILENAME'];
//输出:当前执行脚本的的绝对路径:H:/study_php/2-3.php
?>

 



定义数组

可以用 array() 语言结构来新建一个数组。它接受一定数量用逗号分隔的 key => value 参数对。

array( [key =>] value , ... ) // key 可以是 数字 或者 字符串 // value 可以是任何值
例:

<?php
$phpjc = array(
0=>'word',
3=>'excel',
'outlook',
'access');
print_r($phpjc);
?>

输出结果 :Array ( [0] => word [3] => excel [4] => outlook [5] => access )

定义了一个数组,名字叫phpjc,第一个元素的值是:word,(说明:数组是从0开始计数的),第二个元素为空,第三个元素是:excel,后面自动生成第四和第五个元素

通过给变量赋予一个没有参数的array()来创建空数组,然后可以通过使用方括号 [] 语法来添加值。

$phpjc = array();
$phpjc[] = "one";
$phpjc[] = "two";
echo $phpjc[0]."<br>";
echo $phpjc[1];

输出结果如下 :
one
two


二、读取数组元素
使用字符串索引(或键)来访问储在数组中的值

$phpjc = array("first"=>1,"second"=>2,"third"=>3);
echo $phpjc["second"];
$phpjc["third"]=5; //把第三个元素的值由“3”修改为“5”
echo $phpjc["third"];



posted @ 2012-03-07 00:42  某人2013  阅读(1240)  评论(0编辑  收藏  举报