常量的存在和获取
一、獲取常量的兩種方式
定義了常量,那么就要使用常量,那么如何獲取常量值呢?
一般來說,常量的取值分為兩種不同的方式,接下來讓我們一起來探探吧!
第一種是使用常量名直接獲取值,看下面計算圓的面積的例子:
<?php define("PI",3.14); $r=1; $area = PI*$r*$r; //計算圓的面積 ?>直接使用常量名PI獲取它的值參與運算。
第二種是使用constant()函數。它和直接使用常量名輸出的效果是一樣的,但函數可以動態的輸出不同的常量,在使用上要靈活、方便,其語法格式如下:
mixed constant(string constant_name)第一個參數constant_name為要獲取常量的名稱,也可為存儲常量名的變量。如果成功則返回常量的值,失敗則提示錯誤信息常量沒有被定義。(注:mixed表示函數返回值類型為多種不同的類型,string表示參數類型為字符串類型)。參考下面例子更好的理解:
<?php $p=""; //定義圓周率的兩種取值 define("PI1",3.14); define("PI2",3.142); //定義值的精度 $height = "中"; //根據精度返回常量名,將常量變成了一個可變的常量 if($height == "中"){$p = "PI1"; }else if($height == "低"){$p = "PI2"; } $r=1; $area=constant($p)*$r*$r; echo $are; ?>二、如何判定常量是否被定義
如果常量被重復定義以后,PHP解析器會發出“Constant XXX already defined”的警告,提醒我們該常量已經被定義過。那么,在團隊開發,或代碼量很大的情況下,我們如何去判定一個常量是否被定義呢?
defined()函數可以幫助我們判斷一個常量是否已經定義,其語法格式為:
它只有參數constant_name,指的是要獲取常量的名稱,若存在則返回布爾類型true,否則返回布爾類型false; (注:bool表示函數返回值類型為布爾類型)
define("PI1",3.14); $p = "PI1"; $is1=define($p); $is2=define("PI2"); var_dump($is1); var_dump($is2> ?>執行結果如下:
bool(true)
bool(false)
結果可以看出,PI2沒有定義,$p是常量PI1,已定義過。
總結
- 上一篇: 今日头条怎么发视频赚钱
- 下一篇: PHP中的错误控制运算符