final关键字的应用
final可以加在类或类中方法前,但不能使用final标识成员属性。
final关键字的作用如下:
- 使用final标识的类,不能被继承。
- 在类中使用final标识的成员方法,在子类中不能被覆盖。
static关键字的使用
使用static关键字可以将类中的成员标识为静态的,既可以用来标识成员属性,也可以用来标识成员方法。类中的静态成员是不需要对象而使用类名来直接访问的,格式如下所示:
在类中声明的成员方法中,也可以使用关键字"self"来访问其他静态成员。格式如下:
const关键字
虽然const和static的功能不同,但使用的方法比较相似。在PHP中定义常量是通过调用define()函数来完成的,但要将在类中的成员属性定义为常量,则只能使用const关键字。
克隆对象
在PHP中,可以根据现有的对象克隆出一个完全一样的对象,克隆以后,原本和副本两个对象完全独立,互不干扰。在PHP5中,使用关键字"clone"关键字克隆对象。
类中通用的方法__toString()
“魔术”方法__toString()是快速获取对象的字符串表示的最便捷的方式,它是在直接输出对象引用时自动调用的方法。测试代码如下:
<?php
//声明一个测试类,在类中声明一个成员属性和一个__toString()方法
class TestClass{
private $foo;
function __construct($foo){
$this->foo=$foo;
}
public function __toString(){
return $this->foo;
}
}
__call()方法的应用
在PHP中,可以在类中添加一个“魔术”方法__call(),则调用对象中不存在的方法时就会自动调用该方法,并且程序也可以继续向下执行。
__call()方法需要两个参数:
第一个参数是调用不存在的方法时,接收这个方法名称的字符串;
第二个参数是参数列表(以数组的形式传递到第二个参数中)
自动加载类
PHP提供了类的自动加载功能。当你尝试使用一个PHP没有组织到的类时,它会寻找一个__autoload()全局函数(注意,该函数不是在类中声明的函数)。如果存在这个函数,PHP会用一个参数来调用它,参数即类的名称。
所以说,当我们在做项目时,在组织定义类的文件名时,需要按照一定的规则,一定要以类名为中心,也可以加上统一的前缀或后缀形成文件名。
测试代码如下:
<php?
function __autoload($className){
//在方法中使用include来包含类所在的文件
include(strtolower($className).".class.php");
}