公共和公共静态的区别?

Ale*_*lex 41 php oop class function

静态意味着什么?

我知道public意味着它可以从类外部访问,而私有只能从类内部访问

Bil*_*hor 39

静态意味着可以在不实例化类的情况下访问它.这对常数很有用.

静态方法需要对对象的状态没有影响.除参数外,它们还可以包含局部变量.


小智 34

public:公共声明的项目可以随处访问.

protected:受保护的限制访问继承和父类(以及定义项的类).

private:Private仅限于定义项目的类的可见性.

static:静态变量仅存在于本地函数作用域中,但在程序执行离开此作用域时不会丢失其值.

final:Final关键字通过在final前加上前缀来阻止子类覆盖方法.如果类本身被定义为final,则无法扩展.

瞬态:瞬态变量是可能未序列化的变量.

volatile:一个可能被多个线程同时修改的变量应该声明为volatile.声明为volatile的变量将不会被编译器优化,因为它们的值可能随时更改.


ben*_*siu 15

来自http://php.net/manual/en/language.oop5.static.php

将类属性或方法声明为静态可使它们无需实例化类的实现.声明为static的属性无法使用实例化的类对象访问(尽管静态方法可以).


zlo*_*ctb 5

一个例子:当使用static关键字时,我们不能使用$this

class Foo {
    private $foo='private';

    private function priv_func() {
        echo 'priv_method';
    }

    public static function get() {
        echo $this->foo;
        $this->priv_func();
    }
}

$obj = new Foo();
$obj->get();
Run Code Online (Sandbox Code Playgroud)

致命错误:在 (...) 中不在对象上下文中时使用 $this