Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah penggunaan statik dalam php

Apakah penggunaan statik dalam php

WBOY
WBOYasal
2022-02-14 11:22:042796semak imbas

Dalam PHP, kata kunci statik digunakan untuk mengubah suai atribut ahli dan kaedah ahli Menambah kata kunci statik sebelum ahli biasa kelas boleh menukar ahli biasa ini menjadi ahli statik "ClassName::$static property" dan "ClassName::static method()".

Apakah penggunaan statik dalam php

Persekitaran pengendalian tutorial ini: sistem Windows 10, PHP versi 7.1, komputer DELL G3

Apakah penggunaan statik dalam php

Dalam PHP, atribut ahli dan kaedah ahli yang diubah suai oleh kata kunci statik dipanggil atribut statik dan kaedah statik secara kolektif boleh dipanggil ahli statik di dalam kelas adalah berbeza daripada ahli umum dalam kelas . Ahli Statik tidak akan dijadikan instantiat ke dalam objek, yang bermaksud bahawa kita tidak perlu membuat instantiate kelas untuk mengakses ahli statik melalui kelas.

Mudah untuk mengisytiharkan pembolehubah statik dalam kelas Kita boleh menambah kata kunci statik sebelum ahli biasa kelas untuk menukar ahli biasa ini menjadi ahli statik. Dengan cara ini, kita boleh mengakses ahli statik ini secara langsung dalam kelas tanpa membuat instantiating kelas. Format sintaks untuk mengakses ahli statik adalah seperti berikut:

类名::$静态属性
类名::静态方法()

Simbol :: dipanggil operator resolusi skop dan digunakan untuk mengakses ahli statik, kaedah statik dan pemalar Ia juga boleh digunakan untuk mengatasi ahli dan kaedah.

Jika anda ingin mengakses sifat statik dalam kaedah ahli di dalam kelas, cuma tambah operator self:: sebelum nama sifat statik.

Yang berikut menunjukkan definisi ahli statik melalui contoh mudah:

<?php
    class Website{
        static public $name = &#39;中文网<br>&#39;;
        public $title = &#39;PHP教程&#39;;
        public static function url(){
            echo self::$name;
            echo &#39;http://www.php.cn/<br>&#39;;
            echo $this -> title;
        }
    }
    Website::url();
?>

Keputusan yang dijalankan adalah seperti berikut:

中文网
http://www.php.cn/
Fatal error: Uncaught Error: Using $this when not in object context ……

Nota: Dalam kaedah statik, hanya Apabila memanggil pembolehubah statik, pembolehubah biasa tidak boleh dipanggil kaedah biasa boleh memanggil pembolehubah statik.

Menggunakan ahli statik, selain menghapuskan keperluan untuk membuat instantiat objek, fungsi lain adalah untuk masih menyimpan data statik yang diubah suai selepas objek dimusnahkan supaya ia boleh digunakan pada masa akan datang apa yang kami perkenalkan sebelum ini Pembolehubah statik adalah serupa.

[Contoh] Isytiharkan pembolehubah statik $num, kemudian isytiharkan kaedah, panggil pembolehubah statik di dalam kaedah dan tambah 1 pada nilai pembolehubah kemudian nyatakan objek dalam kelas, dan akhirnya, panggil kaedah.

<?php
    class Website{
        static public $num = 0;
        public function add(){
            echo &#39;$num 的值为:&#39;.self::$num;
            self::$num++;
        }
    }
    $num1 = new Website();
    $num1 -> add();
    echo &#39;<br>&#39;;
    $num2 = new Website();
    $num2 -> add();
?>

Hasil yang dijalankan adalah seperti berikut:

$num 的值为:0
$num 的值为:1

Ahli statik tidak perlu membuat instantiate objek Apabila kelas dimuatkan buat kali pertama, ruang memori telah diperuntukkan, jadi ahli statik dipanggil terus Kelajuan adalah lebih cepat. Walau bagaimanapun, jika terlalu banyak ahli statik diisytiharkan, ruang akan diduduki sepanjang masa, yang akan menjejaskan kelajuan berjalan sistem.

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Apakah penggunaan statik dalam 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