当解析一个文件时,PHP 会寻找起始和结束标记,也就是 ,在 HTML 中分离出 PHP代码;
指令分割符:同 C 或 Perl 一样,PHP 需要在每个语句后用分号结束指令。
注释:PHP 支持 C,C++ 和 Unix Shell 风格(Perl 风格)的注释。
<?php echo "This is a test"; // This is a one-line c++ style comment /* This is a multi line comment yet another line of comment */ echo "This is yet another test"; echo 'One Final Test'; # This is a one-line shell-style comment?>
PHP 支持 8 种原始数据类型。
四种标量类型:
两种复合类型:
最后是两种特殊类型:
为了确保代码的易读性,本手册还介绍了一些伪类型:
以及伪变量 $...。
如果想查看某个 表达式 的值和类型,用var_dump() 函数; 如果只是想得到一个易读懂的类型的表达方式用于调试,用 gettype() 函数。要查看某个类型, 不要 用 gettype() ,而用 is_type 函数. 如果要将一个变量强制转换为某类型,可以对其使用 强制转换 或者 settype() 函数。PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。
常量是一个简单值的标识符(名字)。如同其名称所暗示的,在脚本执行期间该值不能改变(除了所谓的魔术常量,它们其实不是常量)。常量默认为大小写敏感。传统上常量标识符总是大写的。
<?php// 合法的常量名define("FOO", "something");define("FOO2", "something else");define("FOO_BAR", "something more");// 非法的常量名define("2FOO", "something");// 下面的定义是合法的,但应该避免这样做:(自定义常量不要以__开头)// 也许将来有一天PHP会定义一个__FOO__的魔术常量// 这样就会与你的代码相冲突define("__FOO__", "something");?>
几个 PHP 的“魔术常量”
名称 | 说明 |
---|---|
__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 新增)。 |
以下代码结构会进入全局命名空间:
functions(函数)
classes(类)
interfaces(接口)
constants(常量,并非类常量)
在函数/方法之外定义的变量