首页 > 编程笔记 > PHP笔记 阅读:9

PHP static静态属性和静态方法(新手必看)

在 PHP 中,如果类中定义的属性和方法由类的实例(对象)调用,统称为实例成员。如果在定义成员时使用了 static 关键字,定义的就是静态成员。

在类的外部,静态成员(包括 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 对象。

相关文章