PHP 语法
PHP 脚本可以放在文档中的任何位置,以<?php
开始,以?>
结束,通常包含 HTML 标签和一些 PHP 脚本代码,每个代码行都必须以分号结束。
PHP 有两种在浏览器输出文本的基础指令:echo 和 print
实例 1:向页面输出Hello World!
1 | <!DOCTYPE html> |
实例 2:PHP 中的注释和 C 语言一样
1 | <!DOCTYPE html> |
PHP 变量
变量是用于存储信息的”容器”:从下面的表达式 z=x+y ,我们可以计算出 z 的值为 11,在 PHP 中,这些字母被称为变量,没有声明变量的命令,变量在第一次赋值给它的时候被创建
PHP 变量规则:
- 变量以 $ 符号开始,后面跟着变量的名称
- 变量名必须以字母或者下划线字符开始
- 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
- 变量名不能包含空格
- 变量名是区分大小写的($y 和 $Y 是两个不同的变量)
实例 3:PHP 中的变量
1 |
|
PHP 是一门弱类型语言,不必向 PHP 声明该变量的数据类型,PHP 会根据变量的值,自动把变量转换为正确的数据类型。
实例 4:PHP 是弱类型语言
1 |
|
PHP 变量作用域
变量的作用域是脚本中变量可被引用或是使用的部分,PHP 有四种不同的变量作用域:local、global、static、parameter
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global
关键字,在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问:
实例 5:全局变量和局部变量
1 |
|
在以上实例中 myTest() 函数定义了 $x 和 $y 变量。 $x 变量在函数外声明,所以它是全局变量 , $y 变量在函数内声明所以它是局部变量。
当我们调用 myTest()函数并输出两个变量的值, 函数将会输出局部变量 $y 的值,但是不能输出 $x 的值,因为 $x 变量在函数内定义,无法在函数内使用,如果要在一个函数中访问一个全局变量,需要使用 global 关键字。
然后我们在 myTest()函数外输出两个变量的值,函数将会输出全局变量 $x 的值,但是不能输出 $y 的值,因为 $y 变量在函数中定义,属于局部变量。
所以可以在不同函数中使用相同的变量名称,因为这些函数内定义的变量名是局部变量,只作用于该函数内。
实例 6:函数内访问全局变量用 global 关键字
1 |
|
PHP 将所有全局变量存储在一个名为 $GLOBALS[index]
的数组中。 index
保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。
实例 6:上面的实例 5 可以写成这样
1 |
|
当一个函数完成时,它的所有变量通常都会被删除,有时候希望某个局部变量不被删除。要做到这一点,第一次声明变量时使用 static 关键字,然后,每次调用该函数时,该变量将会保留着函数前一次被调用时的值。(该变量仍然是函数的局部变量)
实例 7:static 作用域
1 |
|
参数是通过调用代码将值传递给函数的局部变量,在参数列表中声明的,作为函数声明的一部分
实例 8:参数作用域
1 |
|
在 php 中函数是有独立的作用域,所以局部变量会覆盖全局变量,即使局部变量中没有全局变量相同的变量,也会被覆盖。
实例 9:
1 |
|
要想在函数中直接使用全局变量可以通过 global 关键字声明或者通过 php 中自定义的 $GLOBALS 数组获取
实例 10:
1 |
|
PHP 5 echo/print 语句
echo 和 print 区别:
- echo - 可以输出一个或多个字符串,没有返回值
- print - 只允许输出一个字符串,返回值总为 1
实例 11:使用 echo 命令输出字符串(字符串可以包含 HTML 标签)
1 |
|
实例 12:使用 echo 命令输出变量和字符串
1 |
|
实例 13:使用 print 命令输出字符串(字符串可以包含 HTML 标签)
1 |
|
实例 14:使用 print 命令输出变量和字符串
1 |
|
PHP EOF(heredoc)
PHP EOF(heredoc)是一种在命令行 shell(如 sh、csh、ksh、bash、PowerShell 和 zsh)和程序语言(像 Perl、PHP、Python 和 Ruby)里定义一个字符串的方法。
使用概述:
- 必须后接分号,否则编译通不过。
- EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。
- 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。**
- 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
- 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与 q 和 qq 的用法。
实例 15:
1 |
|
- 以 <<<EOF 开始标记开始,以 EOF 结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。
- 开始标记和结束标记相同,比如常用大写的 EOT、EOD、EOF 来表示,但是不只限于那几个(也可以用:JSON、HTML 等),只要保证开始标记和结束标记不在正文中出现即可。
- 位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在 heredoc 中,变量不需要用连接符 . 或 , 来拼接,如下
实例 16:
1 |
|
PHP 5 数据类型
字符串:可以将任何文本放在单引号和双引号中
实例 17:字符串
1 |
|
整型:没有小数,可以是正数或负数,可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)。
PHPvar_dump()
函数返回变量的数据类型和值,判断一个变量的类型与长度,并输出变量的数值。如果变量有值,则输出是变量的值,并返回数据类型。显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
格式:
1 | var_dump ( mixed expression [, mixed expression [, ...]] ) |
注意:用保证 var_dump 中的变量必须是存在的,如果变量不存在则返回 NULL。该函数有输出的功能,因此不必加其它的输出函数。
实例 18:整型
1 |
|
浮点型:是带小数部分的数字,或是指数形式。
实例 19:浮点型
1 |
|
布尔型
实例 20:布尔型
1 | $x=true; |
数组:可以在一个变量中存储多个值
实例 21:数组
1 |
|
对象:对象数据类型也可以用于存储数据。在 PHP 中,对象必须声明。
首先,必须使用 class 关键字声明类对象,类是可以包含属性和方法的结构。然后我们在类中定义数据类型,然后在实例化的类中使用数据类型,实例 21 中 PHP 关键字 this 就是指向当前对象实例的指针,不指向任何其他对象或类。
实例 21:对象
1 |
|
NULL:NULL 值表示变量没有值, 是数据类型为 NULL 的值。NULL 值指明一个变量是否为空值。,同样可用于数据空值和 NULL 值的区别,可以通过设置变量值为 NULL 来清空变量数据
实例 22:NULL
1 |
|
PHP 类型比较
虽然 PHP 是弱类型语言,但也需要明白变量类型及它们的意义,因为我们经常需要对 PHP 变量进行比较,包含松散和严格比较。
- 松散比较:使用两个等号 == 比较,只比较值,不比较类型。
- 严格比较:用三个等号 === 比较,除了比较值,也比较类型。
例如,”42” 是一个字符串而 42 是一个整数。FALSE 是一个布尔值而 “FALSE” 是一个字符串。
实例 23:类型比较
1 |
|
实例 24:PHP 中 比较 0、false、null
1 |
|
PHP 常量
常量是一个简单值的标识符。该值在脚本中不能改变。
一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符),常量在整个脚本中都可以使用。
使用常量时,不能在常量名前添加**$** 符号,不然会将常量转换成新的未定义变量使用,会导致报错。
设置常量,使用 define() 函数,函数语法如下:
1 | bool define ( string $name , mixed $value [, bool $case_insensitive = false ] ) |
该函数有三个参数:
- name:必选参数,常量名称,即标志符。
- value:必选参数,常量的值。
- case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
实例 25:区分大小写的常量
1 |
|
实例 26:不区分大小写的常量
1 |
|
PHP 字符串变量
字符串变量用于包含有字符的值。在创建字符串之后,我们就可以对它进行操作了。您可以直接在函数中使用字符串,或者把它存储在变量中。
实例 27:
1 |
|
在 PHP 中,只有一个字符串运算符,并置运算符 (.) 用于把两个字符串值连接起来。
实例 28:并置运算符
1 |
|
strlen() 函数返回字符串的长度(字节数)
实例 29:strlen() 函数
1 |
|
strpos() 函数用于在字符串内查找一个字符或一段指定的文本。
如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。
实例 30:strpos() 函数
1 |
|
PHP 运算符
算术运算符:
运算符 | 名称 | 描述 | 实例 | 结果 |
---|---|---|---|---|
x + y | 加 | x 和 y 的和 | 2 + 2 | 4 |
x - y | 减 | x 和 y 的差 | 5 - 2 | 3 |
x * y | 乘 | x 和 y 的积 | 5 * 2 | 10 |
x / y | 除 | x 和 y 的商 | 15 / 5 | 3 |
x % y | 模(除法的余数) | x 除以 y 的余数 | 5 % 2 10 % 8 10 % 2 | 1 2 0 |
- x | 取反 | x 取反 | <?php $x =2; echo -$x; ?> |
-2 |
a . b | 并置 | 连接两个字符串 | “Hi” . “Ha” | HiHa |
实例 31:
1 |
|
赋值运算符:
运算符 | 等同于 | 描述 |
---|---|---|
x = y | x = y | 左操作数被设置为右侧表达式的值 |
x += y | x = x + y | 加 |
x -= y | x = x - y | 减 |
x *= y | x = x * y | 乘 |
x /= y | x = x / y | 除 |
x %= y | x = x % y | 模(除法的余数) |
a .= b | a = a . b | 连接两个字符串 |
实例 32:
1 |
|
实例 33:字符串运算
1 |
|
递增/递减运算符:
运算符 | 名称 | 描述 |
---|---|---|
++ x | 预递增 | x 加 1,然后返回 x |
x ++ | 后递增 | 返回 x,然后 x 加 1 |
– x | 预递减 | x 减 1,然后返回 x |
x – | 后递减 | 返回 x,然后 x 减 1 |
实例 34:
1 |
|
比较运算符:
运算符 | 名称 | 描述 | 实例 |
---|---|---|---|
x == y | 等于 | 如果 x 等于 y,则返回 true | 5==8 返回 false |
x === y | 绝对等于 | 如果 x 等于 y,且它们类型相同,则返回 true | 5===”5” 返回 false |
x != y | 不等于 | 如果 x 不等于 y,则返回 true | 5!=8 返回 true |
x <> y | 不等于 | 如果 x 不等于 y,则返回 true | 5<>8 返回 true |
x !== y | 绝对不等于 | 如果 x 不等于 y,或它们类型不相同,则返回 true | 5!==”5” 返回 true |
x > y | 大于 | 如果 x 大于 y,则返回 true | 5>8 返回 false |
x < y | 小于 | 如果 x 小于 y,则返回 true | 5<8 返回 true |
x >= y | 大于等于 | 如果 x 大于或者等于 y,则返回 true | 5>=8 返回 false |
x <= y | 小于等于 | 如果 x 小于或者等于 y,则返回 true | 5<=8 返回 true |
实例 35:
1 |
|
逻辑运算符:
| 运算符 | 名称 | 描述 | 实例 |
| ————- | —- | ——————————————– | ———————————— | —————————————— | ———– | — | — |
| x and y | 与 | 如果 x 和 y 都为 true,则返回 true | x=6 y=3 (x < 10 and y > 1) 返回 true |
| x or y | 或 | 如果 x 和 y 至少有一个为 true,则返回 true | x=6 y=3 (x6 or y |
| 5) 返回 true |
| x xor y | 异或 | 如果 x 和 y 有且仅有一个为 true,则返回 true | x=6 y=3 (x6 xor y |
| 3) 返回 false |
| x && y | 与 | 如果 x 和 y 都为 true,则返回 true | x=6 y=3 (x < 10 && y > 1) 返回 true |
| x | | y | 或 | 如果 x 和 y 至少有一个为 true,则返回 true | x=6 y=3 (x5 | | y |
| 5) 返回 false |
| ! x | 非 | 如果 x 不为 true,则返回 true | x=6 y=3 !(x==y) 返回 true |
数组运算符:
运算符 | 名称 | 描述 |
---|---|---|
x + y | 集合 | x 和 y 的集合 |
x == y | 相等 | 如果 x 和 y 具有相同的键/值对,则返回 true |
x === y | 恒等 | 如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true |
x != y | 不相等 | 如果 x 不等于 y,则返回 true |
x <> y | 不相等 | 如果 x 不等于 y,则返回 true |
x !== y | 不恒等 | 如果 x 不等于 y,则返回 true |
实例 36:
1 |
|
三元运算符:
1 | (expr1) ? (expr2) : (expr3) |
对 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。
自 PHP 5.3 起,可以省略三元运算符中间那部分。表达式expr1 ?: expr3 在 expr1
求值为 TRUE 时返回 expr1,否则返回 expr3。
实例 37:通过判断 $_GET 请求中含有 user 值,如果有返回 $_GET[‘user’],否则返回 nobody
1 |
|
在 PHP7+ 版本多了一个 NULL 合并运算符 ??
实例 38:
1 |
|
PHP 条件语句
实例 39:if 语句
1 |
|
实例 40:if…else 语句
1 |
|
首先对一个简单的表达式 _n_(通常是变量)进行一次计算。将表达式的值与结构中每个 case 的值进行比较。如果存在匹配,则执行与 case 关联的代码。代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。default 语句用于不存在匹配(即没有 case 为真)时执行。
实例 41:switch 语句和 break、default
1 |
|
PHP 数组
实例 42:数组
1 |
|
实例 43:实例 count() 函数用于返回数组的长度(元素的数量)
1 |
|
实例 44:for 循环遍历数组
1 |
|
关联数组有两种创建方式:$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
或是$age['Peter']="35";$age['Ben']="37";$age['Joe']="43";
实例 45:关联数组
1 |
|
实例 46:遍历关联数组
1 |
|
PHP 数组排序
PHP 数组排序函数:
- sort() - 对数组进行升序排列
- rsort() - 对数组进行降序排列
- asort() - 根据关联数组的值,对数组进行升序排列
- ksort() - 根据关联数组的键,对数组进行升序排列
- arsort() - 根据关联数组的值,对数组进行降序排列
- krsort() - 根据关联数组的键,对数组进行降序排列
实例 47:数组排序
1 | //数组中的元素按照字母升序排列 |
PHP 超级全局变量
超级全局变量在 PHP 4.1.0 之后被启用, 是 PHP 系统中自带的变量,在一个脚本的全部作用域中都可用。
PHP 中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。
PHP 超级全局变量列表:
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
PHP $GLOBALS
$GLOBALS 是 PHP 的一个超级全局变量组,在一个 PHP 脚本的全部作用域中都可以访问。
$GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
实例 48:变量同样可以在函数外访问
1 |
|
PHP $_SERVER
$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。
实例:如何使用$_SERVER
1 |
|
$_SERVER 变量中的重要元素
元素/代码 | 描述 |
---|---|
$_SERVER[‘PHP_SELF’] | 当前执行脚本的文件名,与 document root 有关。例如,在地址为 http://example.com/test.php/foo.bar |
的脚本中使用 $_SERVER[‘PHP_SELF’] 将得到 /test.php/foo.bar。FILE 常量包含当前(例如包含)文件的完整路径和文件名。 从 PHP 4.3.0 版本开始,如果 PHP 以命令行模式运行,这个变量将包含脚本名。之前的版本该变量不可用。 | |
$_SERVER[‘GATEWAY_INTERFACE’] | 服务器使用的 CGI 规范的版本;例如,”CGI/1.1”。 |
$_SERVER[‘SERVER_ADDR’] | 当前运行脚本所在的服务器的 IP 地址。 |
$_SERVER[‘SERVER_NAME’] | 当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。(如: www.runoob.com) |
$_SERVER[‘SERVER_SOFTWARE’] | 服务器标识字符串,在响应请求时的头信息中给出。 (如:Apache/2.2.24) |
$_SERVER[‘SERVER_PROTOCOL’] | 请求页面时通信协议的名称和版本。例如,”HTTP/1.0”。 |
$_SERVER[‘REQUEST_METHOD’] | 访问页面使用的请求方法;例如,”GET”, “HEAD”,”POST”,”PUT”。 |
$_SERVER[‘REQUEST_TIME’] | 请求开始时的时间戳。从 PHP 5.1.0 起可用。 (如:1377687496) |
$_SERVER[‘QUERY_STRING’] | query string(查询字符串),如果有的话,通过它进行页面访问。 |
$_SERVER[‘HTTP_ACCEPT’] | 当前请求头中 Accept: 项的内容,如果存在的话。 |
$_SERVER[‘HTTP_ACCEPT_CHARSET’] | 当前请求头中 Accept-Charset: 项的内容,如果存在的话。例如:”iso-8859-1,*,utf-8”。 |
$_SERVER[‘HTTP_HOST’] | 当前请求头中 Host: 项的内容,如果存在的话。 |
$_SERVER[‘HTTP_REFERER’] | 引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言之,该值并不可信。) |
$_SERVER[‘HTTPS’] | 如果脚本是通过 HTTPS 协议被访问,则被设为一个非空的值。 |
$_SERVER[‘REMOTE_ADDR’] | 浏览当前页面的用户的 IP 地址。 |
$_SERVER[‘REMOTE_HOST’] | 浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。 |
$_SERVER[‘REMOTE_PORT’] | 用户机器上连接到 Web 服务器所使用的端口号。 |
$_SERVER[‘SCRIPT_FILENAME’] | 当前执行脚本的绝对路径。 |
$_SERVER[‘SERVER_ADMIN’] | 该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。(如:someone@runoob.com) ) |
$_SERVER[‘SERVER_PORT’] | Web 服务器使用的端口。默认值为 “80”。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。 |
$_SERVER[‘SERVER_SIGNATURE’] | 包含了服务器版本和虚拟主机名的字符串。 |
$_SERVER[‘PATH_TRANSLATED’] | 当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。 |
$_SERVER[‘SCRIPT_NAME’] | 包含当前脚本的路径。这在页面需要指向自己时非常有用。FILE 常量包含当前脚本(例如包含文件)的完整路径和文件名。 |
$_SERVER[‘SCRIPT_URI’] | URI 用来指定要访问的页面。例如 “/index.html”。 |
PHP $_REQUEST
PHP $_REQUEST 用于收集 HTML 表单提交的数据。
以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 “Submit” 按钮提交表单数据时, 表单数据将发送至标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的 PHP 文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_REQUEST 来收集表单中的 input 字段数据
实例 49:
1 | <html> |
PHP $_POST
PHP $_POST 被广泛应用于收集表单数据,在 HTML form 标签的指定该属性:”method=”post”。
以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 “Submit” 按钮提交表单数据时, 表单数据将发送至标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的 PHP 文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_POST 来收集表单中的 input 字段数据
实例 50:
1 | <html> |
PHP $_GET
PHP $_GET 同样被广泛应用于收集表单数据,在 HTML form 标签的指定该属性:”method=”get”。
$_GET 也可以收集 URL 中发送的数据。
假定我们有一个包含参数的超链接 HTML 页面实例 51:
1 | <html> |
当用户点击链接 “Test $GET”, 参数 “subject” 和 “web” 将发送至”test_get.php”,你可以在 “test_get.php” 文件中使用 $_GET 变量来获取这些数据。
以下实例显示了 “test_get.php” 文件的代码
1 | <html> |
PHP 循环
PHP 中,提供了下列循环语句:
- while - 只要指定的条件成立,则循环执行代码块
- do…while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环
- for - 循环执行代码块指定的次数
- foreach - 根据数组中每个元素来循环代码块
实例 52:while 循环
1 | <html> |
实例 53:do…while 循环
1 | <html> |
实例 54:for 循环
1 |
|
每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动),在进行下一次循环时,您将看到数组中的下一个值
实例 55:foreach 循环
1 |
|
实例 56:输出给定数组键与值的循环
1 |
|
实例 57:使用 for 循环实现冒泡排序
1 |
|
PHP 函数
实例 58:函数创建
1 |
|
实例 59:添加参数
1 |
|
实例 60:添加函数进阶
1 |
|
实例 61:返回值
1 |
|
PHP 魔术变量
PHP 向它运行的任何脚本提供了大量的预定义常量。
不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。
有八个魔术常量它们的值随着它们在代码中的位置改变而改变。
实例 62:LINE
1 |
|
文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。
自 PHP 4.0.2 起,FILE 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径
实例 63:FILE
1 |
|
文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。
它等价于 dirname(FILE)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0 中新增)
实例 64:DIR
1 |
|
函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
实例 65:FUNCTION
1 |
|
类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。
在 PHP 4 中该值总是小写字母的。类名包括其被声明的作用区域(例如 Foo\Bar)。注意自 PHP 5.4 起 CLASS 对 trait 也起作用。当用在 trait 方法中时,CLASS 是调用 trait 方法的类的名字。
实例 66:CLASS
1 |
|
Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits。
Trait 名包括其被声明的作用区域(例如 Foo\Bar)。
从基类继承的成员被插入的 SayWorld Trait 中的 MyHelloWorld 方法所覆盖。其行为 MyHelloWorld 类中定义的方法一致。优先顺序是当前类中的方法会覆盖 trait 方法,而 trait 方法又覆盖了基类中的方法。
实例 67:
1 |
|
类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
实例 68:METHOD
1 |
|
当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。
实例 69:NAMESPACE
1 |
|