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

流程控制与函数应用



流程控制


顺序结构


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


单路分支 格式:
                       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>';



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值