php round函数输出不对_PHP常量
一 什么是常量
常量是一個簡單值的標識符,該值在腳本中不能改變。
一個常量由英文字母、下劃線、和數字組成,但數字不能作為首字母出現。 (常量名不需要加 $ 修飾符),常量在整個腳本中都可以直接使用。
使用常量時,不能在常量名前添加$ 符號,不然會將常量轉換成新的未定義變量使用,會導致報錯
PHP中(PHP 4及以后)我們可以使用函數define()來定義常量
define ( string $name , mixed $value [, bool $case_insensitive = false ] ) 注意:該函數有三個參數 name:必選參數,常量名稱,即標志符 value:必選參數,常量的值 case_insensitive :可選參數,如果設置為 TRUE,該常量則大小寫不敏感,默認是大小寫敏感的下面我們來舉個栗子:
<?php define('NAME',"PHP是世界上最好的語言"); //定義一個名為PI的常量,區分大小寫 echo NAME; //輸出:PHP是世界上最好的語言 ?> 如果代碼寫成 define('NAME',"PHP是世界上最好的語言",true)則表示不區分大小寫PHP 5.3.0之后,除了使用函數define()之外,我們還可以使用PHP關鍵字const來定義常量
<?php //以下代碼需在PHP 5.3.0及之后的版本中運行 const PI = 3.14159; //使用const關鍵字定義一個名為PI的常量 echo PI; //輸出:3.14159 ?> define()是函數const是語言結構所以在執行時const要快得多雖然上述兩種方式均可以定義常量,但是它們之間有什么不同之處呢。下面我們來一一講解PHP中define()函數和const關鍵字定義常量的區別
一 版本差異
兩種定義常量的方式之間存在版本差異,函數define()在PHP4和PHP5中均可使用,關鍵字const只能在PHP 5.3.0及其后的版本中使用。
二 定義位置的區別
由于函數define()定義的常量是在執行define()函數時定義的,因此可以在函數內、循環內、if語句內等函數能夠被調用的任何地方使用define()函數定義常量
與define()不同的是,由于const關鍵字定義的常量是在編譯時定義的,因此const關鍵字定義常量必須處于最頂端的作用區域。這也就意味著不能在函數內、循環內以及if語句之內用const來定義常量。
<?php //使用const關鍵字定義常量必須處于最頂端的作用區域 //也就是可以在編譯時直接解析定義的地方const DEMO = 'DEMO';class Person{const MAN = '男';const WOMAN = '女';}interface USB{const VERSION_2 = '2.0';const VERSION_3 = '3.0';} ?>三 對值的表達式支持的差異
雖然關鍵字const和define()定義的常量值都只能為null或標量數據(boolean,integer,float和string類型)以及resource類型(不推薦定義resource類型的常量,否則可能出現無法預知的結果)。不過,由于關鍵字const定義常量是在編譯時定義的,因此const關鍵字定義的常量值的表達式中不支持算術運算符、位運算符、比較運算符等多種運算符,而這些運算符在define()函數定義常量時都是可以直接使用的
<?php define('DEFINE_VAR1', 1 << 1); //const CONST_VAR1 = (1 << 1); //const不支持位運算符,PHP會報語法錯誤define('DEFINE_VAR2', 1 + 1); //const CONST_VAR2 = 1 + 1 ; //const不支持算術運算符,PHP會報語法錯誤define('DEFINE_VAR3', 1 == 1); //const CONST_VAR3 = 1 == 1 ; //const不支持比較運算符,PHP會報語法錯誤$value = 3; define('DEFINE_VAR4', $value); //const CONST_VAR4 = $value ; //const不支持變量形式的值,PHP會報語法錯誤define('DEFINE_VAR5', true || false); //const CONST_VAR5 = true || false ; //const不支持邏輯運算符,PHP會報語法錯誤define('DEFINE_VAR6', 'Hello'.' World!'); //const CONST_VAR6 = 'Hello'.' World!' ; //const不支持字符串運算符,PHP會報語法錯誤class User{} $user = new User();define('DEFINE_VAR7', $user instanceof User); //const CONST_VAR7 = $user instanceof User ; //const不支持類型運算符,PHP會報語法錯誤 ?>四 對字符大小寫敏感的支持差異
函數define()可以接收第3個參數,如果該參數為true,則表示常量名的大小寫不敏感。而使用const關鍵字定義常量卻沒有提供類似的功能,默認大小寫敏感
<?php // 設置編碼為UTF-8,以避免中文亂碼 header('Content-Type:text/html;charset=utf-8');// define()的第3個參數為true時,表示大小寫不敏感 define('SITE_NAME', 'PHP是世界上最好的語言', true); echo SITE_NAME; // 輸出:PHP是世界上最好的語言 echo site_name; // 輸出:PHP是世界上最好的語言 echo SiTe_NamE; // 輸出:PHP是世界上最好的語言 const DOMAIN_NAME = 'PHP是世界上最好的語言'; echo DOMAIN_NAME; // 輸出:PHP是世界上最好的語言 echo domain_name; // PHP提示常量未定義 echo DomaIN_nAMe; // PHP提示常量未定義 ?>下一期:PHP字符串
總結
以上是生活随笔為你收集整理的php round函数输出不对_PHP常量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 联勤部队是什么部队
- 下一篇: nodejs和python和php_PH