牛骨文教育服务平台(让学习变的简单)
博文笔记

流程控制与函数应用--php基础最详细教程

创建时间:2016-08-30 投稿人: 浏览次数:940


流程控制


顺序结构


分支结构/选择结构/条件结构


单路分支 格式:
                       if(条件){
                                 循环体;   //循环体可以是一条或者多条语句。
                       }
注:if语句条件执行后的结果只有两种真即是成立,执行循环体语句,假即是不成立,退出不执行。


双路分支 格式:
                  if(条件){
                        循环体;     //循环体可以是一条或者多条语句。
                 }else{
                        循环体;     //循环体可以是一条或者多条语句。
                }
注:if语句条件执行后的结果只有两种真即是成立,执行循环体语句,假即是不成立,执行else大括号中的语句。


多路分支


一种:
          格式:
                if(条件){ 
                      循环体;     //循环体可以是一条或者多条语句。
               }elseif{
                      循环体;     //循环体可以是一条或者多条语句。
              }elseif{
                      循环体;     //循环体可以是一条或者多条语句。
              }else if{             //else if 分开写也可以
                      循环体;     //循环体可以是一条或者多条语句。
             }else{
                     循环体;     //循环体可以是一条或者多条语句。
            }
注:if语句条件执行后的结果只有两种真即是成立,执行循环体语句,
假即是不成立,执行else大括号中的语句。语句间是互斥的,进入一个,
就不会进入其他。 匹配一个范围。




<?php
date_default_timezone_set("PRC");
header("content-type:text/html;charset=utf-8");


$hour = date("H");


if($hour <= 6){
echo "现在是凌晨".$hour;
}elseif($hour <= 9) {
echo "现在是早上".$hour;
}elseif($hour <= 11){
echo "现在是上午".$hour;
}elseif($hour <= 13){
echo "现在是中午".$hour;
}elseif($hour <= 16){
echo "现在是下午".$hour;
}else if($hour <= 19){
echo "现在是傍晚".$hour;
}else if($hour <= 23){
echo "现在是晚上".$hour;
}else{
echo "午夜好".$hour;
}


二种:
       格式:
          <?php
$louceng = 1;


// 多向分支
switch($louceng){
case 0:
case 1:
echo "沙发";
break;
case 2:
echo "椅子";
break;
case 3:
echo "板凳";
break;
case 4:
echo "地板";
break;
default:
echo "第".$louceng."层";
break;


}
注:主要用于匹配单个值。


<?php
date_default_timezone_set("PRC");
header("content-type:text/html;charset=utf-8");




$week = date("D");
  
    switch($week){
    case "Mon":
    echo "今天是星期一";
    break;
    case "Tue":
    echo "今天是星期二";
    break;
    case "Wed":
    echo "今天是星期三";
    break;
    case "Thu":
    echo "今天是星期四";
    break;
    case "Fri":
    echo "今天是星期五";
    break;
    default:
    echo "今天是周末";
    break;
    } 
注:字符串类型的值要加引号。


巢状分支/嵌套分支 格式:
               if(条件){
                       循环体;
                if(条件){
                                循环体;
}else{
                      循环体;
                        }
 }else{
                       循环体;
                if(条件){
                                循环体;
}else{
                      循环体;
                        }
             }
注:嵌套尽量不要超过三层。


<?php
date_default_timezone_set("PRC");
header("content-type:text/html;charset=utf-8");


$sex = $_GET["sex"];
$age = $_GET["age"];


//男 60岁退休,女55岁退休。
if($sex == "男"){
echo "这位男同志";
if($age >= 60){
echo "你已经退休了".($age-60)."年";
}else{
echo "你还需要".(60-$age)."年退休";
}


}elseif($sex == "女"){
echo "这位女同志";
if($age >= 55){
echo "你已经退休了".($age-55)."年";
}else{
echo "你还需要".(55-$age)."年退休";
}
}else{
echo "人妖你滚开";
}
注:此实例包含巢状结构和多路分支。


循环结构


条件循环


do while语句格式:
       <?php
header("content-type:text/html;charset=utf-8");
echo "<table border="1">";
$i = 0;
do{
echo "<tr>";
$j = 0;
do{
echo "<td>单元格</td>";
$j++;
}while($j<10);
$i++;
echo "</tr>";
}while($i < 10);


echo "</table>";


while语句格式:
         <?php
echo "<table border="1">";


//初始值
$i = 0;


//条件
while($i < 10){
echo "<tr>";


$n = 0;


while($n < 10){
echo "<td>".$n."</td>";
$n++;
}


echo "</tr>";
//增量
$i++;
}
echo "</table>";


总结:do while、while语句更适合做条件型循环
         do while特点:无论条件成立与否,先执行一次。
          while 特点:条件成立,才开始执行。
(do while语句格式:
       <?php
header("content-type:text/html;charset=utf-8");
echo "<table border="1">";
$i = 0;
do{
echo "<tr>";
$j = 0;
do{
echo "<td>单元格</td>";
$j++;
}while($j<10);
$i++;
echo "</tr>";
}while($i < 10);


echo "</table>";, while语句格式:
         <?php
echo "<table border="1">";


//初始值
$i = 0;


//条件
while($i < 10){
echo "<tr>";


$n = 0;


while($n < 10){
echo "<td>".$n."</td>";
$n++;
}


echo "</tr>";
//增量
$i++;
}
echo "</table>";)


计数循环


for 语句格式:
       <?php
for($i = 0; $i < 10; $i++){
echo "<hr/><br />";
}


echo "<table border="1">";
for($i = 0; $i < 10; $i++){
echo "<tr>";
for($n = 0; $n < 10; $n++){
echo "<td>".$n."</td>";
}
echo "</tr>";
}
echo "</table>";


for 语句更适合做计数循环。
(for 语句格式:
       <?php
for($i = 0; $i < 10; $i++){
echo "<hr/><br />";
}


echo "<table border="1">";
for($i = 0; $i < 10; $i++){
echo "<tr>";
for($n = 0; $n < 10; $n++){
echo "<td>".$n."</td>";
}
echo "</tr>";
}
echo "</table>";)


特殊流程控制语句


break :可以结束当前for、foreach、switch、 while、do-while结构的执行
实例:
echo "<table border="1" align="center">";
for($i = 0; $i <= 9; $i++){
if($i >= 5){
break;  
}
echo "<tr>";
for($j = 0; $j <= 9; $j++){
if($j >= 5){
break;  //默认不写就是break 1 退出本层,如果 break 2 将退出外层。
}
echo "<td>".($i*10+$j)."</td>";
}
echo "</tr>";
}
echo "</table>";


continue: 语句只能使用在循环语句内部,功能是跳过该次循环,继续执行下一次循环结构。
                在while和do-while语句中continue语句跳转到循环条件处开始继续执行,对于
                for循环随后的动作是变量更新
       实例:
$sum = 0 ;
for($i = 0; $i <= 10; $i++){

if($i % 2 ==3)
continue;
   echo "<br>";
  
$sum += $i;
}
echo $sum;   //55


exit 语句:当前脚本只要执行到exit语句,不管它在那种结构中,都会直接跳出当前脚本。
                exit()是一个函数,前面用过的die()函数是它的别名。
$conn = @mysql_connect("localhost", "root", "123456") or exit("连接数据库失败!");
echo $conn;                           //抑制mysql的错误提示信息 用 @       


PHP函数应用


函数的定义


定义: 就是一个被命名的、独立的代码段,它执行特定的任务,并可能给调用它的程序返回一个值。


函数是被命名的:每个函数都有唯一的名称,在程序的其他部分使用该名称,可以执行函数中的语句,称为调用函数。


函数是独立的: 无须程序其他部分的干预,函数便能够单独执行其任务。


函数执行特定的任务: 任务是程序运行时所执行的具体工作,如将一行文本输出浏览器、对数组进行排序、计算立方根等。


函数可以将一个返回值返回给调用它的程序:程序调用函数时,将执行该函数中的语句,而这些语句可以将信息返回给调用它们的程序。


函数的优越性


提高程序的重用性


提高软件的可维护性


提高软件的开发效率


提高软件的可靠性


控制程序设计复杂性


自定义函数


函数的声明


语法格式


function 函数名([参数1, 参数2, ... 参数n])
{
函数体;  //可以是多个条代码
        return  返回值;
}
说明:参数可以没有,也可以是多个,但小括号要保留。
           return 返回值,可以没有 但没有返回值的函数是不完整的。
           return 语句结束后,不要在写代码了,因为不会被执行。


函数的命名


命名规范


1.函数命名规则遵循变量命名规则。
2.函数名不区分大小写。
3.不能重复声明函数名一样的函数。


函数的调用


调用格式


函数名();
说明:如 table();
        function_exists("table"); 判断函数是否被声明。


函数的参数


形参


就是声明函数声明的参数,参数就是变量,多个变量用逗号分隔。


实参


调用函数时传给形参的数值(数据,也可以是变量或函数等)


注意:函数参数有默认值的形参,放在参数列表的后面。没有默认值的放在前面。


函数的返回值


return 语句在函数体中使用时,有一下两个作用:
 return 语句可以向函数调用者返回函数体中任意确定的值。
将程序控制权返回到调用者的作用域,即退出函数。在函数中如果执行了return语句,它后面的语句就不会被执行。


说明:如果函数没有返回值,就只能算是一个执行过程,只依靠函数做一些事情还不够,有时更需要在程序脚本中
使用函数执行后的结果。由于变量的作用域的差异,调用函数的脚本程序不能直接使用函数体里面的信息,但可以
通过关键字return向调用者传递数据。


系统函数


常规参数的函数


就是实参和形参应该个数相等、类型一致。


伪类型参数的函数


mixed 在参数类别出现类型使用mixed 描述的参数,表示可以传入任何类型的值


number   在参数类别出现类型使用 number 描述的参数,表示可以传入整型和浮点型的值。


callback 在参数类别出现类型使用 callback 描述的参数,表示可以传入回调类型的函数。


引用参数的函数


void funName(array &$arg) 在参数类别出现类型使用 &描述的参数,表示可以传入引用参数类型的函数。


默认参数的函数


[ ] 在参数列表中出现使用[]描述的参数  表示该参数有默认值,在调用函数时如果没有指定参数的值,
在函数中会使用参数的默认值。注意:默认值必须是常量表达式,不能是变量、类成员或者函数调用。
但默认值也允许是数组和特殊类型NULL做为默认参数。


可变个数参数的函数


实参(任意)个数大于形参个数的函数。


<?php
//可变长度参数函数:参数长度不是固定的
function show()
{
//获取所有可变参数变量
$params = func_get_args();
print_r($params);


//获取可变参数的个数
//echo func_num_args();


//获取指定的参数值
//echo func_get_arg(1);


echo func_get_arg(0) + func_get_arg(1);
}


show(1,3,4,5);


回调函数


变量函数:如果一个变量后面有括号$var = hello  $var(); 就会寻找与变量值同名的函数。


回调函数


$arr = [98,12,1,99,102,898];


//回调函数: 有一个参数值是另外一个函数的函数名,并且会自动调用该函数。
usort($arr,"mysort");


function mysort($a,$b)
{
return $a-$b;
}


print_r($arr);


匿名函数


声明格式:


$user = function($a,$b){ };


//匿名函数 变量赋值形式
$b = 12;
//use 会自动把外部同名变量引入到内部使用
$show = function ($a)use($b)
{
echo 111;
echo $a;
echo $b;
};
$show(1);


递归函数


   function total($dirname, &$dirnum, &$filenum){
   $dir=opendir($dirname);
   readdir($dir)."<br>";
   readdir($dir)."<br>";
   while($filename=readdir($dir)){
  $newfile=$dirname."/".$filename;


  if(is_dir($newfile)){
total($newfile, $dirnum, $filenum);  
    $dirnum++;
   }else{
    $filenum++;
   }
   }
  closedir($dir); 
    }


   $dirnum=0;
   $filenum=0;
   total("C:/AppServ/www/phpMyAdmin", $dirnum, $filenum);


   echo "目录总数:".$dirnum."<br>";
   echo "文件总数:".$filenum."<br>";


    function demo($num){
    echo $num."<br>";


if($num>0)
demo($num-1);
else
echo "--------------------<br>";


echo $num."<br>";
    }


    demo(10);


使用自定义函数库


include: 写法:include  "other.php"或include ("other.php")


  if($className=="Action"){
  include "action/".$className.".php";
  }elseif($className=="Model"){
  include "model/".$className.".php";
  }else{
  include "public/".$className.".php";
  }


require: 写法:require "other.php"或require ("other.php")


include_once: 写法:include_once "other.php"或include_once("other.php")


require_once:写法:require_once "other.php"或require_once("other.php")


如果该文件中的代码已经被包括了,则不会再次
包含否者在进行包含,以确保文件只被包含一次。
     (比include、require更耗内存)
(include_once: 写法:include_once "other.php"或include_once("other.php"), require_once:写法:require_once "other.php"或require_once("other.php"))


区别:include 弹出错误也会继续执行。
 require 弹出错误不执行。
(include: 写法:include  "other.php"或include ("other.php"), require: 写法:require "other.php"或require ("other.php"))


PHP变量的范围


局部变量


局部变量:从存储方式上可分为动态存储和静态存储类型


静态变量


static $变量名 = 变量值


声明的静态变量会在第一次运行函数时,就存储到
内存中不会释放,没调用一次都会直接在内存中取出。


function su(){
static $intt = 1;
$intt++;
echo $intt;
}


su(); //2
su(); //3
su(); //4   声明一次累加一次


普通变量


$变量名 = 变量值


函数中声明变量调用一次,释放一次。 


function su(){
$intt = 1;
$intt++;
echo $intt;
}


su(); //2
su(); //2
su(); //2  


全局变量


全局变量定义和作用范围


概念:在函数外声明,在变量声明以后直到整个脚本结束前可以使用,包括函数中和{} 中都可以使用。


全局变量传入函数中的方法


传参


$n = 10 ;
$m = 15 ;
function sum($a,$b)
{
$sum = $a + $b;
return $sum;
}


echo sum($n, $m); //25
说明:把全局变量通过函数实参
           传入函数中。


$n = 4 ;


function sum($a)
{
echo $a;
$a =10;
echo $a;
}


echo sum($n);
echo "<br>";
echo $n ;
说明:传参,只是把外部变量的值
        传进来,改变内部变量值,不会
      改变 外部变量。


global


$name = "vilin";


function user()
{
global $name;
echo $name ; //vilin
$name = "pan"; 
echo $name; //pan 
}
user(); //vilin  pan 
echo "<br>";
echo $name; //pan 
echo "<br>";
$name = "helin";
echo "<br>";
user(); //helin pan 
说明:global 必须加在变量前才有用。
           无论改变函数内部变量还是外部
           变量,相对应的变量也会改变。


$name = "vilin";


function user()
{
global $name;
echo $name ; //vilin
$name = "pan"; 
echo $name; //pan 
unset($name);
echo @$name; // 无值
}
user(); //vilin  pan 
echo "<br>";
echo $name; // 不影响还是 pan
说明: 销毁内部或者外部的值,不影响对方。


$intt = 5;
function su(){
global $intt;
$intt++;
echo $intt;
}


su(); //6
su(); //7
su(); //8    声明一次累加一次


$GLOBALS


$name = "vilin";


function user()
{
$GLOBALS["name"];
echo $GLOBALS["name"];
unset($GLOBALS["name"]);
@var_dump($GLOBALS["name"]);
}
user();
@var_dump($name);
说明:无论改变函数内部还是外部的变量值,
相应的变量值也会改变。销毁内部或者外部,
将都会被消除。


引用传参


$n = 2;
$m = 3;


function sum(&$a,&$b)
{
   $a++;
$b++;
return $a + $b; 
}
echo sum($n,$m); 
echo "<tr>";
echo $n; 
说明:sum的参数必须是变量,
无论改变函数内部还是外部的变量值,
 相对应的变量值也会改变。


$n = 2;
$m = 3;


function sum(&$a,&$b)
{
   $a++;
$b++;
return $a + $b; 
}
echo sum($n,$m); 
echo "<tr>";
echo $n; 
说明:sum的参数必须是变量,
无论改变函数内部还是外部的变量值,
 相对应的变量值也会改变。


数组和数组结构


数组的概念


概念:


数组的本质是存储、管理和操作一组变量。属于复合类型的一种。


关于键值对的概念:


$arr = array("id" => 1,"name" => "vilin", "age" => 18, "sex" =>"男");
 每个数组可以有多个值,多个值之间用逗号隔开,每个逗号内的数据称为一个单元,每个
单元都是由 键(下标) => 值    也就是键值对组成的。如果不写下标(键),默认会使用
整数作为下标,每个单元的值都必须有下标,通过下标来定位每个值在数组中的位置。
每个单元有且只有一种类型的下标,索引(整数)或者关联(字符串)。


数组的分类


按下标(键)不同分


索引数组


使用整数作为下标(键)。 


实例1:
$arr[] = 1;
$arr[] = "vilin";
$arr[] = 26;
$arr[] = "男";
echo "<pre>";
print_r($arr);
echo "</pre>";


关联数组


使用字符串作为下标(键)。


实例2:
$arr["id"] = 1;
$arr["name"] = "vilin";
$arr["age"] = 26;
$arr["sex"] = "男";
$arr["email"] = "ww@qq.com";
echo "<pre>";
print_r($arr);
echo "</pre>";


混合数组


即使用整数又使用字符串作为下标(键).


实例3:
$arr[] = 1;
$arr[10] = "vilin";
$arr["age"] = 26;
$arr[5] = "男";
$arr[] = "ww@qq.com";
echo "<pre>";
print_r($arr);
echo "</pre>";


说明:下标(键)是用来定位值在数组中的位置。每个值只能使用一种类型的下标。  下标也称为键。


按维度不同分


一维数组 :数组内在也没有数组元素。$arr = array(1, vilin, 28, "男"); 


二维数组:数组内还有数组。


二维数组声明:
$arr[][] = 1; //0 0
$arr[][] = 2; //1 0 
$arr[][] = 3; //2 0
$arr[][] = 4; //3 0
直接赋值法声明二维数组。


二维数组声明:
$arr[0][] = 1; //0 0
$arr[0][] = 2; //0 1
$arr[][] = 3; //1 0
$arr[][] = 4; //2 0
直接赋值法声明二维数组。


$arr = [1, "name" => ["vilin","jack","halin"], 24, "男"];


//定位到某个值:
echo $arr["name"][0]; //vilin


多维数组:数组内还有数组,数组内还有数组,各种嵌套。


多维数组实例:
$arr = array(
"user" => array(
array("id" => 1, "name" => "vilin", "age" => 20, "sex" => "男"),
array("id" => 2, "name" => "jack", "age" => 23, "sex" => "女"),
array("id "=> 3, "name" => "halin", "age" => 27, "sex" => "女"),
array("id" => 4, "name" => "ailin", "age" => 23, "sex" => "男")
),
"score" => array(
array("语文" => 89, "数学" => 88, "英语" => 90, "物理" => 84),
array("语文" => 89, "数学" => 88, "英语" => 90, "物理" => 84),
array("语文" => 89, "数学" => 88, "英语" => 90, "物理" => 84),
array("语文" => 89, "数学" => 88, "英语" => 90, "物理" => 84)
),
"地址" => array(
array("电话" => 1345789789, "QQ" => 243507689, "email" => "234@qq.com"),
array("电话" => 1345780467, "QQ" => 243787689, "email" => "ddf@qq.com"),
array("电话" => 1345789876, "QQ" => 249547689, "email" => "2dfd@qq.com"),
array("电话" => 1345780456, "QQ" => 243509087, "email" => "234fjh@qq.com")
)

);




多维数组遍历到表格:
foreach($arr as $tablename => $tables){
echo "<table border="1" align="center">";
echo "<caption><h3>".$tablename."</h3></caption>";
foreach($tables as $rows){
echo "<tr>";
foreach($rows as $colsname => $cols){
echo "<td>".$colsname."=>".$cols."</td>";
}
echo "</tr>";
}
echo "</table>";
}


说明:一维数组、二维数组、多维数组,声明方法都是都是一样的。三种。


数组的定义(声明)方法


1.直接赋值的方式


实例1:索引数组
$arr[] = 1;
$arr[] = "vilin";
$arr[] = 26;
$arr[] = "男";
echo "<pre>";
print_r($arr);
echo "</pre>";
总结:直接赋值法,
如果声明时不指定下标,
默认就从 0 分配索引做下标。


实例2:索引数组
$arr[2] = 1;
$arr[10] = "vilin";
$arr[2] = 26;
$arr[5] = "男";
$arr[] = "ww@qq.com";
echo "<pre>";
print_r($arr);
echo "</pre>";
总结:如果给出索引下标,下一
下标就会从最大的开始每次增一。
如果后面出现前面的下标,就会
覆盖前面的的赋值。


实例3:关联数组
$arr["id"] = 1;
$arr["name"] = "vilin";
$arr["age"] = 26;
$arr["sex"] = "男";
$arr["email"] = "ww@qq.com";
echo "<pre>";
print_r($arr);
echo "</pre>";


实例4:混合数组
$arr[] = 1;    //0
$arr[10] = "vilin"; 
$arr["age"] = 26;
$arr[5] = "男";
$arr[] = "ww@qq.com"; //11
echo "<pre>";
print_r($arr);
echo "</pre>";
总结:混合数组中,索引序列不会被
关联下标影响。


2.使用array( )函数的方式


实例1:关联数组
$brr = array("id" => 1, "name" => "vilin", "age" => 28);


echo "<pre>";
print_r($brr);
echo "</pre>";


实例2:索引数组
$brr = array(1, "vilin", 28);


echo "<pre>";
print_r($brr);
echo "</pre>";
总结:不给出下标,默认索引下标。


3.使用[ ]方式声明数组。
注:php5.3.60以后版本支持此方式 。


实例1:关联数组
$brr = ["id" => 1, "name" => "vilin", "age" => 28];


echo "<pre>";
print_r($brr);
echo "</pre>";


数组的遍历方法


数组的遍历概念


使用一种特定规则来逐个读取数组中的键和值。


for语句


实例:
$brr = array(1, "vilin",28, "qww@qq.com");
for($i=0; $i < count($brr);$i++){
echo "$brr[$i]=>".$brr[$i]."<br>";
}
总结:for语句只能遍历下标,并且下标是连续的。注意$i的值。


foreach 语句


只遍历值


$brr = array("id" => 1,"name" => "vilin","age" => 28, "email" => "qww@qq.com");
foreach($brr as $value){
echo $value."<br>";
}


遍历键和值


$brr = array("id" => 1,"name" => "vilin","age" => 28, "email" => "qww@qq.com");
foreach($brr as $key => $value ){
echo $key."=>".$value."<br>";
}
说明:$key 与 $value 变量名不是固定的。可以任意命名。


list 与 each 语句


list语句实例:
$arr = array(=>"username","sex","age","y");


//$a = $arr[0];$b = $arr[1];
//list可以将一组索引数组单元逐个赋值给一组变量
//把每个值赋给list内的变量
@list($a,$b,$c,$d) = $arr; 
echo $a;
echo "<hr/>";
echo $b;
echo "<hr/>";
echo $c;
echo "<hr/>";
echo $d;


$arr = array("user","age"=>10);
/*
0 => 0;//key
1 => "user";//value


"key" =>0
"value" => "user"
执行一次只会解析数组的一个单元,解析出四种类型。
*/
$brr = each($arr);  //Array ([1] => user [value] => user [0] => 0 [key] => 0)
$brr = each($arr);  //Array([1] => 10 [value] => 10 [0] => age [key] => age)


list($k,$v) = $brr;   //$k = $brr[0]  $v = $brr[1]


echo $k;
echo "<hr />";
echo $v;
//each() 每次访问一个数组单元,并将指针向下移动一位。将访问的数据单元的键和值,以一个混合数组形式返回。
$brr = each($arr);
var_dump($brr);


$arr = array("vilin","sex","age","y");


while(list($k,$v) = each($arr)){
echo $k."=>".$v."<br>";
总结和foreach一样可以遍历三种的类型的数组。


数组指针




//返回当前指针指向数组单元的值
echo current($arr);


//返回当前指针指向数组单元的键
echo key($arr);
echo "<hr />";


//返回下一个指针位置指向的单元的值
echo next($arr);
echo key($arr);
echo "<hr />";


echo next($arr);
echo key($arr);
echo "<hr />";




//返回上一个指针位置指向的单元的值
echo prev($arr);
echo "<hr />";


////返回最后一个单元的值
echo end($arr);


var_dump(next($arr));


//重置指针到初始状态
reset($arr);
echo current($arr);


预定义数组(超全局数据)


1  服务器变量: $_SERVER
2  环境变量:$_ENV
3  HTTP GET变量:$_GET
4  HHTP POST变量:$_POST
5  request变量:$_REQUEST  可以接收: $_GET,$_POST,$_COOKIE
6  HTTP文件上传变量:$_FILES
7  HTTP Cookies:$_COOKIE
8  Session变量:$_SESSION
9  Global变量:$GLOBALS


echo "<pre>";
print_r($_SERVER);

echo "</pre>";



声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。