cari

Rumah  >  Soal Jawab  >  teks badan

Sifat statik boleh dipanggil dalam kaedah bukan statik

Seperti yang dinyatakan pada 3:30 dalam pelajaran ini, sifat statik tidak boleh dipanggil dalam kaedah bukan statik

Tetapi mengikut ujian peribadi, kaedah bukan statik dalam kelas ini boleh memanggil sifat statik

Gunakan sifat statik : :Nama atribut】Hanya

God_LikeGod_Like2131 hari yang lalu2254

membalas semua(3)saya akan balas

  • God_Like

    God_Like2019-04-15 17:18:21

    Pertama sekali, terima kasih banyak atas jawapan cikgu

    1 Kelas dalam kod sampel yang anda berikan tidak mentakrifkan kaedah ujian(), jadi instantiasi akan berjalan dengan ralat

    echo (Demo baharu) ->test(); // "Ralat "

    Kedua, saya telah menggunakan versi php7.2 untuk mempraktikkan perkara

    Dalam kod yang anda berikan kepada saya, saya menukar (Demo baharu)->test() kepada (Demo baharu)->test2() Berjalan

    kedua-dua hasil keluaran ialah peter

    Adakah ia membuktikan bahawa [kaedah biasa] kelas

    boleh memanggil kedua-dua [sifat statik kelas] dan [statik kaedah] kelas

    balas
    0
  • 天蓬老师

    天蓬老师2019-04-14 22:23:30

    Pertama sekali, terima kasih atas sikap serius anda terhadap pembelajaran Anda betul, terdapat beberapa kelemahan dalam tutorial...

    Malah, dalam kaedah biasa, memanggil atribut statik secara langsung tidak akan melaporkan ralat, tetapi ia adalah kesilapan. Tidak dibenarkan sama sekali. Memanggil kaedah statik,

    Dalam kaedah biasa, secara rasmi tidak disyorkan untuk menggunakan ahli statik Penggunaan atribut statik dibenarkan di sini. Ia adalah pepijat sejarah yang mungkin diperbetulkan dalam versi masa hadapan Berikut ialah kod ujian , untuk rujukan anda:

    class Demo
    {
        // 静态属性
        public static $name = 'peter';
        
        // 静态方法
        public static function hello()
        {
           return self::$name;
        }
        
        //  普通方法1
        public function test1()
        {
            return self::$name;
        }
        
        //  普通方法1
        public function test2()
        {
            return self::hello();
        }
    }
    
    echo (new Demo)->test1();    // "peter"
    echo '<hr>';
    echo (new Demo)->test();    // "Error"

    balas
    1
  • Batalbalas