1. 程式人生 > >PHP常量------09

PHP常量------09

目錄

一: 什麼是常量

二: 常量的作用

三: 系統常量

四: PHP-常量如何取值

五: PHP-如何判定常量是否被定義


一: 什麼是常量

1.常量可以理解為值不變的量(如圓周率);

2.常量值被定義後,在指令碼的其他任何地方都不可以被改變;

3.有效的常量名以字元或下劃線開頭(常量名稱前面沒有 $ 符號);

4.與變數不同,常量貫穿整個指令碼是自動全域性的;

5.PHP中的常量分為自定義常量和系統常量;

6.自定義常量是根據我們開發的需要,而定義的常量,它通過使用PHP中的函式define()定義;

7. define()函式的語法格式為

define(string constant_name, mixed value, case_sensitive = true)
  • 第一個引數“constant_name”為必選引數,常量名稱,即標誌符,常量的命名規則與變數的一致,但是要注意哦,它可不帶美元符號哦;
  • 第二個引數“value”為必選引數,它是常量的值;
  • 第三個引數“case_sensitive”為可選引數,指定是否大小寫敏感,設定為true表示不敏感,一般不指定第三個引數的情況下,預設第三個引數的值為false;
  • 注意: string表示引數型別為字串型別,mixed表示引數型別可以接受為多種不同的型別,case_sensitive = true表示預設為布林型別TRUE

8.eg:定義一個常量GREETING,常量值為"Welcome to W3School.com.cn!",大小寫敏感;

<?php
define("GREETING", "Welcome to W3School.com.cn!");
echo GREETING;
?>

效果:

Welcome to W3School.com.cn!

9.eg:建立了一個對大小寫不敏感的常量,值為 "Welcome to W3School.com.cn!"

<?php
define("GREETING", "Welcome to W3School.com.cn!", true);
echo greeting;
?>

效果:

Welcome to W3School.com.cn!

二: 常量的作用

1.常量主要功效是可以避免重複定義,篡改變數值。在我們進行團隊開發時,或者程式碼量很大的時候,對於一些第一次定義後不改變的量,如果我們使用變數,在不知情的情況下,使用同一變數名時,變數值就會被替換掉,從而會引發伺服器執行錯誤的任務。

2.使用常量還能提高程式碼的可維護性。如果由於某些原因,常量的值需要變更時候,我們只需要修改一個地方。例如在做計算中,起初我們取圓周率為3.14,於是很多計算中我們都使用3.14進行計算,當要求計算精度提高,圓周率需要取3.142的時候,我們不得不修改所有使用3.14的程式碼,倘若程式碼量比較多時,不僅工作量大,還可能遺漏。

3.eg:

<?php
define("PI",3.1415);
$r=3;
echo "面積為:".(PI*$r*$r)."<br />";
echo "周長為:".(2*PI*$r)."<br />";
?>

效果:

面積為:28.2735
周長為:18.849

三: 系統常量

系統常量是PHP已經定義好的常量,我們可以直接拿來使用,常見的系統常量有

1.  __FILE__ :php程式檔名。它可以幫助我們獲取當前檔案在伺服器的物理位置。

2. __LINE__ :PHP程式檔案行數。它可以告訴我們,當前程式碼在第幾行。

3. PHP_VERSION:當前解析器的版本號。它可以告訴我們當前PHP解析器的版本號,我們可以提前知道我們的PHP程式碼是否可被該PHP解析器解析。

4. PHP_OS:執行當前PHP版本的作業系統名稱。它可以告訴我們伺服器所用的作業系統名稱,我們可以根據該作業系統優化我們的程式碼。

例子:

<?php
echo __FILE__;
echo "<br />";
echo __LINE__;
echo "<br />";
echo PHP_VERSION;
echo "<br />";
echo PHP_OS;
echo "<br />";
?>

效果:

D:\wwwroot\test\Ajax.php
4
5.6.27
WINNT

四: PHP-常量如何取值

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

2.獲取常量值的有兩種方法取值:

  • 第一種是使用常量名直接獲取值;例如計算圓周率的面積,如下
    <?php
    define("PI",3.14);
    $r=1;
    $area = PI*$r*$r; //計算圓的面積
    echo $area;
    ?>
  • 第二種是使用constant()函式。它和直接使用常量名輸出的效果是一樣的,但函式可以動態的輸出不同的常量,在使用上要靈活、方便,其語法格式如下
mixed constant(string constant_name)

       注意: 第一個引數constant_name為要獲取常量的名稱,也可為儲存常量名的變數。如果成功則返回常量的值,失敗則提示錯誤資訊常量沒有被定義。(注:mixed表示函式返回值型別為多種不同的型別,string表示引數型別為字串型別)

<?php
define("PI",3.14);
$r=1;
$area = constant("PI"); //獲取常量的值
echo $area;  //3.14
?>

五: PHP-如何判定常量是否被定義

1.如果常量被重複定義以後,PHP解析器會發出“Constant XXX already defined”的警告,提醒我們該常量已經被定義過。那麼,在團隊開發,或程式碼量很大的情況下,我們如何去判定一個常量是否被定義呢?

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

bool defined(string constants_name)

    注意:它只有引數constant_name,指的是要獲取常量的名稱,若存在則返回布林型別true,否則返回布林型別false; (注:bool表示函式返回值型別為布林型別)

3.eg:

<?php 
define("PI1",3.14);
$p = "PI1";
$is1 = defined($p);
$is2 = defined("PI2");
var_dump($is1);  //存在這個常量返回ture
echo "<br />"; //不存在這個常量返回false
var_dump($is2);
?>

效果:

bool(true) 
bool(false)