常量与魔术方法
【1】php超全局变量(系统变量)
$GLOBALS //引用全局作用域中可用的全部变量
$_SERVER //包含如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组
$_REQUEST //默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组
$_POST //post方式时,以关联数组传入脚本,参数传递给当前脚本的变量的数组
$_GET //get方式时,以关联数组传入脚本,参数传递给当前脚本的变量的数组
$_FILES //通过 HTTP POST 方式上传到当前脚本的项目的数组
$_ENV //通过环境方式传递给当前脚本的变量的数组。
$_COOKIE //通过Cookies 方式传递给当前脚本的变量的数组,临时会话变量,用来储存访问者信息
$_SESSION //通过Session方式传递给当前脚本的变量的数组,临时会话变量,用来储存访问者信息
$php_errormsg //变量包含由 PHP 生成的最新错误信息,需开启 track_errors 配置项
$HTTP_RAW_POST_DATA //包含 POST 提交的原始数据
$http_response_header //当使用HTTP 包装器时,$http_response_header 将会被 HTTP 响应头信息填充,作用于局部
$argc //运行于命令行下时传递给当前脚本的参数的数目,文件名总是作为参数传递给当前脚本,最小值为 1。
(来源于官网)
【2】php系统常量
__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
__DIR__ 表示文件所在目录
__NAMESPACE__ 表示当前命名空间(区分大小写)
(来源csdn博客搜集)
【补充】php预定义常量
(1)预定义 phpcredits() 常量
常量 值 描述
CREDITS_GROUP 1 核心开发者名单
CREDITS_GENERAL 2 总的贡献:语言设计和理念,PHP 作者 和 SAPI 模块。
CREDITS_SAPI 4 PHP 的服务器 API 模块列表,以及它们的作者。
CREDITS_MODULES 8 PHP 扩展的列表,以及它们的作者。
CREDITS_DOCS 16 文档组的贡献。
CREDITS_FULLPAGE 32 通常与其他标志组合使用。通过其他标志指示了完整独立的 HTML 页面,用于打印包含信息。
CREDITS_QA 64 质量保证团队的贡献。
CREDITS_ALL -1 所有的贡献者,等于使用 CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_QA CREDITS_FULLPAGE。 它以合适的标签产生了完整的独立 HTML 页面。这是默认的值。
(2)phpinfo() 常量
INFO_GENERAL 1 配置行,php.ini 的位置、构建日期,Web 服务器、操作系统及其他。
INFO_CREDITS 2 PHP 贡献者。参见 phpcredits()。
INFO_CONFIGURATION 4 当前 PHP 指令的本地(Local)和主(Master)值。参见 ini_get()。
INFO_MODULES 8 已加载的模块和各自的设置。
INFO_ENVIRONMENT 16 环境变量信息在 $_ENV 中亦有效。
INFO_VARIABLES 32 显示所有 EGPCS (环境变量、GET、POST、Cookie、Server)中的预定义变量。
INFO_LICENSE 64 PHP 版权信息。参见 » license faq。
INFO_ALL -1 显示以上所有。这是默认值。
(3)INI 常量
INI_USER 1 Unused
INI_PERDIR 2 Unused
INI_SYSTEM 4 Unused
INI_ALL 7 Unused
(4)assert() 常量
ASSERT_ACTIVE assert.active 启用 assert()。
ASSERT_CALLBACK assert.callback 失败断言的回调函数。
ASSERT_BAIL assert.bail 断言失败时中止执行。
ASSERT_WARNING assert.warning 为每个失败的断言产生一条 PHP 警告。
ASSERT_QUIET_EVAL assert.quiet_eval 在执行断言表达式时禁用 error_reporting。
(5)Windows 特定常量 -PHP 5.3.0 起有效
PHP_WINDOWS_VERSION_MAJOR windows 主版本,可以是 4 (NT4/Me/98/95)、 5 (XP/2003 R2/2003/2000) 或 6 (Vista/2008/7/8/8.1)。
PHP_WINDOWS_VERSION_MINOR Windows 副版本号,可以是 0 (Vista/2008/2000/NT4/95)、 1 (XP)、2 (2003 R2/2003/XP x64)、 10 (98) 或 90 (ME)。
PHP_WINDOWS_VERSION_BUILD Windows 内部版本号(例如 Windows Vista SP1 是 build 6001)
PHP_WINDOWS_VERSION_PLATFORM PHP 当前运行的平台, Windows Vista/XP/2000/NT4、Server 2008/2003 的值是 2, Windows ME/98/95 下值是 1。
PHP_WINDOWS_VERSION_SP_MAJOR 安装的 service pack 主版本号,没有安装是 0。 例如, Windows XP service pack 3 上这个值是 3。
PHP_WINDOWS_VERSION_SP_MINOR 安装的 service pack 副版本号,如果没有安装则是 0 。
PHP_WINDOWS_VERSION_SUITEMASK The suitemask is a bitmask that can tell if various features of Windows is installed, see the table below for possible bitfield values.
PHP_WINDOWS_VERSION_PRODUCTTYPE This contains the value used to determine the PHP_WINDOWS_NT_* constants. This value may be one of the PHP_WINDOWS_NT_* constants indicating the platform type.
PHP_WINDOWS_NT_DOMAIN_CONTROLLER 这是域控制器
PHP_WINDOWS_NT_SERVER 这是一个服务器系统 (eg. Server 2008/2003/2000),注意如果这是一个域控制器,通过 PHP_WINDOWS_NT_DOMAIN_CONTROLLER 报告。
PHP_WINDOWS_NT_WORKSTATION 这是一个工作站系统 (例如 Vista/XP/2000/NT4)
【3】thinkphp 常量参考
3.1预定义常量
URL_COMMON 普通模式 URL (0)
URL_PATHINFO PATHINFO URL (1)
URL_REWRITE REWRITE URL (2)
URL_COMPAT 兼容模式 URL (3)
EXT 类库文件后缀(.class.php)
THINK_VERSION 框架版本号
3.2路径常量
THINK_PATH 框架系统目录
APP_PATH 应用目录(默认为入口文件所在目录)
LIB_PATH 系统类库目录(默认为 THINK_PATH.'Library/')
CORE_PATH 系统核心类库目录 (默认为 LIB_PATH.'Think/')
MODE_PATH 系统应用模式目录 (默认为 THINK_PATH.'Mode/')
BEHAVIOR_PATH 行为目录 (默认为 LIB_PATH.'Behavior/')
COMMON_PATH 公共模块目录 (默认为 APP_PATH.'Common/')
VENDOR_PATH 第三方类库目录(默认为 LIB_PATH.'Vendor/')
RUNTIME_PATH 应用运行时目录(默认为 APP_PATH.'Runtime/')
HTML_PATH 应用静态缓存目录(默认为 APP_PATH.'Html/')
CONF_PATH 应用公共配置目录(默认为 COMMON_PATH.'Conf/')
LANG_PATH 公共语言包目录 (默认为 COMMON_PATH.'Lang/')
LOG_PATH 应用日志目录 (默认为 RUNTIME_PATH.'Logs/')
CACHE_PATH 项目模板缓存目录(默认为 RUNTIME_PATH.'Cache/')
TEMP_PATH 应用缓存目录(默认为 RUNTIME_PATH.'Temp/')
DATA_PATH 应用数据目录 (默认为 RUNTIME_PATH.'Data/')
ADDON_PATH 插件控制器目录 (默认为 APP_PATH.'Addon') 3.2.3新增
3.2系统常量
IS_CGI 是否属于 CGI模式
IS_WIN 是否属于Windows 环境
IS_CLI 是否属于命令行模式
__ROOT__ 网站根目录地址
__APP__ 当前应用(入口文件)地址
__MODULE__ 当前模块的URL地址
__CONTROLLER__ 当前控制器的URL地址
__ACTION__ 当前操作的URL地址
__SELF__ 当前URL地址
__INFO__ 当前的PATH_INFO字符串
__EXT__ 当前URL地址的扩展名
MODULE_NAME 当前模块名
MODULE_PATH 当前模块路径
CONTROLLER_NAME 当前控制器名
CONTROLLER_PATH 当前控制器路径 3.2.3新增
ACTION_NAME 当前操作名
APP_DEBUG 是否开启调试模式
APP_MODE 当前应用模式名称
APP_STATUS 当前应用状态
STORAGE_TYPE 当前存储类型
MODULE_PATHINFO_DEPR 模块的PATHINFO分割符
MEMORY_LIMIT_ON 系统内存统计支持
RUNTIME_FILE 项目编译缓存文件名
THEME_NAME 当前主题名称
THEME_PATH 当前模板主题路径
LANG_SET 当前浏览器语言
MAGIC_QUOTES_GPC MAGIC_QUOTES_GPC
NOW_TIME 当前请求时间(时间戳)
REQUEST_METHOD 当前请求类型
IS_GET 当前是否GET请求
IS_POST 当前是否POST请求
IS_PUT 当前是否PUT请求
IS_DELETE 当前是否DELETE请求
IS_AJAX 当前是否AJAX请求
BIND_MODULE 当前绑定的模块(3.2.1新增)
BIND_CONTROLLER 当前绑定的控制器(3.2.1新增)
BIND_ACTION 当前绑定的操作(3.2.1新增)
CONF_EXT 配置文件后缀(3.2.2新增)
CONF_PARSE 配置文件解析方法(3.2.2新增)
TMPL_PATH 用于改变全局视图目录(3.2.3新增)
【4】php魔术
4.1php魔术常量
__LINE__ 文件中的当前行号。
__FILE__ 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。
__DIR__ 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增) =
__FUNCTION__ 函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
__CLASS__ 类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。类名包括其被声明的作用区域(例如 Foo\Bar)。注意自 PHP 5.4 起 __CLASS__ 对 trait 也起作用。当用在 trait 方法中时,__CLASS__ 是调用 trait 方法的类的名字。
__TRAIT__ Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返回 trait 被定义时的名字(区分大小写)。Trait 名包括其被声明的作用区域(例如 Foo\Bar)。
__METHOD__ 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
__NAMESPACE__ 当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。
4.2php魔术方法
construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo() 等方法在 PHP 中被称为"魔术方法"(Magic methods)。在命名自己的类方法时不能使用这些方法名,除非是想使用其魔术功能。
1. __construce()
允行开发者在一个类中定义一个方法作为构造函数。具有构造函数的类会在每次创建新对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作。
2. __destruct()
PHP 5 引入了析构函数的概念,这类似于其它面向对象的语言,如 C++。析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。
3. __call()
在对象中调用一个不可访问方法时,__call() 会被调用。
4. __callStatic()
在对象中调用一个静态不可访问方法时,__call() 会被调用。
5. __get()
读取不可访问属性的值时,__get() 会被调用
6. _set()
在给不可访问属性赋值时,__set() 会被调用
7. __isset()
当对不可访问属性调用 isset() 或 empty() 时,__isset() 会被调用。
8. __unset()
当对不可访问属性调用 unset() 时,__unset() 会被调用。
9. __sleep()
serialize() 函数会检查类中是否存在一个魔术方法 __sleep()。如果存在,该方法会先被调用,然后才执行序列化操作。此功能可以用于清理对象,并返回一个包含对象中所有应被序列化的变量名称的数组
10. __wakeup()
unserialize() 会检查是否存在一个 __wakeup() 方法。如果存在,则会先调用 __wakeup 方法,预先准备对象需要的资源.
11. __toString()
__toString() 方法用于一个类被当成字符串时应怎样回应。
12. __invoke()
当尝试以调用函数的方式调用一个对象时,__invoke() 方法会被自动调用。
13. __set_state()
当调用 var_export() 导出类时,此静态 方法会被调用。
14. __clone()
当复制完成时,如果定义了 __clone() 方法,则新创建的对象(复制生成的对象)中的 __clone() 方法会被调用,可用于修改属性的值(如果有必要的话)。
15 __debugInfo()
(来源于csdn博客)
【5】thinkphp魔术
5.1 tp魔术方法
_get 获取GET参数
_post 获取POST参数
_param 自动判断请求类型获取GET、POST或者PUT参数(3.1新增)
_request 获取REQUEST 参数
_put 获取PUT 参数
_session 获取 $_SESSION 参数
_cookie 获取 $_COOKIE 参数
_server 获取 $_SERVER 参数
5.2tp模板魔术常量
../Public:当前项目的公共模板目录,通常是 /项目目录/Tpl/default/Public/
__PUBLIC__:当前网站的公共目录,通常是 /Public/
__TMPL__:项目的模板目录,通常是 /项目目录/Tpl/default/
__ROOT__:当前网站的地址(不含域名)
__APP__:当前项目的 URL 地址(不含域名)
__URL__:当前模块的 URL 地址(不含域名)
__ACTION__:当前操作的 URL 地址(不含域名)
__SELF__:当前的页面 URL
以上来源于官网与手册和博客的内容汇总整理方便查阅