iT邦幫忙

2021 iThome 鐵人賽

DAY 5
0
自我挑戰組

後端新手PHP+Laravel筆記系列 第 5

[Day5]PHP常量

  • 分享至 

  • xImage
  •  

PHP常量

可以使用 const 關鍵字或 define() 函數兩種方法來定義一個常量。函數 define() 允許將常量定義為一個表達式,而 const 關鍵字有一些限制。一個常量一旦被定義,就不能再改變或者取消定義。

使用 const 關鍵字定義常量時,只能包含標量數據(bool、int、float 、string)。可以將常量定義為一個表達式,也可以定義為一個 array。還可以定義 resource 為常量,但應盡量避免,因為可能會造成不可預料的結果。

可以簡單的通過指定其名字來取得常量的值,與變量不同,不應該在常量前面加上 $ 符號。如果常量名是動態的,也可以用函數 constant() 來獲取常量的值。用 get_defined_constants() 可以獲得所有已定義的常量列表。

以下為定義常量範例

<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // 輸出 "Hello world."
echo Constant; // 拋出錯誤:未定義的常量 "Constant"
               // 在 PHP 8.0.0 之前,输出 "Constant" 會併發出一個提示級別錯誤訊息
?>

以下範例為使用關鍵字 const 定義常量

<?php
// 簡單的標量值
const CONSTANT = 'Hello World';

echo CONSTANT;

// 標量表達式
const ANOTHER_CONST = CONSTANT.'; Goodbye World';
echo ANOTHER_CONST;

const ANIMALS = array('dog', 'cat', 'bird');
echo ANIMALS[1]; // 將輸出 "cat"

// 常量數組
define('ANIMALS', array(
    'dog',
    'cat',
    'bird'
));
echo ANIMALS[1]; // 將輸出 "cat"
?>

魔術常量

https://ithelp.ithome.com.tw/upload/images/20210905/20128999Lb6nlXBQ2l.jpg

以下為魔術常量範例:

<?php
namespace UserModel {
    class User {
        public function __construct() {
            echo 'I am in '.__CLASS__."\n";
        }
        public function showData() {
            echo 'I am in '.__METHOD__."\n";
        }
    }
   
    $obj = new User;
    $obj->showData();
    echo __NAMESPACE__;
}
?>

// outputs
// I am in UserModel\User
// I am in UserModel\User::showData
// UserModel

資料來源:https://www.php.net/manual/zh/


上一篇
[Day4]PHP變數命名規則
下一篇
[Day6]PHP運算符01
系列文
後端新手PHP+Laravel筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言