PHP 词法结构

本文最后更新于: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!";// 这里需要有分号。
}// 在大括号后不需要有分号。
  • 在PHP结束标签之前的分号是可写可不写的:
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风格的注释有时被用于划分代码块。
1
2
3
##################
## Cookie functions
##################
  • 有时#号被用在一行代码之前指明代码可以做什么,在这种情况下它们通常有和代码一样的缩进量。

C++风格的注释

  • 当PHP代码中遇到两个// 时,从斜杠开始到本行结束或代码段结束(无论先遇到哪一个)的部分被认为时注释,这种注释的方法源于C++,它的结果和shell风格的注释一样。
1
$value = $p*exp($r*$t);// 取得混合计算的值。

C风格的注释

  • shell风格和C++风格的注释对注释代码或做简短的注释很有用,但是更长的注释需要不同的风格,同样的,PHP支持来自于C语言语法的块注释,当PHP代码中遇到一个/*时,在此之后遇到*/的部分被认为时注释,这种注释和之前介绍的那些不同,它可以跨越多行。
1
2
3
4
5
/*
$f=6;
$g=7;
$k=11;
*/

直接量

直接量(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
$not valid
$|
$3wa

函数名

  • 函数名是不区分大小写的,下面是一些合法的函数名:
1
2
3
4
Tally
list_all_users
LOWERCASE_IS_FOR_WIMPS
_hide
  • 下面这些函数名指向相同的函数:
1
Hoewdy HoWdy HOWDY

类名

  • 类名遵循PHP标识符的标准规则并且不区分大小写,下面是一些合法的类名:
1
2
Person
Account
  • 类名stdClass被保留。

常量

  • 常量是简单值的标识符,只有标量(布尔型,整型,双精度型和字符串型)可以作为常量,一旦设置常量额值就不能再改变,可以通过标识符引用常量,用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开始)

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!