边记边学PHP-(十二)面向对象编程2
这一篇与上一篇隔的时间有点长啊,并且中间还插入了一个小项目。不过没关系,《边记边学PHP》还会一直进行去。
PHP面向对象编程
(2)类属性
所谓类属性,就是在类里面声明的变量。它与在类外面声明的变量的区别就是前面加上了修饰权限,也就是上一篇中的public/private/protected。比如我要声明一个学生类,里面包含学生的学号,姓名,性别,年龄,班级等。那么我可以如下声明:
<?php class Student{ private $sid; private $name; private $gender; private $age; private $grade; public getSid(){ return $this->sid; } public getName(){ return $this->name; } public getGender(){ return $this->gender; } public getAge(){ return $this->age; } public getGrade(){ return $this->grade; } public setSid($sid){ $this->sid = $sid; } public setName($name){ $this->name = $name; } public setGender($gender){ $this->gender = $gender; } public setAge($age){ $this->age = $age; } public setGrade($grade){ $this->grade = $grade; } }
在上面的学生类中,我声明了五个属性,全部声明成了private私有型,那么在类的外面是不能直接访问他们的,所以我为它们每个属性提供了两个方法,分别是去访问他们和设置它们的值。一般在声明类的时候,属性声明成私有,而成员方法声明成公有,那么外面就能通过公有方法去访问私有属性了。并且在声明访问和设置两个方法的时候一般使用getXXX()和setXXX()这种形式,XXX第一个字母一般大写。当然也可以声明成公有属性,那么在类外就可以直接给它们赋值,并且访问了。但是还是建议声明成私有属性,因为以后如果规范了的话,每一个类会单独生命成一个php文件,专门存放这个类,声明成私有的会保证这个类的对象里面的值不会随意更改,保证了安全性。
在声明属性的同时,也可以像类外变量一样,声明的同时赋值。
这里注意:
属性可以存储一个值,一个数组,甚至是另一个类的对象。比如上面的学生类中给他添加学校属性,这个学校也是一个类,包括学校的名字,地址等。我首先声明学校类
class School{ private $name; private $address; public getName(){ return $this->name; } public getAddress(){ return $this->address; } public setName($name){ $this->name = $name; } public setAddress($address){ $this->address = $address; } }
<?php class Student{ ... private $school; ... public getSchool(){ return $this->school; } ... public setSchool($school){ $this->school = $school; } }
我先声明一个学校:
<span style="white-space:pre"> </span>$school1 = new School(); <span style="white-space:pre"> </span>$school1->setName("大连理工大学"); <span style="white-space:pre"> </span>$school1->setAddress("大连"); <span style="white-space:pre"> </span>$stu1 = new Student(); <span style="white-space:pre"> </span>$stu1->setSchool($school1);
<span style="white-space:pre"> </span>$stu1->getSchool()->getName();
这里在类里面访问变量的时候,使用了$this这个关键字,那么接下来就说一下this关键字。
(3)$this关键字
不管是声明成公有还是私有还是保护的成员变量,在类里面访问自己的变量一定会有的,那么就要用到$this关键字。$this关键字在我看来就是指类自己本身,我也可以理解成自己把自己当成了一个对象去调用自己的属性。这里注意,在声明变量的时候我们使用了$符号,但是如果使用$this访问的时候,只有this加$符号,后面的属性就不要加了,如果加上会报错。具体用法还是参照上面的代码。当然如果是外面声明的对象调用的时候跟$this一样,对象要加$符号,后面不加。
(4)静态属性
对于静态属性我没有想到怎么去解释它,不过我看到书上这句话说得很好:静态属性常用来表示一个与某个特定类有关而与实例对象无关的持续值。我们可以把静态属性看成是累得全局变量。静态属性的一个重要特性是,访问静态属性时不需要创建类的实例,即不需要定义类的对象。
在书上举了一个车类里面的销售数量的静态属性,也就是说不管是谁买的车,反正是卖了,那么我的销售数量就要加1。但是我上面已经举了学生与学校的例子,我就再接着我的例子说,我想到了一个学校毕业生的这个属性,也就是说不管你是谁,只要从我的学校毕业了,那么我的学校毕业生的人数就会多1。那么我可以这么声明:
<span style="white-space:pre"> </span>public static $graduate;
静态属性只占这个内存,不管存不存在对象实例,除非这个类没了,否则会一直占有自己的内存。而普通的属性在每次声明对象的时候都会分配内存。
静态属性一般声明成公有的。
(6)类常量
与类外的普通常量一样,类常量也是存储一个固定的值。使用const关键字进行声明,这里不需要加权限修饰。在访问的时候跟访问静态属性一样需要使用类名::(双冒号)加常量名来访问。比如如果我声明一个手机类,手机有各种型号,那么我可以把各个手机型号用常量来存储,在给手机型号属性赋值的时候使用这些常量来赋值就好了。但是可能有这种疑惑,为什么要使用常量,我直接声明不就行了。那么可以这样理解:
class Phone{ const IPHONE = 1; const ZTE = 2; const HUAWEI = 3; //这里面各种属性 }
这是我理解的常量的优点。但是我没怎么用过。
下一篇继续面向对象。
以上就介绍了边记边学PHP-(十二)面向对象编程2,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





Ramai pengguna akan memilih jenama Huawei apabila memilih jam tangan pintar Antaranya, Huawei GT3pro dan GT4 adalah pilihan yang sangat popular. Apakah perbezaan antara Huawei GT3pro dan GT4? 1. Rupa GT4: 46mm dan 41mm, bahan cermin kaca + badan keluli tahan karat + cangkang belakang gentian resolusi tinggi. GT3pro: 46.6mm dan 42.9mm, bahannya ialah kaca nilam + badan titanium/badan seramik + cangkerang belakang seramik 2. GT4 yang sihat: Menggunakan algoritma Huawei Truseen5.5+ terkini, hasilnya akan lebih tepat. GT3pro: Penambahan elektrokardiogram ECG dan saluran darah serta keselamatan

Mengapa Alat Snipping Tidak Berfungsi pada Windows 11 Memahami punca masalah boleh membantu mencari penyelesaian yang betul. Berikut ialah sebab utama Alat Snipping mungkin tidak berfungsi dengan betul: Focus Assistant dihidupkan: Ini menghalang Snipping Tool daripada dibuka. Aplikasi rosak: Jika alat snipping ranap semasa pelancaran, ia mungkin rosak. Pemacu grafik lapuk: Pemacu yang tidak serasi mungkin mengganggu alat snipping. Gangguan daripada aplikasi lain: Aplikasi lain yang sedang berjalan mungkin bercanggah dengan Alat Snipping. Sijil telah tamat tempoh: Ralat semasa proses naik taraf boleh menyebabkan penyelesaian mudah ini sesuai untuk kebanyakan pengguna dan tidak memerlukan sebarang pengetahuan teknikal khusus. 1. Kemas kini apl Windows dan Microsoft Store

Setiap tahun sebelum Apple mengeluarkan versi utama baharu iOS dan macOS, pengguna boleh memuat turun versi beta beberapa bulan lebih awal untuk mengalaminya terlebih dahulu. Memandangkan perisian ini digunakan oleh orang awam dan pembangun, Apple telah melancarkan versi pembangun dan awam, yang merupakan versi beta awam bagi versi beta pembangun, untuk kedua-duanya. Apakah perbezaan antara versi pembangun dan versi awam iOS? Secara literal, versi pembangun ialah versi ujian pembangun dan versi awam ialah versi ujian awam. Versi pembangun dan versi awam menyasarkan khalayak yang berbeza. Versi pembangun digunakan oleh Apple untuk ujian oleh pembangun Anda memerlukan akaun pembangun Apple untuk memuat turun dan meningkatkannya.

HP Victus 15 ialah 1 komputer riba permainan peringkat permulaan bersaiz 15.6-inci yang biasanya tidak bernilai banyak pertimbangan, namun tawaran Best Buy baharu menawarkan potongan 40% daripada komputer riba permainan peringkat permulaan, menurunkan harga daripada $799.99 kepada harga yang sangat tinggi. mesra bajet $

Bahagian 1: Langkah Penyelesaian Masalah Awal Menyemak Status Sistem Apple: Sebelum menyelidiki penyelesaian yang rumit, mari kita mulakan dengan asas. Masalahnya mungkin tidak terletak pada peranti anda; Lawati halaman Status Sistem Apple untuk melihat sama ada AppStore berfungsi dengan betul. Jika terdapat masalah, anda hanya boleh menunggu Apple membetulkannya. Semak sambungan Internet anda: Pastikan anda mempunyai sambungan internet yang stabil kerana isu "Tidak dapat menyambung ke AppStore" kadangkala boleh dikaitkan dengan sambungan yang lemah. Cuba tukar antara Wi-Fi dan data mudah alih atau tetapkan semula tetapan rangkaian (Umum > Tetapkan Semula > Tetapkan Semula Tetapan Rangkaian > Tetapan). Kemas kini versi iOS anda:

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Artikel ini akan membantu anda mentafsir kod sumber vue dan memperkenalkan sebab anda boleh menggunakan ini untuk mengakses sifat dalam pelbagai pilihan dalam Vue2. Saya harap ia akan membantu semua orang.

Seorang rakan sekerja tersekat kerana pepijat yang ditunjukkan oleh masalah penunjuk Vue2 ini menyebabkan fungsi anak panah digunakan, mengakibatkan ketidakupayaan untuk mendapatkan prop yang sepadan. Dia tidak tahu apabila saya memperkenalkannya kepadanya, dan kemudian saya sengaja melihat kumpulan pertukaran bahagian hadapan Setakat ini, sekurang-kurangnya 70% pengaturcara bahagian hadapan masih tidak memahaminya anda pautan ini. Jika semuanya tidak jelas saya belum belajar bagaimana untuk melakukannya, sila berikan saya mulut yang besar.
