Jadual Kandungan
php中静态类与静态变量用法的区别分析
Rumah pembangunan bahagian belakang tutorial php php中静态类与静态变量用法的区别分析_PHP教程

php中静态类与静态变量用法的区别分析_PHP教程

Jul 13, 2016 am 10:09 AM
php static dan menganalisis perbezaannya pembolehubah penggunaan daripada 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--;
}
?>


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

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/944486.htmlTechArticlephp中静态类与静态变量用法的区别分析 static是定义一个静态对象或静态变量,关于static 定义的变量或类方法有什么特性我们看完本文章的相...
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

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 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)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

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

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Program PHP untuk mengira vokal dalam rentetan Program PHP untuk mengira vokal dalam rentetan Feb 07, 2025 pm 12:12 PM

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

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;

See all articles