边记边学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教程有兴趣的朋友有所帮助。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds





De nombreux utilisateurs choisiront la marque Huawei lors du choix des montres intelligentes. Parmi eux, les Huawei GT3pro et GT4 sont des choix très populaires. De nombreux utilisateurs sont curieux de connaître la différence entre Huawei GT3pro et GT4. Quelles sont les différences entre Huawei GT3pro et GT4 ? 1. Apparence GT4 : 46 mm et 41 mm, le matériau est un miroir en verre + un corps en acier inoxydable + une coque arrière en fibre haute résolution. GT3pro : 46,6 mm et 42,9 mm, le matériau est du verre saphir + corps en titane/corps en céramique + coque arrière en céramique 2. GT4 sain : en utilisant le dernier algorithme Huawei Truseen5.5+, les résultats seront plus précis. GT3pro : ajout d'un électrocardiogramme ECG, d'un vaisseau sanguin et de la sécurité

Pourquoi l'outil Snipping ne fonctionne pas sous Windows 11 Comprendre la cause première du problème peut aider à trouver la bonne solution. Voici les principales raisons pour lesquelles l'outil de capture peut ne pas fonctionner correctement : L'assistant de mise au point est activé : cela empêche l'ouverture de l'outil de capture. Application corrompue : si l'outil de capture plante au lancement, il est peut-être corrompu. Pilotes graphiques obsolètes : des pilotes incompatibles peuvent interférer avec l'outil de capture. Interférence provenant d'autres applications : d'autres applications en cours d'exécution peuvent entrer en conflit avec l'outil de capture. Le certificat a expiré : une erreur lors du processus de mise à niveau peut provoquer ce problème. Solution simple. Celles-ci conviennent à la plupart des utilisateurs et ne nécessitent aucune connaissance technique particulière. 1. Mettez à jour les applications Windows et Microsoft Store

Chaque année, avant qu'Apple ne publie une nouvelle version majeure d'iOS et de macOS, les utilisateurs peuvent télécharger la version bêta plusieurs mois à l'avance pour en faire l'expérience en premier. Étant donné que le logiciel est utilisé à la fois par le public et par les développeurs, Apple a lancé des versions développeur et publique, qui sont des versions bêta publiques des versions bêta développeur, pour les deux. Quelle est la différence entre la version développeur et la version publique d’iOS ? Littéralement parlant, la version développeur est une version bêta développeur et la version publique est une version bêta publique. La version développeur et la version publique ciblent des publics différents. La version développeur est utilisée par Apple pour les tests par les développeurs. Vous avez besoin d'un compte développeur Apple pour la télécharger et la mettre à niveau.

Le HP Victus 15 est un ordinateur portable de jeu d'entrée de gamme de 15,6 pouces qui ne mériterait normalement pas beaucoup d'attention, mais une nouvelle offre Best Buy offre 40 % de réduction sur l'ordinateur portable de jeu d'entrée de gamme, ramenant le prix de 799,99 $ à un prix très bas. économique $

Partie 1 : étapes de dépannage initiales Vérification de l'état du système Apple : avant d'aborder des solutions complexes, commençons par les bases. Le problème ne vient peut-être pas de votre appareil ; les serveurs Apple sont peut-être en panne. Visitez la page État du système d'Apple pour voir si l'AppStore fonctionne correctement. S'il y a un problème, tout ce que vous pouvez faire est d'attendre qu'Apple le résolve. Vérifiez votre connexion Internet : assurez-vous que vous disposez d'une connexion Internet stable, car le problème "Impossible de se connecter à l'AppStore" peut parfois être attribué à une mauvaise connexion. Essayez de basculer entre le Wi-Fi et les données mobiles ou de réinitialiser les paramètres réseau (Général > Réinitialiser > Réinitialiser les paramètres réseau > Paramètres). Mettez à jour votre version iOS :

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

Cet article vous aidera à interpréter le code source de Vue et à vous expliquer pourquoi vous pouvez l'utiliser pour accéder aux propriétés de diverses options de Vue2. J'espère qu'il sera utile à tout le monde !

Un collègue est resté bloqué à cause d'un bug signalé par ce problème de pointage de Vue2 qui a provoqué l'utilisation d'une fonction de flèche, entraînant l'impossibilité d'obtenir les accessoires correspondants. Il ne le savait pas quand je le lui ai présenté, puis j'ai délibérément regardé le groupe de communication front-end. Jusqu'à présent, au moins 70 % des programmeurs front-end ne le comprennent toujours pas. Aujourd'hui, je vais partager avec. vous ce lien. Si tout n'est pas clair Si vous ne l'avez pas encore appris, s'il vous plaît, faites-moi une grande gueule.
