系统常量
- __FILE__ 当前PHP文件的相对路径
- __LINE__ 当前PHP文件中所在的行号
- __FUNCTION__ 当前函数名,只对函数内调用起作用
- __CLASS__ 当前类名,只对类起作用
- PHP_VERSION 当前使用的PHP版本号
- PHP_OS 当前PHP环境的运行操作系统
- TRUE 与true一样
- FALSE 与false一样
- M_PI 圆周率常量值
- M_E 科学常数e
- M_LOG2E 代表log2
e,以2为底e的对数
- M_LOG10E 代表lg
e,以10为底e的对数
- M_LN2 2的自然对数
- M_LN10 10的自然对数
- E_ERROR 最近的错误之处
- E_WARNING 最近的警告之处
- E_PARSE 剖析语法有潜在问题之处
- __METHOD__ 表示类方法名,比如B::test
服务器全局变量
- $_SERVER 返回服务器相关信息,返回一个数组
- $_GET 所有GET请求过来的参数
- $_POST 所有POST过来的参数
- $_COOKIE 所有HTTP提交过来的cookie
- $_FILES 所有HTTP提交过来的文件
- $_ENV 当前的执行环境信息
- $_REQUEST 相当于$_POST、$_GET、$_COOKIE提交过来的数据,因此这个变量不值得信任
- $_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
?>