PHP的static与Java的static的对比

WBOY
Freigeben: 2016-06-23 13:25:41
Original
790 Leute haben es durchsucht

在Java中类的静态变量/静态方法又称之为类变量 /类方法,它们存在于内存栈中,只有一份,可以通过类和对象直接访问

public class MyStatic {    public static String className = "MyStatic";    public static void getClassName() {        //当然你直接写className也能访问到,但前提是此函数里没有局部变量名覆盖静态变量名        System.out.println(MyStatic.className);    }        public static void main(String[] args) {        //类访问静态变量        System.out.println(MyStatic.className);        //对象访问静态变量        System.out.println((new Mystatic()).className);        //类访问静态方法        Mystatic.getClassName();        //对象访问静态方法        (new Mystatic()).getClassName();        //=========        (new Mystatic()).className = "new class name";        //=========        //类访问静态变量        System.out.println(MyStatic.className);        //对象访问静态变量        System.out.println((new Mystatic()).className);        //类访问静态方法        Mystatic.getClassName();        //对象访问静态方法        (new Mystatic()).getClassName();    }}
Nach dem Login kopieren

注意哟,java的静态变量并不禁止对象的访问,但PHP不同,PHP的静态方法是可以被对象调用,但类的静态变量只能被类的方法去访问,对象是不能直接访问的

class Mystatic {    public static $className = __CLASS__;    public static function getClassName() {        echo self::$className;    }}echo Mystatic::$className;Mystatic::getClassName();//but(new Mystatic())->className;//error 没有权限//but 下面是可以的(new Mystatic())->getClassName();//静态的只有一份,大家一起硬连接,同步修改Mystatic::$className = "new class Name";(new Mystatic())->getClassName();
Nach dem Login kopieren

所以PHP的对象如果要访问类的静态变量必须依靠接口,在类中写出访问静态变量的方法,而不能像Java一样直接使用.语法类和对象皆可访问

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage