PHP中變量有普通變量、可變變量和預定義變量,而常量就是普通變量和預定義變量。
1. 變量
在PHP中變量是記憶體中得一個命名單元,在系統中為程式中每個變量都配置設定一個存儲單元,在這些存儲單元中可以存儲任何資料類型得資料。
在PHP中不需要先聲明變量後使用變量,隻需要給變量指派即可,但是PHP變量名稱必須使用
$
字元做為字首,變量名區分大寫小寫。
【示例】為變量指派
<?php
$num = 3.1415926212;
?>
在進行指派時隻需要使用運算符
=
即可,在運算符等号左側為變量名稱右側為變量值。
1.1 變量之間互相指派
【示例】
<?php
$num1 = 123;
$num2 = $num1;
echo $num2;
?>
輸出結果為:
123
,在變量之間進行指派時,隻進行傳遞變量值,變量在存儲單元中都是各自獨立的,也就是說當輸出
$num1
變量時也是可以輸出的,不會輸出空
1.2 引用指派
引用指派的意思就是将變量A與變量B做一個連結,當變量A值發生改變,變量B的值也随之進行改變。
【示例】
<?php
$a = 'test';
$b = &$a;
$a = 'test1';
echo $b;
?>
test1
引用方法也比較簡單,就是在進行指派變量前面加上
&
符号即可。
取消引用
如果不想讓變量引用指派了,我們可以使用
unset()
函數取消變量引用,這個函數是将變量A和變量B之間的引用關系斷開,并不是将變量進行銷毀。
<?php
$a = 'test';
$b = &$a;
echo $b; #輸出結果為1
unset($b);
echo $b; #輸出結果為空
?>
2. 可變變量
可變變量也就是一個可以動态變化的變量名,是一種特殊的變量,這個變量名是由應一個變量的值來進行定義的,也就是變量的名字取決于另一個變量的值。
<?php
$a = 'test';
$test = 'hello word !';
echo $$a;
?>
hello word !
定義這樣的變量隻需要在變量前面加上
$
符号即可
【進階用法】
<?php
$a = 'hello';
$$a = 'word';
echo $a.$$a;
echo '<br>';
echo $hello;
?>
helloword
word
3. 預定義變量
在PHP中提供了大量的預定義變量,通過這些變量可以擷取使用者會話、使用者操作環境和本地作業系統等資訊,由于大部分變量依賴于伺服器的版本和設定,以及其他因素,是以一些預定義變量在PHP中以指令行形式運作時并不生效,下面我列舉了一些預定義變量:
預定義變量 | 說明 |
---|---|
$GLOBALS | 調用全局作用域中的全部變量 |
$_SERVER | 顯示伺服器及環境資訊 |
$_GET | 送出GET變量 |
$_POST | 送出POST變量 |
$_FILES | 送出檔案上傳變量 |
$_REQUEST | 送出Request變量 |
$_SESSION | Session變量 |
$_ENV | 環境變量 |
$_COOKIE | Cookies變量 |
$php_errormsg | 前一個錯誤資訊 |
$HTTP_RAW_POST_DATA | 原生POST資料 |
$http_response_header | HTTP響應頭 |
$argc | 傳遞給腳本的參數數目 |
$argv | 傳遞給腳本的參數數組 |
【示例】輸出環境資訊
<?php
var_dump($_SERVER);
?>
輸出結果如圖所示:
這裡因為我的環境有中文字元是以輸出結果時會出現亂碼,後續大家可以定義一下字元編碼就不會存在亂碼了。
4. 常量
4.1 聲明常量
常量其實就是字面意思,也就是說這個變量是一成不變的,除非取消這個定義。
在定義常量時遵循PHP變量的相同命名規則,由英文字母、下劃線和數字組成,但數字不能作為首字母出現。
4.1.1 使用 define()
函數聲明常量
define()
【文法】使用
define()
聲明常量文法
define($name , $value [ $case_insensitive = true ]);
參數說明:
$name
:表示常量名稱
$value
:表示常量的值
$case_insensitive
:表示設定常量是否區分大小寫,值為
true
則不區分大小寫,為
false
則區分大小寫
注意:這裡需要注意常量值隻能是
integer、float、string、boolean、NULL或array
喲
聲明變量隻傳回布爾值,true 為聲明成功,false 為聲明失敗。
【示例】聲明常量
<?php
if (define("test","hello word")){
echo "聲明變量成功";
}else{
echo "聲明變量失敗";
}
?>
聲明變量成功
【常量與變量對比】
- 常量不需要使用
符号進行定義$
- 常量隻能使用函數進行定義,不能使用指派符
進行指派=
- 常量不需要考慮作用域,可以在任意地方進行定義和使用
- 常量一旦被定義就無法進行修改,隻能進行取消定義
- 常量的值隻能是标量
4.1.2 const關鍵字
使用過
const
關鍵字定義常量隻能用在最頂端的作用域,此方法是在編譯時定義的,不能用在函數内、循環内或者判斷語句内進行使用。
<?php
const test = "hello word";
?>
是用
const
關鍵字定義常量是比較簡單的,隻需要在定義指派前加上關鍵字即可
4.2 使用常量
<?php
define("hello","word");
echo hello;
echo constant("hello");
?>
4.3 預定義常量
預定義常量 | |
---|---|
PHP_VERSION | 擷取PHP版本 |
PHP_OS | 擷取作業系統資訊 |
PHP_API | 擷取WEB與PHP的接口資訊 |
PHP_INT_MAX | 擷取最大整數 |
PHP_BINDIR | 擷取執行路徑 |
_FILE_ | 擷取目前檔案名 |
_LINE_ | 擷取目前行數 |
DEFAULT_INCLUDE_PATH | 擷取PHP預設路徑 |
PEAR_INSTALL_DIR | 擷取PHP安裝路徑 |
PEAR_EXTENSION_DIR | 擷取PHP擴充路徑 |
PHP_LIBDIR | 擷取PHP子產品擴充路徑 |
_DIR_ | 擷取目前檔案路徑 |
_FUNCTION_ | 擷取函數名 |
M_PI | 擷取圓周率 |
_MHTHOD_ | 擷取目前成員 |
_NAMESPALE_ | 擷取命名空間 |
_CLASS_ | 擷取類名 |