PHP 常量
常量是单个值的标识符(名称)。在脚本中无法改变该值。
有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。
注释:与变量不同,常量贯穿整个脚本是自动全局的。
PHP常量的两种定义方式
-
const
const
是语言结构,效率更高<?php const USERNAME = 'chenxr'; echo USERNAME; echo const('USERNAME'); ?>
-
define()
define()
是函数,不能用于类常量的定义<?php define('USERNAME','chenxr'); echo USERNAME; ?>
魔术常量
PHP中有八个魔术常量,它们的值会随着它们在代码中的位置的改变而改变。这些特殊的常量不区分大小写。 -
__FILE__
:返回当前文件的绝对路径(包含文件名)。 -
__LINE__
:返回当前行号,也可以写成__line__。 -
__DIR__
:返回当前文件的绝对路径,不包含文件名,等价于dirname(__FILE__)
。 -
__FUNCTION__
:返回当前函数(或方法)的名称。 -
__CLASS__
:返回当前的类名(包括该类的作用区域或命名空间)。 -
__TRAIT__
:返回当前的trait名称(包括该trait的作用区域或命名空间)。 -
__METHOD__
:返回当前的方法名(包括类名) __NAMESPACE__
:返回当前文件的命名空间的名称。
超全局变量
PHP中常用的超全局数组:
-
$GLOBALS
:引用全局作用域中可用的全部变量 -
$_SERVER
:服务器和执行环境信息 $_GET
$_POST
-
$_REQUEST
(尽量不要用) $_SESSION
$_COOKIE
-
$_FILES
:HTTP 文件上传变量 -
$_ENV
:环境变量
其中,$_SERVER:
-
$_SERVER['SERVER_ADDR']
-服务器ip -
$_SERVER['SERVER_NAME']
-服务器名 -
$_SERVER['REQUEST_TIME']
-请求开始时的时间 -
$_SERVER['QUERY_STRING']
-query string(查询字符串),如果有的话,通过它进行页面访问。 -
$_SERVER['HTTP_REFERER']
-引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言之,该值并不可信。 -
$_SERVER['HTTP_USER_AGENT']
-当前请求头中 User-Agent: 项的内容,如果存在的话。该字符串表明了访问该页面的用户代理的信息。一个典型的例子是:Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)。 -
$_SERVER['REMOTE_ADDR']
-浏览当前页面的用户的 IP 地址。 -
$_SERVER['REQUEST_URI']
-URI 用来指定要访问的页面。例如 “/index.html”。 -
$_SERVER['PATH_INFO']
-包含由客户端提供的、跟在真实脚本名称之后并且在查询语句(query string)之前的路径信息,如果存在的话。例如,如果当前脚本是通过 URL http://www.example.com/php/path_info.php/some/stuff?foo=bar 被访问,那么$_SERVER['PATH_INFO']
将包含/some/stuff
。
PHP数据类型
三大数据类型:标量、复合、特殊
标量:是数据结构中最基本单元,只能储存一个数据,包括boolean,string,integer,float
- 浮点数不能用于比较运算(浮点数的加减运算有误差)
- 布尔类型中 FALSE 的七中情况:整型0(0),浮点数0(0.0),字符串0('0'),false,空数组(array()),NULL
复合:包括数组array和对象object
特殊:NULL 和 resource
- NULL 的三种情况:
- 直接赋值为NULL
- 未定义
- unset()销毁