PHP 常量

常量

  • 在脚本中无法改变该值。
  • 常量名称前面没有 $ 符号
  • 常量贯穿整个脚本是自动全局的。

1. 常量设置

define方法设定值
define ( string $name , mixed $value [, bool $case_insensitive = false ] )

三个参数:

  • 常量的名称
  • 常量的值
  • 第三个参数常量名是否对大小写敏感。默认是 false。(可选的)

eg:

<?php
    define("GREETING", "Welcome to W3School.com.cn!", true);
    echo greeting;
?>
const关键字设定值

php5.3以后添加的关键字,用来设定类常量和普通常量。

const CA="const";
define与const的区别
  • define()可以在函数内、循环内、if语句内等函数能够被调用的任何地方使用.const定义常量必须处于最顶端的作用区域,不能在函数内、循环内以及if语句之内用const来定义常量.
  • const关键字定义的常量值的表达式中不支持算术运算符、位运算符、比较运算符等多种运算符,而这些运算符在define()函数定义常量时都是可以直接使用的。

  • define可以设置大小敏感

  • const可以定义类常量,也可以定义普通常量。类常量只能通过类名来引用。

2. 常量值读取

a.使用常量名直接获取值
b.使用constant()函数
mixed constant ( string $name )
参数
    name    常量名。 
返回值
    返回常量的值。如果常量未定义则返回 NULL。 

2. 已定义常量列表获取

array get_defined_constants ([ bool $categorize = false ] )
函数返回一个多维数组,分类为第一维的键名,常量和它们的值位于第二维。 根据系统定义的情况,返回值也会不同。

返回值结构
Array
(
    [Core] => Array
        (
            [E_ERROR] => 1
            [E_WARNING] => 2
            [E_PARSE] => 4
            [E_NOTICE] => 8
            [E_CORE_ERROR] => 16
            [E_CORE_WARNING] => 32
            [E_COMPILE_ERROR] => 64
            [E_COMPILE_WARNING] => 128
            [E_USER_ERROR] => 256
            [E_USER_WARNING] => 512
            [E_USER_NOTICE] => 1024
            [E_ALL] => 2047
            [TRUE] => 1
        )

    [pcre] => Array
        (
            [PREG_PATTERN_ORDER] => 1
            [PREG_SET_ORDER] => 2
            [PREG_OFFSET_CAPTURE] => 256
            [PREG_SPLIT_NO_EMPTY] => 1
            [PREG_SPLIT_DELIM_CAPTURE] => 2
            [PREG_SPLIT_OFFSET_CAPTURE] => 4
            [PREG_GREP_INVERT] => 1
        )

    [user] => Array
        (
            [MY_CONSTANT] => 1
        )

)


常见的的键名
 Array
(
    [0] => Core
    [1] => calendar
    [2] => date
    [3] => filter
    [4] => ftp
    [5] => hash
    [6] => iconv
    [7] => json
    [8] => mcrypt
    [9] => odbc
    [10] => pcre
    [11] => session
    [12] => standard
    [13] => tokenizer
    [14] => zlib
    [15] => libxml
    [16] => dom
    [17] => xml
    [18] => openssl
    [19] => curl
    [20] => mbstring
    [21] => exif
    [22] => gd
    [23] => mysql
    [24] => mysqli
    [25] => soap
    [26] => sockets
    [27] => sqlite3
    [28] => xsl
    [29] => user
)

类常量

魔术常量

 魔术指的是它的值可变,常量指的是它可以全局应用,且不需要加到$.

几个 PHP 的"魔术常量" 名称 说明 
__LINE__ 文件中的当前行号。  
__FILE__ 文件的完整路径和文件名。dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增)
__FUNCTION__ 函数名称(PHP 4.3.0 新加)。
__CLASS__ 类的名称(PHP 4.3.0 新加)。
__METHOD__ 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。  
__NAMESPACE__ 当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。  

class TAction extends Action{
    //put your code here
    function a() {
        p(__DIR__);
        p(__FILE__);
        p(__CLASS__);
        p(__METHOD__);
        p(__FUNCTION__);
        p(__LINE__);
        p(__NAMESPACE__);
        p(__TRAIT__);
    }
}
//输出:
 E:\workspace\PHPProject\zsgj\Index\Lib\Action\Service
 E:\workspace\PHPProject\zsgj\Index\Lib\Action\Service\TAction.class.php
 TAction
 TAction::a
 a
 22

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值