預約義變量、變量的有效範圍、可變變量、靜態變量、php以外的變量php
<?php /*****************************************************/ //預約義變量: //$GLOBALS —— 引用全局做用域中可用的所有變量; //$_SERVER —— 服務器和執行環境信息 //$_GET ——HTTP GET變量 //$_POST —— HTTP POST變量 //$_FILES ——HTTP文件上傳的變量 //$_REQUEST —— HTTP REQUEST變量 //$_ENV ——環境變量 //$_COOKIE ——httpCookies // $argc ——傳遞給腳本的參數數目 // $argv ——傳遞給腳本的參數數組 // $php_errormsg ——前一個錯誤信息 // $HTTP_RAW_POST_DATA ——原生POST數據 // $http_response_header ——HTTP響應頭信息 /*****************************************************/ //變量的有效範圍:指變量可以被檢測到及能被使用的範圍; //頁級全局變量在函數中沒法生效。 //例: /*$yeji='頁級全局變量'; function myfunction(){ var_dump(isset($yeji)); //這裏返回bool(false),沒法檢測到這個變量 } myfunction();*/ //函數中局部變量,在函數外沒法訪問 //例2: /*function myfun(){ $a='函數中的變量'; } myfun(); var_dump($a); //輸出null,不存在$a變量*/ //使用global關鍵字進行聲明,強制變量的可見範圍: /*$a=1;$b=2; function sum(){ global $a,$b; $b=$a+$b; } sum(); echo $b;//輸出3;*/ //使用$GLOBALS超全局變量數組 //$a=1;$b=5; //function sum(){ // $GLOBALS['b']=$GLOBALS['a']+$GLOBALS['b']; //} //sum(); //echo $b; /*****************************************************/ //可變變量: //例1: //$v1='PHP'; //$$v1='學院'; //echo $PHP;//輸出:學院 //例2: //$v2='seo'; //$$v2='大學'; //echo $v2.${$v2};//輸出seo大學 /*****************************************************/ //靜態變量: /* 1.原理:static + 變量名 + 值 2.靜態變量在內存中多了一個是否初始化標識符。 3.未有新的聲明和原有聲明不變的狀況下。靜態變量保持最後一次運行結果。 4.在函數中聲明的靜態變量,做用域只保存在函數中有效。 */ //例1:靜態變量的定義. //static $int=0; //例2:靜態變量的做用域: //經過靜態變量統計函數被調用的次數 /*function counter(){ static $a=1; echo $a.'<br/>'; $a++; static $a=1; } counter();//輸出1; counter();//輸出2 counter();//輸出3*/
//例:
/*
$a=3;
echo $a;//輸出:3
static $a=6;
echo $a;//輸出:12.靜態變量會在編譯階段聲明提高。
$a=9;
echo $a;//輸出:9
static $a=12;
echo $a;//輸出:9
*/ /*****************************************************/ //php以外的變量:(提交表單獲得的變量) /*login.html裏面的內容部分: <form action="index.php" method="post"> 用戶名01:<input type="text" name="username01"/> 用戶名02:<input type="text" name="username02"/> <input type="submit" value="提交"/> </form> */ /* //index.php中的內容部分 echo $_POST['username01']; echo $_REQUEST['username02']; */ ?>