本文最后更新于:2024年3月18日 凌晨
PHP 词法结构
大小写
- 和内置结构及关键字(如echo,while,Class等)一样,用户定义的类名和函数名也是不区分大小写的,因此,下面3行等价:
1 2 3
| echo("hello,world"); ECHO("hello,world"); EcHo("hello,world");
|
- 但是,变量时区分大小写的。也就是说,$name,$NAME,$Name是3个不同的变量。
语句和分号
- 语句是指完成一段注释,或完成某个任务的PHP代码,它可以简单的如一个变量赋值,也可以复杂的如有多个退出点的循环。
- PHP使用分号来分隔简单的语句,使用大括号将复合语句标记为一个代码块,如条件测试或循环,在右括号后面不需要使用分号,和其他语言不一样的是,在PHP中右括号之前的分号是必须要写的:
1 2 3
| if($needed){ Echo "We must have it!"; }
|
1 2 3 4
| <?php if ($a==$b) { echo "Rhyme? And Reason?";} Echo "Hello ,World"// 结束标签之前可以没有分号。 ?>
|
- 尽管在结束标签前可不用分号,但写上是一个好的编程习惯,这样做使日后增加代码更加容易。
空白符和换行符
- 一般而言,在PHP程序中空白符无关紧要,一条语句可以跨多行,也可以紧密地连成一行,例如,下面这条语句:
1
| raise_prices(\$inventory,\$inflation,\$cost_of_living,$greed);
|
1 2 3 4 5 6
| raise_prices( $inveory, $inflation, $cost_of_living, $greed ) ;
|
1
| raise_prices($inventory,%inflation,$cost_of_living,$greed);
|
- 可以利用这种灵活的格式让代码更具可读性(通过排列分配,缩进等)
注释
shell风格的注释
- 当在PHP代码中遇到一个#号时,从这个#号开始到本行结束或者PHP代码段结束(无论先遇到哪一个)的这一部分被认为时注释,这种注释的方法是基于Unix shell脚本语言的,对于注释单行代码或做简短的注释是很有用的。
- 因为#号在界面中是直观的,shell风格的注释有时被用于划分代码块。
- 有时#号被用在一行代码之前指明代码可以做什么,在这种情况下它们通常有和代码一样的缩进量。
C++风格的注释
- 当PHP代码中遇到两个// 时,从斜杠开始到本行结束或代码段结束(无论先遇到哪一个)的部分被认为时注释,这种注释的方法源于C++,它的结果和shell风格的注释一样。
C风格的注释
- shell风格和C++风格的注释对注释代码或做简短的注释很有用,但是更长的注释需要不同的风格,同样的,PHP支持来自于C语言语法的块注释,当PHP代码中遇到一个/*时,在此之后遇到*/的部分被认为时注释,这种注释和之前介绍的那些不同,它可以跨越多行。
直接量
直接量(literal)是在程序中直接出现的数据值,下面这些都是PHP中的直接量。
1 2 3 4 5 6 7
| 2001 0xFE 1.4142 "Hello World" 'Hi' Ture Null
|
标识符
- 标识符(indentifier)只是一个名字,在PHPO里,标识符用来命名变量,函数,常量,和类。标识符的第一个字母必须是ASCII字母(大写或小写),下划线(_)或在ASCII 0x7F和ASCII 0xFF之间的任意一个字符,在首字符之后,这些字符和数字0-9都是合法的。
变量名
- 变量名总是以一个美元符号
$
开头,并且区分大小写,下面是一些合法的变量名:
1 2 3
| \$head_count \$_int \$I_HEART_PHP
|
函数名
1 2 3 4
| Tally list_all_users LOWERCASE_IS_FOR_WIMPS _hide
|
类名
- 类名遵循PHP标识符的标准规则并且不区分大小写,下面是一些合法的类名:
常量
- 常量是简单值的标识符,只有标量(布尔型,整型,双精度型和字符串型)可以作为常量,一旦设置常量额值就不能再改变,可以通过标识符引用常量,用defint()函数设置变量。
1 2
| define('PUBLISHER',"O,Reilly&Associates"); Echo PUBLISHER;
|
关键字
- 关键字(Keyword)(或预留字reserved word)是语言为其核心功能而预留的单词,在对变量,函数,类或常量命名时,不能使用和关键字相同的名字,下表列出了PHP的关键字,关键字时不区分大小写的。
- __halt_compiler()
- abstract
- and
- array()
- as
- break
- callable (as of PHP 5.4)
- case
- catch
- class
- clone
- const
- continue
- declare
- default
- die()
- do
- echo
- else
- elseif
- empty()
- enddeclare
- endfor
- endforeach
- endif
- endswitch
- endwhile
- eval()
- exit()
- extends
- final
- finally (从PHP 5.5开始)
- for
- foreach
- function
- global
- goto (从PHP 5.3开始)
- if
- implements
- include
- include_once
- instanceof
- insteadof (从PHP 5.4开始)
- interface
- isset()
- list()
- namespace (从PHP 5.3开始)
- new
- or
- print
- private
- protected
- public
- require
- require_once
- return
- static
- switch
- throw
- trait (从PHP 5.4开始)
- try
- unset()
- use
- var
- while
- xor
- yield (从PHP 5.5开始)