• 技术文章 >后端开发 >PHP问题

    php static是什么意思

    藏色散人藏色散人2021-06-10 09:08:25原创82

    php static是PHP中的一种关键字,使用static关键字即表示该成员为静态成员,在类的加载过程中只会保留一个副本,所有对静态变量进行的操作都会对所有对象起作用。

    本文操作环境:windows7系统、PHP7.1版,DELL G3电脑

    php static是什么意思?

    PHP中static关键字的作用和区别

    PHP中的static与Java等其他面向对象语言不同,实例化出来的一个对象只可以对静态方法进行访问,对静态成员无法访问。

    使用static关键字即表示该成员为静态成员,在类的加载过程中只会保留一个副本,所有对静态变量进行的操作都会对所有对象起作用

    在PHP中静态变量不能被实例化对象调用,静态方法可以被对象调用

    // ----类内部----
    // 调用普通成员
    this->name;
    // 调用静态成员
    self::name_static;
    // ----类外部----
    // 调用普通成员需要实例化使用
    Car c = new Car();
    c->name;
    // 调用静态方法
    c::fun()  <==>  Car::fun()
    // 调用静态变量
    Car::name;

    分析一段代码:

    class Car
    {
        private $name;
        private static $type = "Car";
        function __construct($name)
        {
            $this->name = $name;
            echo "Car " . $name . " has created!\n";
        }
        public static function getType()
        {
            echo self::$type . "\n";
        }
        public function getName()
        {
            echo "Car name is " . $this->name . "\n";
        }
        function __destruct()
        {
            echo "Car " . $this->name . " has destory!";
        }
    }

    一个实体类,定义了一个构造函数,一个静态函数,一个普通函数,一个析构函数和一个普通成员变量、一个静态成员变量。

    使用PHPunit进行测试

    class  test extends PHPUnit_Framework_TestCase
    {
        public function test_car()
        {
            $car = new Car("BMW");
            $car::getType();
            $car->getName();
        }
    }

    可以得到输出:

    Car BMW has created!
    Car
    Car name is BMW
    Car BMW has destory!

    【推荐学习:PHP视频教程

    以上就是php static是什么意思的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:static
    上一篇:如何解决php echo alert 乱码问题 下一篇:php怎么删除mysql表格
    第16期线上培训班

    相关文章推荐

    • 【案例分析】详解PHP static关键字作用• 面试官:请详细说明final关键字的作用,以及它与static的区别• php中const与static有什么区别• php const和static变量的区别是什么• php中self和static的区别是什么

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网