



在前面的内容中,在类中定义的属性和方法由类的实例(对象)调用,称为实例成员。如果在定义成员时使用了static关键字,定义的就是静态成员,在类的外部,静态成员通过类名直接调用。
下面的代码(/demo/tAutoFactory.php)定义一个名为tAutoFactory的类。
本例定义了一个名为tAutoFactory的类,其中定义了一个静态属性$counter,三个静态方法分别是createSuv()、createCar()和createCoupe(),每个方法都会返回一个tAuto对象。这里,不同车型的默认车门数量是不同的,而且每创建一个tAuto对象,$counter静态属性都会加1,这样就可以统计创建了多少个tAuto对象。
静态方法中,使用self关键字和两个冒号(::),这里属性变量需要使用$符号。
下面的代码在/index.php文件中测试tAutoFactory类的使用。
<?php
require_once $_SERVER["DOCUMENT_ROOT"]."/demo/tAutoFactory.php";
$suv = tAutoFactory::createSuv();
$car = tAutoFactory::createCar();
$coupe = tAutoFactory::createCoupe();
echo tAutoFactory::$counter;
?>
执行代码,显示tAutoFactory::$counter的值是3,即创建了3个tAuto对象。