php變數定義的方法:1、使用「define(name,value,case_insensitive)」語句;2、使用「$變數名稱= 值;」語句;3、使用「static $變數名稱= 值;」語句;4、使用「$$變數名稱= 值;」語句等等。
本教學操作環境:windows7系統、PHP7.1版,DELL G3電腦
php變數定義的方法
定義常數define();
#define(name,value,case_insensitive)
常數只能包含標量資料(boolean, integer,float 和string)。
呼叫常數時,只需要簡單的用名稱取得常數的值,而不能加「$」符號,如:echo CONSTANT;
#: 常數和(全域)變數在不同的名字空間中。這意味著例如 TRUE 和 $TRUE 是不同的。
普通變數$a = "hello";
#可變變數(使用兩個美元符號($))
$$a = "world";
兩個變數都定義了:
$a 的內容是「hello」且$hello 的內容是「world」。
因此,可以表達為:
echo "$a ${$a}";
或echo "$a $hello";
它們都會輸出:hello world
要將可變變數用於數組,必須解決一個模稜兩可的問題。這就是當寫下$$a[1] 時,解析器需要知道是想要$a[1] 作為一個變數呢,還是想要$$a 作為一個變數並取出該變數中索引為[1] 的值。解決此問題的語法是,對第一種情況用 ${$a[1]},對第二種情況用 ${$a}[1]。
靜態變數
在函數內部static $a = 0;
#注意:聲明中以表達式的結果對其賦值會導致解析錯誤如static $a =3 3;(error)
靜態變數只在局部函數域中存在(函數內部),函數執行完之後,變數值不會遺失,可用於遞迴呼叫
#全域變數
在函數體內定義的global變數,函數體外可以使用,在函數體外定義的global變數不能在函數體內使用,在全域範圍內存取變數可以用特殊的PHP 自訂$GLOBALS 陣列:
如:
$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
在一個函數域內用global 語句導入的一個真正的全域變數實際上是建立了一個到全域變數的引用
global $obj;
註:變數的static 和global 定義是以應用的方式實現的
給變數賦值:傳送位址賦值(簡單引用):
#$bar = &$foo; //加&符号到将要赋值的变量前
改變新的變數會影響到原始變量,這種賦值運算更快速
#注意:只有命名變數才可以傳送位址賦值
注意:如果
$bar = &$a; $bar = &$foo;
改變$bar的值只能改變變數foo的值,而不改變a的值(引用改變了)
PHP 超全域變數$GLOBALS :
#包含一個引用指向每個目前腳本的全域範圍內有效的變數。此數組的鍵標為全域變數的 名稱。從 PHP 3 開始存在 $GLOBALS 陣列。
$_SERVER : 變數由 Web 伺服器設定或直接與目前腳本的執行環境相關聯。類似於舊數組 $HTTP_SERVER_VARS 數組(仍然有效,但反對使用)。
$_GET : 由 HTTP GET 方法提交至腳本的變數。
$_POST : 由 HTTP POST 方法提交至腳本的變數。
$_COOKIE : 由 HTTP Cookies 方法提交至腳本的變數。
$_FILES : 由 HTTP POST 檔案上傳而提交至腳本的變數。
檔案上傳表單中要有 enctype="multipart/form-data"
$_ENV : 執行環境提交至腳本的變數。
$_REQUEST :經由 GET,POST 和 COOKIE 機制提交至腳本的變量,因此該數組並不值得信任。所有包含在該數組中的變數的存在與否以及變數的順序均按照 php.ini 中的 variables_order 配置指示來定義。該數組沒有直接模擬 PHP 4.1.0 的早期版本。
注意: 自 PHP 4.3.0 起,$_FILES 中的檔案資訊不再存在於 $_REQUEST 中。
$_SESSION :目前註冊給腳本會話的變數。
如何停用phpinfo():
php.ini中
disable_functions = phpinfo()
重啟web伺服器。
php中的常數
#常數只能用define(常數名稱,常數值);
#常數只能包含標量資料(boolean,integer,float 和string)。
可以简单的通过指定其名字来取得常量的值,不要在常量前面加上 $ 符号。如果常量名是动态的,也可以用函数
constant() 来读取常量的值。用 get_defined_constants() 可以获得所有已定义的常量列表。
注: 常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的。
如果使用了一个未定义的常量,PHP 假定想要的是该常量本身的名字,如同用字符串调用它一样(CONSTANT 对应 "CONSTANT")。此时将发出一个 E_NOTICE 级的错误。参见手册中为什么 $w3sky[bar] 是错误的(除非事先用 define() 将 bar 定义为一个常量)。如果只想检查是否定义了某常量,用 defined() 函数。
常量和变量不同:
* 常量前面没有美元符号($);
* 常量只能用 define() 函数定义,而不能通过赋值语句;
* 常量可以不用理会变量范围的规则而在任何地方定义和访问;
* 常量一旦定义就不能被重新定义或者取消定义;
* 常量的值只能是标量。
定义常量
<?PHP define("CONSTANT", "Hello world."); echo CONSTANT; // outputs "Hello world." echo Constant; // outputs "Constant" and issues a notice. ?>
推荐学习:《PHP视频教程》
以上是php變數定義的方法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!