PHP 静态属性和变量

示例

用public可见性定义的静态类属性在功能上与全局变量相同。可以从定义类的任何位置访问它们。

class SomeClass {

    public static int $counter = 0;

}

// 静态$counter变量可以在任何地方读取/写入

// 并且不需要实例化类

SomeClass::$counter += 1;

函数也可以在自己的范围内定义静态变量。这些静态变量通过多个函数调用持久化,这与在函数范围内定义的常规变量不同。这是实现Singleton设计模式的非常简单的方法:

class Singleton {

    public static function getInstance() {

        // 函数结束时不会删除静态变量$instance

        static $instance;

        // 第二次调用此函数将不会进入if语句,

        // 因为Singleton的实例现在存储在$instance中

        // 变量,并通过多次调用保持

        if (!$instance) {

            // 首次调用此函数将到达此行,

            // 因为$instance仅被声明,未初始化

            $instance = new Singleton();

        }

        return $instance;

    }

}

$instance1 = Singleton::getInstance();

$instance2 = Singleton::getInstance();

// 使用'==='运算符比较对象可检查它们是否为

//同一实例。将打印'true',因为静态$instance

// getInstance()方法中的变量通过多次调用而持久化

var_dump($instance1 === $instance2);

           

以上是 PHP 静态属性和变量 的全部内容, 来源链接: utcz.com/z/343177.html

回到顶部