程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 前端學php之常量,學php之常量

前端學php之常量,學php之常量

編輯:關於PHP編程

前端學php之常量,學php之常量


×
目錄
[1]定義常量 [2]常量檢測 [3]系統常量[4]魔術常量

前面的話

  常量在javascript中並不存在,在php中卻是與變量並列的重要內容。常量類似變量,但常量一旦被定義就無法更改或撤銷定義。常量最主要的作用是可以避免重復定義,篡改變量值,提高代碼可維護性。下面將詳細介紹php中的變量

 

定義常量

  常量是一個簡單值的標識符。如同其名稱所暗示的,在腳本執行期間一個常量一旦被定義,就不能再改變或取消定義。常量默認為大小寫敏感。按照慣例常量標識符總是大寫的

  常量名和其它任何PHP標簽遵循同樣的命名規則。合法的常量名以字母或下劃線開始,後面跟著任何字母,數字或下劃線

  和超全局變量一樣,常量的范圍是全局的。不用管作用區域就可以在腳本的任何地方訪問常量

  常量只能包含標量數據(boolean,integer,float 和 string)。可以定義 resource常量,但應盡量避免,因為會造成不可預料的結果

define()函數

  定義常量使用define()函數,它使用三個參數:首個參數定義常量的名稱,第二個參數定義常量的值,可選的第三個參數規定常量名是否對大小寫敏感,默認是false

bool define ( string name, mixed value [, bool case_insensitive] )
<?php
$p = 'PI0';
define('PI',3.14);
define('PI',3.15);//無效,因為常量無法被修改定義
define($p,3.14);
echo PI;//3.14
echo "<br>";
echo PI0;//3.14
?>

const

  在PHP5.3.0以後,可以使用const關鍵字在類定義之外定義常量

  使用const關鍵字定義常量必須處於最頂端的作用區域,因為用此方法是在編譯時定義的。這就意味著不能在函數內,循環內以及if語句之內用const來定義常量

<?php
// 以下代碼在 PHP 5.3.0 後可以正常工作
const CONSTANT = 'Hello World';
echo CONSTANT;
?>

 

常量檢測

  對於常量來說,通常要檢測常量是否定義或檢測常量的值,涉及到defined()函數和constant()函數

defined()函數

  defined()函數用來判斷一個常量是否已經定義,其語法格式為:

bool defined(string constants_name)

  若存在則返回true,否則返回false

  如果常量被重復定義後,PHP解析器會發出"Constant XXX already defined"的警告,提醒該常量已被定義過

<?php 
define("PI1",3.14);
$p = "PI1";
$is1 = defined($p);
$is2 = defined("PI2");
var_dump($is1);//bool(true)
var_dump($is2);//bool(false)
?>

constant()函數

  constant()函數用來返回一個常量的值,語法格式為:

mixed constant(string constant_name)
<?php
$p;
define("PI1",3.14);
define("PI2",3.142);
$height = "中";
if($height == "中"){
    $p = "PI1";
}else{
    $p = "PI2";
}
$r = 1;
$area = constant("PI") * $r * $r;
echo $area;
?>

 

系統常量

  在php中,除了可以自己定義常量外,還預定義了一系列系統常量,可以在程序中直接使用來完成一些特殊功能。下面是一些在系統中常見的預定義常量

PHP_OS        UNIX或WINNT等     執行PHP解析的操作系統名稱
PHP_VERSION   5.2.6等           當前PHP的版本號
E_ERROR       1                錯誤,導致PHP腳本運行停止
E_WARNING     2                警告,不會導致PHP腳本運行停止
E_PARSE       4                解析錯誤,帽程序解析器報告
E_NOTICE      8                非關鍵的錯誤,例如變量未初始化
M_PI          3.1415926535898  數學中的PI值   

  完整的系統常量列表移步至此

<?php
echo PHP_VERSION;//5.5.12 echo "<br />"; echo PHP_OS;//WINNT echo "<br />"; ?>

 

魔術常量

  PHP中有8個系統常量會根據它們使用的位置改變而改變,這樣的常量被稱為魔術常量

__LINE__        文件中的當前行號。
__FILE__        文件的完整路徑和文件名。如果用在被包含文件中,則返回被包含的文件名。自PHP 4.0.2起,__FILE__ 總是包含一個絕對路徑(如果是符號連接,則是解析後的絕對路徑),而在此之前的版本有時會包含一個相對路徑
__DIR__         文件所在的目錄。如果用在被包括文件中,則返回被包括的文件所在的目錄。除非是根目錄,否則目錄中名不包括末尾的斜槓。(PHP 5.3.0新增)
__FUNCTION__    函數名稱(PHP 4.3.0新加)。自PHP5起本常量返回該函數被定義時的名字(區分大小寫)。在PHP4中該值總是小寫字母。
__CLASS__       類的名稱(PHP 4.3.0新加)。自PHP5起本常量返回該類被定義時的名字(區分大小寫)。在PHP4中該值總是小寫字母。類名包括其被聲明的作用區域(例如 Foo\Bar)
__TRAIT__       Trait 的名字(PHP 5.4.0新加)。自PHP 5.4起此常量返回 trait 被定義時的名字(區分大小寫)。Trait 名包括其被聲明的作用區域(例如 Foo\Bar)
__METHOD__      類的方法名(PHP 5.0.0 新加)。返回該方法被定義時的名字(區分大小寫)
__NAMESPACE__   當前命名空間的名稱(區分大小寫)。此常量是在編譯時定義的(PHP 5.3.0 新增)
<?php
echo __FILE__;//D:\wamp\www\1.php
echo "<br />";
echo __LINE__;//11
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved