常量的存在和獲取

2021-07-12 03:50:58 字數 1518 閱讀 9920

定義了常量,那麼就要使用常量,那麼如何獲取常量值呢?

一般來說,常量的取值分為兩種不同的方式,接下來讓我們一起來探探吧!

第一種是使用常量名直接獲取值,看下面計算圓的面積的例子:

<?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 == "中")else

if($height == "低")

$r=1;

$area=constant($p)*$r*$r;

echo

$are;

?>

如果常量被重複定義以後,php解析器會發出「constant *** already defined」的警告,提醒我們該常量已經被定義過。那麼,在團隊開發,或**量很大的情況下,我們如何去判定乙個常量是否被定義呢?

defined()函式可以幫助我們判斷乙個常量是否已經定義,其語法格式為:

bool defined(string constants_name)
它只有引數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 判斷常量,變數和函式是否存在

判斷變數是否被定義 defined 1 if defined const name 判斷變數是否存在 isset 注意變數未宣告或宣告時賦值為null,isset均返回false,如 1 f isset var name 函式檢測用function exists,注意待檢測的函式名也需要使用引號,如...

const常量 指向常量的指標和常量指標

1 先看const常量的情況 const int a 2 int const b c c是已經宣告過的整型 兩者都可以。本地的const常量必須在第一次宣告時就初始化,用變數或常量初始化都可以,只是初始化一次以後它的值就不能再改變了,此所謂const的含義。2 接著看指向常量的指標 const in...

常量指標和指向常量的指標

首先指出乙個錯誤,壓根就不應該有指標常量這個說法。經常聽到有關常量指標和指標常量的討論,也經常見到有關兩者區別的文章,然而,有些文章卻誤導了讀者,他們的結論根本就是錯的。例如關於指標常量和常量指標的討論,結果完全顛倒了 而其他一些文章呢,充其量只是火上加油,讓本來就很複雜的事情變得更加難於理解,例如...