PHPを暗記しながら学ぶ - (12) オブジェクト指向プログラミング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; } }
上記の学生クラスでは、5 つの属性を宣言しました。これらはすべてプライベートと宣言されています。クラス外からは直接アクセスできないため、2 つのメソッドが提供されています。それぞれのプロパティにアクセスし、その値を設定します。一般に、クラスを宣言するとき、プロパティはプライベートとして宣言され、メンバー メソッドはパブリックとして宣言されるため、外部の世界はパブリック メソッドを通じてプライベート プロパティにアクセスできます。また、アクセスおよび設定メソッドを宣言する場合、通常、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 と同じであり、$ 記号をオブジェクトに追加する必要がありますが、後で追加する必要はありません。
(4) 静的属性
静的属性をどう説明するか思いつきませんでしたが、本の中でそれをよく表している次の文を見つけました: 静的属性は、 specific インスタンス オブジェクトではなくクラスに関連する永続値。静的プロパティは使い古されたグローバル変数と考えることができます。静的プロパティの重要な特徴は、静的プロパティにアクセスするときに、クラスのインスタンスを作成する必要がないこと、つまり、クラスのオブジェクトを定義する必要がないことです。
この本の中で、車のカテゴリーには販売数量の静的な属性があります。つまり、誰が車を買っても、とにかく売れれば、私の販売数量は増加します。 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教程有兴趣的朋友有所帮助。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ GT3pro と GT4 の違いに興味を持っています。 Huawei GT3pro と GT4 の違いは何ですか? 1. 外観 GT4: 46mm と 41mm、材質はガラスミラー + ステンレススチールボディ + 高解像度ファイバーバックシェルです。 GT3pro: 46.6mm および 42.9mm、材質はサファイアガラス + チタンボディ/セラミックボディ + セラミックバックシェルです。 2. 健全な GT4: 最新の Huawei Truseen5.5+ アルゴリズムを使用すると、結果はより正確になります。 GT3pro: ECG 心電図と血管と安全性を追加

Windows 11 で Snipping Tool が機能しない理由 問題の根本原因を理解すると、適切な解決策を見つけるのに役立ちます。 Snipping Tool が正しく動作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開かなくなります。破損したアプリケーション: 起動時にスニッピング ツールがクラッシュする場合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競合する可能性があります。証明書の有効期限が切れています: アップグレード プロセス中のエラーにより、この問題が発生する可能性があります。これらの簡単な解決策は、ほとんどのユーザーに適しており、特別な技術知識は必要ありません。 1. Windows および Microsoft Store アプリを更新する

毎年、Apple が iOS と macOS の新しいメジャー バージョンをリリースする前に、ユーザーは数か月前にベータ版をダウンロードして最初に体験することができます。同ソフトウェアは一般ユーザーと開発者の両方が使用するため、Appleは開発者向けベータ版のパブリックベータ版である開発者版とパブリック版を両方向けに開始した。 iOS の開発者バージョンとパブリック バージョンの違いは何ですか?文字通りに言うと、開発者バージョンは開発者テスト バージョンであり、パブリック バージョンは公開テスト バージョンです。開発者バージョンとパブリック バージョンは、異なるユーザーを対象としています。開発者バージョンは、Apple が開発者によるテストのために使用します。ダウンロードしてアップグレードするには、Apple 開発者アカウントが必要です。

パート 1: 最初のトラブルシューティング手順 Apple のシステムステータスを確認する: 複雑な解決策を掘り下げる前に、基本から始めましょう。問題はデバイスにあるのではなく、Apple のサーバーがダウンしている可能性があります。 Apple のシステム ステータス ページにアクセスして、AppStore が適切に動作しているかどうかを確認してください。問題があれば、Apple が修正してくれるのを待つしかありません。インターネット接続を確認します。「AppStore に接続できません」問題は接続不良が原因である場合があるため、安定したインターネット接続があることを確認してください。 Wi-Fi とモバイル データを切り替えるか、ネットワーク設定をリセットしてみてください ([一般] > [リセット] > [ネットワーク設定のリセット] > [設定])。 iOS バージョンを更新します。

HP Victus 15 は 15.6 インチのエントリーレベルのゲーム用ラップトップで、通常はあまり検討する価値はありませんが、新しい Best Buy の取引によりエントリーレベルのゲーム用ラップトップが 40% オフとなり、価格が 799.99 ドルから非常に安くなりました。予算に優しい $

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

同僚は、これによって指摘されたバグのために立ち往生しました。Vue2 のこの指摘の問題により、アロー関数が使用され、その結果、対応する props を取得できなくなりました。私がそれを彼に紹介したとき、彼はそれを知りませんでした。その後、私はわざとフロントエンド コミュニケーション グループに目を向けました。これまでのところ、フロントエンド プログラマーの少なくとも 70% はまだそれを理解していません。今日私はそれを共有しますyou this link. もしすべてが間違っている場合 まだ学習していない場合は、大きな口を与えてください。

Watch4proとgtはそれぞれ特徴や適用シーンが異なりますが、総合的な機能、高性能、スタイリッシュな外観を重視し、価格は高くてもいいという方にはWatch 4 Proの方が適しているかもしれません。高度な機能要件はなく、バッテリー寿命と手頃な価格を重視する場合は、GT シリーズの方が適しているかもしれません。最終的な選択は、個人のニーズ、予算、好みに基づいて決定する必要がありますが、購入する前に自分のニーズを慎重に検討し、さまざまな製品のレビューや比較を参照して、より情報に基づいた選択を行うことをお勧めします。
