天天看點

自學PHP筆記(四) PHP變量和常量

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);
?>
           

輸出結果如圖所示:

自學PHP筆記(四) PHP變量和常量

這裡因為我的環境有中文字元是以輸出結果時會出現亂碼,後續大家可以定義一下字元編碼就不會存在亂碼了。

4. 常量

4.1 聲明常量

常量其實就是字面意思,也就是說這個變量是一成不變的,除非取消這個定義。

在定義常量時遵循PHP變量的相同命名規則,由英文字母、下劃線和數字組成,但數字不能作為首字母出現。

4.1.1 使用

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 "聲明變量失敗";
	}
?>
           

聲明變量成功

【常量與變量對比】

  1. 常量不需要使用

    $

    符号進行定義
  2. 常量隻能使用函數進行定義,不能使用指派符

    =

    進行指派
  3. 常量不需要考慮作用域,可以在任意地方進行定義和使用
  4. 常量一旦被定義就無法進行修改,隻能進行取消定義
  5. 常量的值隻能是标量
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_ 擷取類名