首頁 >後端開發 >php教程 >php變數入門教程,php變數基礎知識

php變數入門教程,php變數基礎知識

WBOY
WBOY原創
2016-07-25 08:51:411040瀏覽
  1. $a = 'hello';
  2. function test() {
  3. var_dump($a);
  4. }
  5. // test();
  6. include 'b.inc';
複製程式碼

b.inc內容:

  1. echo 'hello';
  2. ?>
?>

?>

程式能夠正常輸出hello,但是被註解掉的test()不能正常解析,因為變數$a是未定義的。

4、使用全域變數 若在某個函數中想使用全域變量,可以透過下面兩種方式。

global關鍵字 global $a, $b; 在函數中宣告全域變數後,對任一變數的所有參考都會指向其全域版本。 $GLOBALS超全域變數數組 $GLOBALS['b'] = $GLOBALS['a'] $BLOBALS['b']; 用法同global關鍵字相似。

5、靜態變數
靜態變數僅在局部函數域中存在,但當程式執行離開此作用域時,其值並不會遺失。並且,只在宣告時初始化一次,每次呼叫函數並不會覆寫靜態函數的值。
    靜態變數在宣告中以表達式的結果對其賦值會導致解析錯誤,靜態宣告是在編譯時解析的。
  1. function test() {
  2. static $cnt = 0;
  3. echo $cnt;
  4. static $cnt = 0;
  5. echo $cnt;
  6. $cnt ;
if($cnt test();}$cnt--;
}

test();

複製程式碼
  1. 和C語言的static相似,下面這段C程式碼也可以把0~9十個數字依序輸出。
  2. #include
  3. void test(void) {
  4. static int cnt = 0;
  5. printvoid) {
  6. static int cnt = 0;
  7. printvoid("% d ", cnt);
  8. cnt ;
  9. if(cnt test();
}
cnt--;}int main(void ) {
test();

return 0;

}

複製程式碼

變數的static和globald以引用的方式實現的。
  1. 5、可變變數
  2. 可變變數是PHP語言中的一種特殊用法,不知其他語言存不存在。
  3. 簡而言之,可變變數就是,一個可變變數取得了一個普通變數的值作為這個可變變數的變數名稱。
$a = 'hello';
$$a = 'world';

echo "$a $ $a"; // hello $hello

echo "$a ${$a}"; // hello world

複製程式碼

當可變變數用於數組時,可能會出現模棱兩可的問題。例如,寫下$$a[1],編譯器會報錯的,你想要表達的意思需要用下面兩種方式替換掉。

${$a[1]} $a[1]作為一個變數

${$a}[1] $$a作為一個變數並取出變數中索引為1的值。
    6、表單變量
  1. 當表單提交給PHP腳本時,表單中的資訊會自動在腳本中可用,可以透過$_GET[]、$_POST[]和$_REQUEST[]存取。
  2. 注意,變數名稱中的點和空格轉換成下劃線。例如
  3. 變成了$_REQUEST["a_b"],在下面的範例中展示了表單中標識符的使用。

form>
  1. 複製程式碼
  2. 表單處理檔案process.php。
var_dump(isset($_POST['my.text']));var_dump(isset($_POST[ 'mytext']));var_dump(isset($_POST['my_text']));var_dump($_POST['my_text']);複製程式碼

因為句點不是PHP變數名稱中的合法字符,輸出結果: boolean false boolean false boolean true

string 'h3' (length=2) magic_quotes_gpc配置指令影響到get/post/cooie的值,這個特性已經廢棄移除,輸入中的單引號、雙引號、反斜線和NULL字元都不會被轉義。若需要轉義可使用addslashes(),若需要反引用一個引用的字串需要使用stripslashes()。

php也懂得表單變數上下文中的陣列。

例子,使用更複雜的表單變量,並將表單post給自己並在提交時顯示資料。

  1. if(isset($_POST['action'])) {
  2. var_dump($_POST);
  3. } else {
  4. $page = $_SERVER['PHP_SELF'];
  5. $s =
  6. form>
  7. STR;
  8. echo $s;
  9. }
複製程式碼

在heredoc中含有複雜變數時要格外小心,上面這段程式碼$_SERVER['PHP_SELF']不加花括號會在運行時報錯。

  1. if(isset($_POST['action'])) {
  2. var_dump($_POST);
  3. } else {
  4. $s =
  5. STR;
  6. echo $s;
  7. }
複製程式碼

對於上面這段程序,當使用者點擊圖片某處時,表單會傳送到伺服器,並加上兩個變數sub_x和sub_y,包含了使用者點擊圖片的座標。

array (size=3) 'action' => string '1' (length=1) 'sub_x' => string '334' (length=3) 'sub_y' => string '282' (length=3) cookies

php可以用setcookie()函數設定cookies,cookies是http訊息頭的一部分,因此必須在傳送任何輸出給瀏覽器之前呼叫。

php cookie使用:

cookie資料在對應的cookie數組中可用,如果將多個值賦給一個cookie變量,必須將其賦成數組。


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn