Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk memanggil kelas dalam kaedah statik php

Bagaimana untuk memanggil kelas dalam kaedah statik php

PHPz
PHPzasal
2023-04-24 14:53:311401semak imbas

Dalam PHP, kita boleh mentakrifkan kaedah statik untuk membenarkan kelas melaksanakan kaedah tanpa membuat contoh. Kaedah statik membolehkan kami memanggil kaedah secara langsung dalam kelas tanpa membuat instantiating objek, yang sangat mudah dalam sesetengah kes, contohnya, kita perlu menggunakan kaedah kelas, tetapi hanya perlu memanggil kaedah secara berasingan tanpa membuat contoh. .

Dalam artikel ini, kami akan meneroka cara memanggil sifat kelas dan kaedah lain dalam kaedah statik.

Bahagian Pertama: Kaedah Statik

Kaedah statik ialah jenis kaedah khas yang boleh diakses terus tanpa membuat instantiating kelas. Dengan mentakrifkan kaedah statik menggunakan kata kunci "statik" kita boleh memanggil kaedah di mana-mana sahaja dalam kelas.

Berikut ialah contoh mudah yang menunjukkan cara mentakrif dan menggunakan kaedah statik:

class Car {
    public static function start() {
        echo "The car is starting...";
    }
}

// 调用静态方法
Car::start();

Dalam contoh di atas, kami mentakrifkan kaedah statik bernama "mulakan" dan memanggil kaedah tanpa memulakan kelas "Kereta". Kita dapat melihat bahawa output teks ringkas kelas dicetak.

Bahagian 2: Memanggil atribut kelas dalam kaedah statik

Dalam kaedah statik kelas, kita juga boleh memanggil atribut dan kaedah kelas dengan menggunakan kata kunci "diri". Walaupun kata kunci "diri" sangat berkuasa, kita perlu menyedari dua batasan:

  1. Tidak boleh menggunakan kata kunci "$this"
  2. Tidak boleh mengakses sifat bukan statik

Berikut ialah contoh menggunakan kata kunci "diri" untuk memanggil sifat statik:

class Counter {
    private static $count = 0;

    public static function increment() {
        self::$count++;
        echo "Count: " . self::$count;
    }
}

// 调用静态方法
Counter::increment();

Dalam contoh di atas, kami mentakrifkan kaedah statik bernama "kenaikan", yang Menambah pembilang dan mencetak nilainya, yang dinaikkan sebanyak 1 setiap kali kaedah dipanggil. Ambil perhatian bahawa kami menggunakan kata kunci "diri" untuk merujuk kepada sifat statik "$count".

Bahagian 3: Memanggil kaedah lain dalam kaedah statik

Dalam kaedah statik, dengan menggunakan kata kunci "diri", kita juga boleh memanggil kaedah statik lain. Walau bagaimanapun, kita perlu memberi perhatian kepada dua perkara berikut:

  1. Hanya kata kunci "diri" boleh digunakan dalam kelas yang sama dan kata kunci "$this" tidak boleh digunakan
  2. Hanya kelas boleh dipanggil Kaedah statik dalam kaedah statik tidak boleh memanggil kaedah bukan statik

Berikut ialah contoh yang menunjukkan cara memanggil kaedah statik lain dalam kaedah statik:

class Counter {
    private static $count = 0;

    public static function increment() {
        self::addOne();
        echo "Count: " . self::$count;
    }

    private static function addOne() {
        self::$count++;
    }
}

// 调用静态方法
Counter::increment();

Dalam contoh di atas, Kami mentakrifkan kaedah "kenaikan" dan kaedah "tambah Satu". Dalam "kenaikan" kita panggil "addOne" dan tambahkan pembilang sebanyak 1, kemudian cetak nilai pembilang.

Kesimpulan

Dengan menggunakan kaedah statik dalam PHP, kami boleh melaksanakan operasi tertentu tanpa membuat instantiating kelas. Kita boleh memanggil sifat dan kaedah lain dalam kelas dengan menggunakan kata kunci "diri", yang memudahkan kita menggunakan kaedah statik. Walau bagaimanapun, perlu diingatkan bahawa kata kunci "$this" tidak boleh digunakan dalam kaedah statik, dan hanya kaedah statik lain dalam kelas boleh dipanggil.

Atas ialah kandungan terperinci Bagaimana untuk memanggil kelas dalam kaedah statik php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn