Rumah pembangunan bahagian belakang tutorial php php中静态类与静态变量用法的区别分析_php技巧

php中静态类与静态变量用法的区别分析_php技巧

May 16, 2016 pm 08:25 PM
php perbezaannya pembolehubah penggunaan baik hati statik

本文实例分析了php中静态类与静态变量用法的区别。分享给大家供大家参考。具体分析如下:

static是定义一个静态对象或静态变量,关于static 定义的变量或类方法有什么特性我们看完本文章的相关实例后就见分晓了.

1. 创建对象$object = new Class(),然后使用”->”调用:$object->attribute/function,前提是该变量/方法可访问.

2. 直接调用类方法/变量:class::attribute/function,无论是静态/非静态都可以,但是有前提条件.

A. 如果是变量,需要该变量可访问.

B. 如果是方法,除了该方法可访问外,还需要满足.

① 如果是静态方法,没有特殊条件.

② 如果是非静态方法,需要改方法中没有使用$this,即没有调用非静态的变量/方法,当然,调用静态的变量/方法没有问题.

然后我们再看一下使用$object->… 和使用class::… 都有什么区别:

1. 使用$object->… ,需要执行构造函数创建对象.

2. 使用class::… 调用静态方法/变量,不需要执行构造函数创建对象.

3. 使用class::… 调用非静态方法/变量,也不需要执行构造函数创建对象.

然后奇怪的地方就出来了,既然2和3都一样,那静态方法/变量存在还有什么意义呢?

静态static:声明类成员或方法为 static,就可以不实例化类而直接访问,不能通过一个对象来访问其中的静态成员(静态方法除外),静态成员属于类,不属于任何对象实例,但类的对象实例都能共享.

例子,代码如下:

复制代码 代码如下:
Class Person{
    // 定义静态成员属性
    public static $country = "中国";
    // 定义静态成员方法
    public static function myCountry() {
        // 内部访问静态成员属性
        echo "我是".self::$country."人
";
    }
}
class Student extends Person {
    function study() {
        echo "我是". parent::$country."人
";
    }
}
// 输出成员属性值
echo Person::$country."
";  // 输出:中国
$p1 = new Person();
//echo $p1->country;   // 错误写法
// 访问静态成员方法
Person::myCountry();   // 输出:我是中国人
// 静态方法也可通过对象访问:
$p1->myCountry();
 
// 子类中输出成员属性值
echo Student::$country."
"; // 输出:中国
$t1 = new Student();
$t1->study();    // 输出:我是中国人
?>

运行该例子,输出:
中国
我是中国人
我是中国人
中国
我是中国人

小结:在类内部访问静态成员属性或者方法,使用 self::(注意不是 $slef),代码如下:

复制代码 代码如下:
slef:: $country

slef:: myCountry()

在子类访问父类静态成员属性或方法,使用 parent::(注意不是 $parent),代码如下:

复制代码 代码如下:
parent:: $country

parent:: myCountry()

外部访问静态成员属性和方法为 类名/子类名::,代码如下:

复制代码 代码如下:
Person::$country

Person::myCountry()

Student::$country

但静态方法也可以通过普通对象的方式访问.
例子,声明静态变量,代码如下:

复制代码 代码如下:
   function foo(){
   static $int = 0;// correct
   static $int = 1+2;   // wrong (as it is an expression)
   static $int = sqrt(121); // wrong (as it is an expression too)
   $int++;
   echo $int;
   }
?>

例子,使用静态变量的例子,代码如下:
复制代码 代码如下:
   function Test()
   {
   static $w3sky = 0;
   echo $w3sky;
   $w3sky++;
   }
?>

现在,每次调用 Test() 函数都会输出 $w3sky 的值并加一.

静态变量也提供了一种处理递归函数的方法,递归函数是一种调用自己的函数,写递归函数时要小心,因为可能会无穷递归下去,必须确保有充分的方法来中止递归,一下这个简单的函数递归计数到 10,使用静态变量 $count 来判断何时停止.

例子,静态变量与递归函数,代码如下:

复制代码 代码如下:
   function Test()
   {
   static $count = 0;
   
   $count++;
   echo $count;
   if ($count    Test();
   }
   $count--;
   }
?>

注:静态变量可以按照上面的例子声明,如果在声明中用表达式的结果对其赋值会导致解析错误.

希望本文所述对大家的php程序设计有所帮助。

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

DeepSeek Apakah perbezaan antara versi R1 dan V3 DeepSeek Apakah perbezaan antara versi R1 dan V3 Feb 19, 2025 pm 03:24 PM

DeepSeek: Perbandingan mendalam antara versi R1 dan V3 membantu anda memilih pembantu AI terbaik! DeepSeek sudah mempunyai puluhan juta pengguna, dan fungsi dialog AI telah diterima dengan baik. Tetapi adakah anda keliru ketika menghadapi versi R1 dan V3? Artikel ini akan menjelaskan perbezaan antara kedua -dua terperinci untuk membantu anda memilih versi yang paling sesuai. Perbezaan teras antara versi DeepSeekR1 dan V3: Ciri-ciri matlamat reka bentuk versi V3 memberi tumpuan kepada penalaran masalah yang kompleks, analisis logik yang mendalam, model bahasa besar pelbagai fungsi, yang memberi tumpuan kepada skalabilitas dan kecekapan seni bina dan parameter pengoptimuman pembelajaran pengoptimuman, skala parameter 1.5 Bilion hingga 70 bilion seni bina pakar hibrid MOE, jumlah parameter adalah setinggi 671 bilion, setiap token diaktifkan sebanyak 37 bilion

Ringkasan Soalan Lazim untuk Penggunaan DeepSeek Ringkasan Soalan Lazim untuk Penggunaan DeepSeek Feb 19, 2025 pm 03:45 PM

Panduan Pengguna Alat DeepSeekai dan FAQ DeepSeek adalah alat pintar AI yang kuat. FAQ: Perbezaan antara kaedah akses yang berbeza: Tidak ada perbezaan fungsi antara versi web, versi aplikasi dan panggilan API, dan aplikasi hanya pembungkus untuk versi web. Penggunaan tempatan menggunakan model penyulingan, yang sedikit lebih rendah daripada versi penuh DeepSeek-R1, tetapi model 32-bit secara teorinya mempunyai keupayaan versi penuh 90%. Apa itu bar? Sillytavern adalah antara muka depan yang memerlukan memanggil model AI melalui API atau Ollama. Apa itu Had Breaking

Adakah bitcoin mempunyai stok? Adakah bitcoin mempunyai stok? Mar 03, 2025 pm 06:42 PM

Pasaran cryptocurrency berkembang pesat, dan Bitcoin, sebagai pemimpin, telah menarik perhatian banyak pelabur. Ramai orang yang ingin tahu: adakah bitcoin mempunyai stok? Jawapannya tidak. Bitcoin sendiri bukan stok, tetapi pelabur secara tidak langsung boleh melabur dalam aset yang berkaitan dengan bitcoin melalui pelbagai saluran, yang akan dijelaskan secara terperinci dalam artikel ini. Alternatif untuk Bitcoin Investment: Daripada melabur secara langsung di Bitcoin, pelabur boleh mengambil bahagian dalam pasaran Bitcoin oleh: Bitcoin ETF: Ini adalah dana yang didagangkan di pasaran perdagangan saham, yang portfolio asetnya mengandungi kontrak niaga hadapan Bitcoin atau Bitcoin. Ini adalah pilihan yang agak mudah untuk pelabur yang terbiasa dengan pelaburan saham, tanpa perlu memegang Bitcoin secara langsung. Saham Syarikat Perlombongan Bitcoin: Perniagaan syarikat ini adalah perlombongan bitcoin dan memegang bitcoin

Apakah perbezaan antara pra-pasaran dan perdagangan selepas pasaran? Penjelasan terperinci mengenai perbezaan antara perdagangan pra-pasaran dan selepas pasaran Apakah perbezaan antara pra-pasaran dan perdagangan selepas pasaran? Penjelasan terperinci mengenai perbezaan antara perdagangan pra-pasaran dan selepas pasaran Mar 03, 2025 pm 11:54 PM

Di pasaran kewangan tradisional, perdagangan pra-pasaran dan selepas pasaran merujuk kepada aktiviti perdagangan di luar tempoh dagangan biasa. Walaupun pasaran cryptocurrency didagangkan sepanjang masa, platform perdagangan seperti Bitget juga menawarkan ciri -ciri yang sama, terutama beberapa platform komprehensif yang perdagangan saham dan kriptografi pada masa yang sama. Artikel ini akan menjelaskan perbezaan dalam perdagangan pra-pasaran dan selepas pasaran dan meneroka kesannya terhadap harga mata wang. Empat perbezaan utama antara perdagangan pra-pasaran dan selepas pasaran: perbezaan utama antara pra-pasaran dan perdagangan selepas pasaran dan tempoh dagangan biasa adalah dalam empat aspek: masa dagangan, kecairan, turun naik harga dan jumlah dagangan: masa dagangan: dagangan pra-pasaran berlaku sebelum perdagangan rasmi bermula, dan perdagangan selepas itu adalah selepas dagangan. Kecairan: Kecairan perdagangan pra-dan selepas jam adalah rendah, terdapat beberapa peniaga, dan tawaran dan tawaran harga tawaran adalah besar;

Mengapa Bittensor dikatakan sebagai 'Bitcoin' di trek AI? Mengapa Bittensor dikatakan sebagai 'Bitcoin' di trek AI? Mar 04, 2025 pm 04:06 PM

Tajuk Asal: Bittensor = Aibitcoin? Bittensor mengamalkan model subnet yang membolehkan kemunculan penyelesaian AI yang berbeza dan memberi inspirasi kepada inovasi melalui token TAO. Walaupun pasaran AI matang, Bittensor menghadapi risiko yang kompetitif dan mungkin tertakluk kepada sumber terbuka yang lain

Adakah terdapat perbezaan antara bitcoin Korea Selatan dan bitcoin domestik? Adakah terdapat perbezaan antara bitcoin Korea Selatan dan bitcoin domestik? Mar 05, 2025 pm 06:51 PM

Ledakan pelaburan Bitcoin terus memanaskan. Walaupun China pernah menjadi pasaran terbesar untuk bitcoin, kesan dasar telah membawa kepada sekatan transaksi. Hari ini, Korea Selatan telah menjadi salah satu pasaran Bitcoin utama di dunia, menyebabkan pelabur mempersoalkan perbezaan di antara ia dan bitcoin domestiknya. Artikel ini akan menjalankan analisis mendalam tentang perbezaan antara pasaran bitcoin kedua-dua negara. Analisis perbezaan antara Korea Selatan dan pasaran Bitcoin China. Sebagai contoh, pada akhir Oktober 2024, harga bitcoin di Korea Selatan sekali

Proksi menegak: senario aplikasi dan tafsiran potensi mengganggu proksi enkripsi asli Proksi menegak: senario aplikasi dan tafsiran potensi mengganggu proksi enkripsi asli Mar 04, 2025 am 10:21 AM

Ejen Perisikan Buatan (Aiagents) dengan cepat mengintegrasikan ke dalam operasi harian perusahaan, dari syarikat -syarikat besar ke perniagaan kecil, hampir semua bidang telah mula digunakan, termasuk jualan, pemasaran, kewangan, undang -undang, IT, pengurusan projek, logistik, perkhidmatan pelanggan dan automasi aliran kerja. Kami bergerak dari era pemprosesan manual data, melaksanakan tugas berulang, dan menggunakan jadual Excel ke era operasi autonomi oleh agen AI sekitar jam, yang bukan sahaja meningkatkan kecekapan tetapi juga mengurangkan kos dengan ketara. Kes Permohonan Ejen AI di Web2: Perspektif Yombinator Apten: Alat Pengoptimuman Jualan dan Pemasaran Menggabungkan Teknologi AI dan SMS. Bildai: Model yang boleh membaca cetak biru seni bina,

Pepe membeli dan dijual dengan cara yang besar, adakah Mutm pelaburan yang lebih bijak pada tahun 2025? Pepe membeli dan dijual dengan cara yang besar, adakah Mutm pelaburan yang lebih bijak pada tahun 2025? Mar 03, 2025 pm 07:09 PM

Selepas lonjakan di Pepe, bolehkah Mutm menjadi pilihan pelaburan yang lebih stabil pada tahun 2025? PEPE (PEPE) telah membuat pelabur awal menguntungkan, tetapi turun naik harga ganas juga telah membuat banyak orang mempersoalkan prospek jangka panjangnya. Memandangkan pasaran mata wang meme terus bergelora, peniaga mula memberi tumpuan kepada projek -projek dengan kelebihan yang lebih asas, dan Mutuumfinance (MUTM) adalah salah satu daripada mereka. Ini adalah platform pinjaman yang terdesentralisasi yang memberi tumpuan kepada aplikasi kewangan praktikal. Tidak seperti PEPE, yang bergantung kepada spekulasi spekulatif, MUTM membina ekosistem defi berstruktur di mana pengguna boleh meminjam dan memperoleh pendapatan pasif. Pra-jualannya telah melebihi satu juta dolar AS, fasa pertama kadar jualan token melebihi 97%, pelaburan awal

See all articles