php “public”和“public static”的区别是什么?

zdwk9cvp  于 2023-06-28  发布在  PHP
关注(0)|答案(5)|浏览(120)

static是什么意思
我知道public意味着它可以从类外部访问,而private只能从类内部访问。

v1l68za4

v1l68za41#

静态意味着它可以在不示例化类的情况下被访问。这对常量很好。
静态方法需要对对象的状态没有影响。除了参数之外,它们还可以具有局部变量。
可修改的静态变量是有风险的。它们就像一个全局变量,这可能会使应用程序变得脆弱。跟踪变量被修改的位置可能很困难。
静态方法没有风险。它们可以替换重复的代码,增加代码经过良好测试和正确的可能性。

pwuypxnk

pwuypxnk2#

public:公共声明的项目可以在任何地方访问。
受保护:Protected限制对继承类和父类(以及定义项的类)的访问。
私有:Private将可见性仅限于定义该项的类。
static:静态变量只存在于局部函数作用域中,但程序执行离开该作用域时不会失去值。
final:Final关键字通过在定义前加上final来防止子类重写方法。如果类本身被定义为final,那么它就不能被扩展。

除了PHP:

transient:临时变量是一个不能被序列化的变量。
volatile:一个可能被多个线程并发修改的变量应该声明为volatile。声明为volatile的变量不会被编译器优化,因为它们的值可以随时更改。

xmq68pz9

xmq68pz93#

http://php.net/manual/en/language.oop5.static.php
将类属性或方法声明为静态的,使它们可以访问,而不需要类的示例化。声明为static的属性不能用示例化的类对象访问(尽管静态方法可以)。

i34xakig

i34xakig4#

例如:当使用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();

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

gz5pxeao

gz5pxeao5#

示例:

public class Methods_Test1 
{   
    public static void Display(String Name)
    {
        System.out.println("Hello There " + Name);
        System.out.println("I am from Display method");
    }

    public static void main(String[] args) 
    {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter name");
        String name = sc.next();
        Obj.Display(name);

    }

public static void Display(String name)方法在其自己的类中作为静态方法访问,可以在不创建类的对象的情况下访问,而同一方法对于可以通过创建对象访问的外部类表现为public。

相关问题