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

    php static 是什么意思

    藏色散人藏色散人2021-12-01 10:40:09原创256

    static是php中的内置关键字,我们可以用static关键字来定义静态方法和属性,还可以用于定义静态变量以及后期静态绑定。

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

    php static 是什么意思?

    static是PHP内置关键词。

    静态(static)关键字

    小技巧

    本页说明了用 static 关键字来定义静态方法和属性。static 也可用于定义静态变量以及后期静态绑定。参见上述页面了解 static 在其中的用法。

    声明类属性或方法为静态,就可以不实例化类而直接访问。可以在实例化的类对象中通过静态访问。

    静态方法

    由于静态方法不需要通过对象即可调用,所以伪变量 $this 在静态方法中不可用。

    警告

    用静态方式调用一个非静态方法会抛出 Error。

    在 PHP 8.0.0 之前,通过静态方式调用一个非静态方法这种用法已经被废弃,并且会导致一个 E_DEPRECATED 级别的警告。

    示例 #1 静态方法示例

    <?php
    class Foo {
        public static function aStaticMethod() {
            // ...
        }
    }
    Foo::aStaticMethod();
    $classname = 'Foo';
    $classname::aStaticMethod();
    ?>

    静态属性

    静态属性使用 范围解析操作符 ( :: )访问,不能通过对象操作符( -> )访问。

    通过变量来引用一个类是可行的,但这个变量的值不能是一个保留字 (例如self,parent和 static)

    示例 #2 静态属性示例

    <?php
    class Foo
    {
        public static $my_static = 'foo';
        public function staticValue() {
            return self::$my_static;
        }
    }
    class Bar extends Foo
    {
        public function fooStatic() {
            return parent::$my_static;
        }
    }
    print Foo::$my_static . "\n";
    $foo = new Foo();
    print $foo->staticValue() . "\n";
    print $foo->my_static . "\n";      // 未定义的 "属性" my_static
    print $foo::$my_static . "\n";
    $classname = 'Foo';
    print $classname::$my_static . "\n";
    print Bar::$my_static . "\n";
    $bar = new Bar();
    print $bar->fooStatic() . "\n";
    ?>

    以上例程在 PHP 8 中的输出类似于:

    foo
    foo

    Notice: Accessing static property Foo::$my_static as non static in /in/V0Rvv on line 23

    Warning: Undefined property: Foo::$my_static in /in/V0Rvv on line 23

    foo
    foo
    foo
    foo

    推荐学习:《PHP视频教程

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

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php static
    上一篇:php5.6怎么安装curl扩展 下一篇:php给定指定时间戳怎么判断是不是今天
    Web大前端开发直播班

    相关文章推荐

    • php const和static变量的区别是什么• php中self和static的区别是什么• php中的__callStatic函数如何使用• PHP Class self与static有什么区别?都怎么用?• php中final和static的区别是什么

    全部评论我要评论

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

    PHP中文网