PHP static静态属性和静态方法(新手必看)
在 PHP 中,如果类中定义的属性和方法由类的实例(对象)调用,统称为实例成员。如果在定义成员时使用了 static 关键字,定义的就是静态成员。
在类的外部,静态成员(包括 static 修饰的属性和方法)通过类名直接调用。
下面的代码定义一个名为 tAutoFactory 的类(/demo/tAutoFactory.php)。
这里,不同车型的默认车门数量是不同的,而且每创建一个 tAuto 对象,$counter 静态属性都会加 1,这样就可以统计创建了多少个 tAuto 对象。
静态方法中,使用 self 关键字和两个冒号(::),这里属性变量需要使用 $ 符号。
下面的代码在 /index.php 文件中测试 tAutoFactory 类的使用:
在类的外部,静态成员(包括 static 修饰的属性和方法)通过类名直接调用。
下面的代码定义一个名为 tAutoFactory 的类(/demo/tAutoFactory.php)。
<?php require_once $_SERVER["DOCUMENT_ROOT"]."/demo/tAuto.php"; class tAutoFactory { public static $counter = 0; // public static function createSuv() { self::$counter++; return new tAuto(5); } // public static function createCar() { self::$counter++; return new tAuto(4); } // public static function createCoupe() { self::$counter++; return new tAuto(2); } } ?>本例定义了一个名为 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 对象。