1.定義常量define("constant", "hello world.");
常量只能包含標量資料(boolean,integer,float 和 string)。
呼叫常量時,只需要簡單的用名稱取得常量的值,而不能加「$」符號,如:echo constant;
注: 常量和(全域性)變數在不同的名字空間中。這意味著例如 true 和 $true 是不同的。
2.普通變數$a = "hello";
3.可變變數(使用兩個美元符號($))
$$a = "world";
兩個變數都被定義了:
$a 的內容是「hello」並且 $hello 的內容是「world」。
因此,可以表述為:
echo "$a $";或者 echo "$a $hello";它們都會輸出:hello world
要將可變變數用於陣列,必須解決乙個模稜兩可的問題。這就是當寫下 $$a[1] 時,解析器需要知道是想要 $a[1] 作為乙個變數呢,還是想要 $$a 作為乙個變數並取出該變數中索引為 [1] 的值。解決此問題的語法是,對第一種情況用 $,對第二種情況用 $[1]。
4.靜態變數
在函式內部static $a = 0;
注意:宣告中用表示式的結果對其賦值會導致解析錯誤如static $a =3+3;(error)
靜態變數僅在區域性函式域中存在(函式內部),函式執行完之後,變數值不會丟失,可用於遞迴呼叫
5.全域性變數
在函式體內定義的global變數,函式體外可以使用,在函式體外定義的global變數不能在函式體內使用,在全域性範圍內訪問變數可以用特殊的 php 自定義 $globals 陣列:
如:$globals["b"] = $globals["a"] + $globals["b"];
在乙個函式域內用 global 語句匯入的乙個真正的全域性變數實際上是建立了乙個到全域性變數的引用
global $obj;
注:對於變數的 static 和 global 定義是以 應用 的方式實現的
6.給變數賦值:傳位址賦值(簡單引用):
$bar = &$foo; //加&符號到將要賦值的變數前
改動新的變數將影響到原始變數,這種賦值操作更加快速
注意:只有命名變數才可以傳位址賦值
注意:如果
$bar = &$a;
$bar = &$foo;
改變$bar的值只能改變變數foo的值,而不改變a的值(引用改變了)
7.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 的早期版本。參見 import_request_variables()。
注意: 自 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中的資訊,常用的預定義常量如下表所示。常量名功能 file 預設常量,php程式檔名 line 預設常量,php程式行數 php version 內建常量,php程式的版本,如3.0.8 dev php os 內建常量,執行php解析器的作業系統名稱,如windo...
PHP 系統常量及自定義常量
file 這個預設常量是 php 程式檔名。若引用檔案 include 或 require 則在引用檔案內的該常量為引用檔名,而不是引用它的檔名。line 這個預設常量是 php 程式行數。若引用檔案 include 或 require 則在引用檔案內的該常量為引用檔案的行,而不是引用它的檔案行。p...
PHP中的預定義常量 預定義變數 魔術常量
php中的預定義常量 預定義變數 魔術常量 1 預定義常量 核心預定義常量 是在php的核心中就定義好了的常量。區分大小寫。php version 內建常量,php程式的版本,如3.0.8 dev php os 內建常量,執行php解析器的作業系統名稱,如windows。php eol 系統換行符,...