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

blxt發表於2021-04-12

本文轉發來自:blog.csdn.net/KH_FC/article/detail...
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($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 使用常量

    獲取變數值也是比較簡單的可以採用變數名的方式獲取或者是使用constant()函式進行獲取,這兩種方式輸出的值是一樣的,只不過使用函式獲取動態常量時更方便。
    示例
    <?php
     define("hello","word");
     echo hello;
     echo constant("hello");
    ?>
    輸出結果為:兩個word

注意:使用函式輸出常量值時,輸出正確可正常輸出,但是輸出錯誤會出現報錯

4.3 預定義常量

PHP中提供了大量的預定義常量,不過大多數預定義常量都是由不同的擴充套件庫進行定義的,只有載入了這些擴充套件庫才能使用這些預定義常量,這裡要注意有些預定義常量會根據不同的位置會有不同的改變,比如_FLNE_的值就是依賴於他所在的位置來決定。下面總結了一些常用的預定義常量:

預定義常量 說明
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_ 獲取類名
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章