php的常量

时间:2023-03-09 16:01:04
php的常量

系统常量

  1. __FILE__ 当前PHP文件的相对路径
  2. __LINE__ 当前PHP文件中所在的行号
  3. __FUNCTION__ 当前函数名,只对函数内调用起作用
  4. __CLASS__ 当前类名,只对类起作用
  5. PHP_VERSION 当前使用的PHP版本号
  6. PHP_OS 当前PHP环境的运行操作系统
  7. TRUE 与true一样
  8. FALSE 与false一样
  9. M_PI 圆周率常量值
  10. M_E 科学常数e
  11. M_LOG2E 代表log2

    e,以2为底e的对数

  12. M_LOG10E 代表lg

    e,以10为底e的对数

  13. M_LN2 2的自然对数
  14. M_LN10 10的自然对数
  15. E_ERROR 最近的错误之处
  16. E_WARNING 最近的警告之处
  17. E_PARSE 剖析语法有潜在问题之处
  18. __METHOD__ 表示类方法名,比如B::test

服务器全局变量

  1. $_SERVER 返回服务器相关信息,返回一个数组
  2. $_GET 所有GET请求过来的参数
  3. $_POST 所有POST过来的参数
  4. $_COOKIE 所有HTTP提交过来的cookie
  5. $_FILES 所有HTTP提交过来的文件
  6. $_ENV 当前的执行环境信息
  7. $_REQUEST 相当于$_POST、$_GET、$_COOKIE提交过来的数据,因此这个变量不值得信任
  8. $_SESSION session会话变量

自定义常量:

const  FOO =  'heheh';

define('FOO','heheh');

那么这两种常量又有什么区别呢?

1、const用于类成员变量的定义,一经定义,不可修改。Define不可以用于类成员变量的定义,可用于全局常量。(define可以在框架的核心方法,和函数集定义,这样定义的常量可以给整个项目提供使用)

2、Const可在类中使用,define不能;define可以在[类的]方法中定义,const不行;

3、Const不能再条件语句中定义常量

<?php
if (...){
const FOO = 'BAR'; // 无效的invalid
}
if (...) {
define('FOO', 'BAR'); // 有效的valid
}
?>

4、const采用普通的常量名称,define可以采用表达式作为名称

<?php
const  FOO = 'BAR';
for ($i = 0; $i < 32; ++$i) {
define('BIT_' . $i, 1 << $i);
}
?>

5、const只能接受静态的标量,而define可以采用任何表达式

<?php
const BIT_5 = 1 << 5;    // 无效的invalid
define('BIT_5', 1 << 5); // 有效的valid
?>

6、const定义的常量时大小写敏感,而define可以通过第三个参数(为true表示大小写不敏感)来指定大小写是否敏感。

<?php
define('FOO', 'BAR', true);
echo FOO; // BAR
echo foo; // BAR
?>