[PHP從小白到大牛]-008 PHP常量

什麼是常量?

  • 值一旦定義, 就不能夠改變的量

如何定義常量?

  • 使用define函數
define("GREETING", "Welcome to yunhe!");
echo GREETING;
複製代碼
  • 注意, 常量一旦聲明, 不可改變值
define("GREETING", "Welcome to W3School.com.cn!");
echo GREETING;
define("GREETING", "Welcome to yunhe!");
echo GREETING;
複製代碼

常量和變量的區別

試着解釋, 常量和變量都有哪些區別, 請舉例說明...

定義形式不一樣;

  • 常量使用define或者const, 變量使用$符號

使用形式不一樣(常量不須要 $ 符號);

  • 常量能夠直接使用, 變量須要使用$符號

可變程度不一樣(常量的值不可改變或者銷燬);

  • 常量不可變, 變量的值可變

做用範圍不一樣(常量具備超全局做用域(函數內外均可直接使用));

  • 常量函數內外均可以使用, 變量函數外的變量, 函數內不能用, 函數內的變量, 函數外不能用

可用類型不一樣(常量只能存儲標量類型:int,float,string,bool; 和數組)

  • 變量有8中數據類型, 常量支持5種, 4個標量加上數組

常量的分類

  • 系統常量
  • 自定義常量
  • 魔術常量

系統常量

  • php自帶的常量
  • PHP_VERSION, 查看PHP版本
echo PHP_VERSION; // 7.3.6
複製代碼

試舉例說明, 系統常量都有哪些, 值是多少?(5個便可)

  • PHP_VERSION當前使用的PHP版本號
  • PHP_OS當前PHP環境的運行操做系統
  • TRUE與true同樣
  • FALSE與false同樣
  • M_PI圓周率常量值
  • M_E科學常數e
  • M_LOG2E表明log2
  • e,以2爲底e的對數
  • M_LOG10E表明lg
  • e,以10爲底e的對數
  • M_LN22的天然對數
  • M_LN1010的天然對數
  • E_ERROR最近的錯誤之處
  • E_WARNING最近的警告之處
  • E_PARSE剖析語法有潛在問題之處
  • METHOD表示類方法名,好比B::test

自定義常量

  • 用戶本身定義的常量
  • 可使用define,也可使用const
  • 使用define的方法
define("GREETING", "Welcome to yunhe!");
echo GREETING;
複製代碼
  • 使用const的方法
  • 顯示常量值, 有兩種方式
const HELLO = "hello world";

echo HELLO;

echo constant('HELLO');
複製代碼
  • 常量區分大小寫嗎?php

  • 既然常量值一經定義, 不能改變, 那我怎麼知道之前有沒有聲明過...數組

  • defined函數能夠判斷是否聲明過常量瀏覽器

const HELLO = "hello world";

var_dump(defined('HELLO'));
var_dump(defined('WORLD'));
複製代碼

魔術常量

  • 值會根據環境和上下文發生改變的量, 就像變魔術...
echo __LINE__;
複製代碼

試舉例說明, 魔術常量都有哪些, 值是多少?(5個便可)

常量名稱 含義
__LINE__ 文件中的當前行號。
__FILE__ 文件的完整路徑和文件名。
__DIR__ 文件所在的目錄
__FUNCTION__ 函數名稱
__CLASS__ 類的名稱
__TRAIT__ Trait 的名字
__METHOD__ 類的方法名
__NAMESPACE__ 當前命名空間的名稱

小練習

單選題函數

下列定義常量的方法錯誤的是()(選擇一項)spa

A define('YUNHE','PHP');

B define('_A','a');

C define('$a','$a');

D define('yunhe','php');
複製代碼

多選題操作系統

下列選項中,關於系統常量解釋正確的是()(選擇三項)code

A PHP_OS PHP的運行系統

B E_ERROR 最近的錯誤之處

C PHP_VERSION PHP的版本

D define(‘TEST’,’hello’); 定義常量TEST
複製代碼

如何查看已經定義的常量?

  • get_defined_constants()返回的是包含系統常量和自定義常量的數組
print_r(get_defined_constants())
複製代碼

print_rvar_dump的區別

試舉例說明, print_r和var_dump的區別

常量總結

小練習

多選題cdn

關於常量的定義方式正確的是()(選擇兩項)blog

A const('TEST','test');

B define('TEST','test');

C const TEST='test';

D define test='test';
複製代碼

多選題作用域

常量區分大小寫,在腳本define_con.php中定義常量const NAME= 'yunhe',下列說法正確的是()(選擇兩項)

A defined(‘NAME’) 返回true

B 在題示腳本中從新定義常量:const  NAME=’http://yunhe’;echo NAME;瀏覽器中輸出值爲 ‘yunhe’

C constanted(‘NAME’) 該函數能夠檢測NAME常量是否認義

D echo name; 輸出結果爲‘yunhe'
複製代碼

單選題

如下選項中,說法錯誤的是()(選擇一項)

A __FILE__ 獲得當前文件的完整絕對路徑和文件名

B __METHOD__ 獲得當前數據提交的方法名

C __FUNCTION__ 獲得當前函數名稱

D __CLASS__ 獲得當前類的類名
複製代碼

單選題

下列選項中,哪一項的結果可能爲「\phpStudy\WWW\myfiles」()(選擇一項)

A __DIR__

B __FILE__

C __LINE__

D __CLASS__
複製代碼
相關文章
相關標籤/搜索