首頁  >  文章  >  後端開發  >  PHP中的變數

PHP中的變數

WBOY
WBOY原創
2016-07-30 13:30:041341瀏覽

概述

PHP 中的變數以一個美元符號後面跟著變數名稱來表示。

變數名是區分大小寫的。

一個有效的變數名稱由字母或底線開頭,後面跟上任意數量的字母,數字,或者下劃線。

$this 是一個特殊的變量,它不能被賦值。

變數預設總是傳值賦值。如果需要引用賦值,使用&
只有有名字的變數可以引用賦值

<code>$foo = 25;
$bar = &$foo;      // 合法的赋值
$bar = &(24 * 7);  // 非法; 引用没有名字的表达式
</code>

雖然在 PHP 中並不需要初始化變量,但對變數進行初始化是個好習慣。未初始化的變數具有其類型的預設值- 布林類型的變數預設值是FALSE,整形和浮點型變數預設值為零,字串型變數(例如用於echo 中)預設值是空字串以及陣列變數的預設值是空數組。


預定義變數

<code>超全局变量 — 超全局变量是在全部作用域中始终可用的内置变量
    $GLOBALS — 引用全局作用域中可用的全部变量
    $_SERVER — 服务器和执行环境信息
    $_GET — HTTP GET 变量
    $_POST — HTTP POST 变量
    $_FILES — HTTP 文件上传变量
    $_REQUEST — HTTP Request 变量
    $_SESSION — Session 变量
    $_ENV — 环境变量
    $_COOKIE — HTTP Cookies
$php_errormsg — 前一个错误信息
$HTTP_RAW_POST_DATA — 原生POST数据
$http_response_header — HTTP 响应头
$argc — 传递给脚本的参数数目
$argv — 传递给脚本的参数数组
</code>

PHP 中的許多預定義變數都是“超全域的”,這意味著它們在一個腳本的全部作用域中都可用。在函數或方法中無需執行 global $variable; 就可以存取它們。


變數作用域

全域變數在函數中自動無效

<code><?php
$a = 1; /* global scope */

function Test()
{
    echo $a; /* reference to local scope variable */
}

Test();
?>
</code>

PHP 中全域變數在函數中使用時必須宣告為global

<code><?php
$a = 1;
$b = 2;

function Sum()
{
    global $a, $b;

    $b = $a + $b;
}

Sum();
echo $b;
?>
</code>

在全域範圍內存取變數的第二個方法,是用全域變數特殊的PHP 自訂$GLOBALS 陣列

<code><?php
$a = 1;
$b = 2;

function Sum()
{
    $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}

Sum();
echo $b;
?>
</code>

靜態變數

變數範圍的另一個重要特性是靜態變數(static variable)。靜態變數僅在局部函數域中存在,但當程式執行離開此作用域時,其值並不會遺失。

<code><?php

function test()
{
    static $a = 0;
    echo $a;
    $a++;
}

for ($i = 0; $i < 10; $i++) {
    test();
} // 0123456789

?>
</code>

可變變數

一個變數的變數名稱可以動態的設定和使用

<code>$Bar = "a";
$Foo = "Bar";
$World = "Foo";
$Hello = "World";
$a = "Hello";

$a; //Returns Hello
$$a; //Returns World
	$$$a; //Returns Foo
$$$$a; //Returns Bar
$$$$$a; //Returns a
</code>

版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。

以上就介紹了PHP中的變量,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

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