PHP面向?qū)ο?mdash;—訪問(wèn)修飾符
Jul 09, 2016 am 09:10 AM??? PHP中有三種訪問(wèn)修飾符,分別是:
- public(公共的、默認(rèn))
- protected(受保護(hù)的)
- private(私有的)
??? 它們可以分別用在類(lèi)的屬性和方法上(類(lèi)的屬性和方法統(tǒng)稱(chēng)為類(lèi)的成員),用來(lái)修飾類(lèi)成員的訪問(wèn)權(quán)限。???
public(公共的、默認(rèn))
??? 在PHP5中如果類(lèi)沒(méi)有指定成員的訪問(wèn)修飾符,默認(rèn)就是public的訪問(wèn)權(quán)限。
<span style="color: #008000">/*</span><span style="color: #008000"> 以下兩個(gè)方法聲明訪問(wèn)權(quán)限效果相同 </span><span style="color: #008000">*/</span> <span style="color: #0000ff">function</span><span style="color: #000000"> say(){}; publilc </span><span style="color: #0000ff">function</span> say(){};
??? 當(dāng)類(lèi)的成員被聲明為public的訪問(wèn)修飾符時(shí),該成員能被外部代碼訪問(wèn)和操作。
private(私有的)
???? 被定義為private的成員,對(duì)于類(lèi)內(nèi)部所有成員都可見(jiàn),沒(méi)有訪問(wèn)限制。對(duì)類(lèi)外部不允許訪問(wèn)。
protected(受保護(hù)的)
????? protected稍微有點(diǎn)復(fù)雜,被聲明為protected的成員,只允許該類(lèi)的子類(lèi)進(jìn)行訪問(wèn)。
?
???? 訪問(wèn)權(quán)限情況表:
訪問(wèn)權(quán)限 |
public |
protected |
private |
所有 |
★ |
|
|
子類(lèi) |
★ |
★ |
|
類(lèi)內(nèi) |
★ |
★ |
★ |
以下面的例子總結(jié):
<span style="color: #000000">php </span><span style="color: #0000ff">class</span><span style="color: #000000"> Woman{ </span><span style="color: #0000ff">public</span> <span style="color: #800080">$name</span> = 'lisa'; <span style="color: #008000">//</span><span style="color: #008000"> 公共的訪問(wèn)權(quán)限</span> <span style="color: #0000ff">protected</span> <span style="color: #800080">$money</span> = 3000.00; <span style="color: #008000">//</span><span style="color: #008000"> 受保護(hù)的權(quán)限</span> <span style="color: #0000ff">private</span> <span style="color: #800080">$age</span> = 35; <span style="color: #008000">//</span><span style="color: #008000"> 私有的訪問(wèn)權(quán)限</span> <span style="color: #0000ff">function</span><span style="color: #000000"> printInfo(){ </span><span style="color: #0000ff">echo</span> <span style="color: #800080">$this</span>-><span style="color: #000000">name; </span><span style="color: #0000ff">echo</span> <span style="color: #800080">$this</span>-><span style="color: #000000">money; </span><span style="color: #0000ff">echo</span> <span style="color: #800080">$this</span>-><span style="color: #000000">age; } </span><span style="color: #0000ff">private</span> <span style="color: #0000ff">function</span><span style="color: #000000"> secret(){ </span><span style="color: #0000ff">echo</span> "這是個(gè)秘密!"<span style="color: #000000">; } } </span><span style="color: #800080">$woman</span> = <span style="color: #0000ff">new</span><span style="color: #000000"> Woman(); </span><span style="color: #0000ff">echo</span> <span style="color: #800080">$woman</span>->name; <span style="color: #008000">//</span><span style="color: #008000"> 公共屬性可以訪問(wèn) // echo $woman->money; // 受保護(hù)屬性,報(bào)致命錯(cuò)誤 // echo $woman->age; // 私有屬性,報(bào)致命錯(cuò)誤</span> <span style="color: #800080">$woman</span>->printInfo(); <span style="color: #008000">//</span><span style="color: #008000"> 可以打印三個(gè)屬性的信息,因?yàn)閜rintInfo是公共方法 // $woman->secret(); // 私有方法,訪問(wèn)出錯(cuò)</span> <span style="color: #0000ff">class</span> Girl <span style="color: #0000ff">extends</span><span style="color: #000000"> Woman{ </span><span style="color: #008000">//</span><span style="color: #008000"> 可以重新定義父類(lèi)的public和protected方法,但不能定義private的 // protected $money = 2000.00; // 可以從新定義</span> <span style="color: #0000ff">function</span><span style="color: #000000"> printInfo(){ </span><span style="color: #0000ff">echo</span> <span style="color: #800080">$this</span>-><span style="color: #000000">name; </span><span style="color: #0000ff">echo</span> <span style="color: #800080">$this</span>-><span style="color: #000000">money; </span><span style="color: #008000">//</span><span style="color: #008000"> echo $this->age; // 找不到屬性</span> <span style="color: #000000"> } } </span><span style="color: #800080">$girl</span> = <span style="color: #0000ff">new</span><span style="color: #000000"> Girl(); </span><span style="color: #0000ff">echo</span> <span style="color: #800080">$girl</span>->name; <span style="color: #008000">//</span><span style="color: #008000"> 公共屬性可以訪問(wèn) // echo $girl->money; // 受保護(hù)屬性,報(bào)致命錯(cuò)誤 // echo $girl->age; // 私有屬性,找不到屬性</span> <span style="color: #800080">$girl</span>->printInfo(); <span style="color: #008000">//</span><span style="color: #008000"> 顯示$name,$money,找不到$age屬性;</span> ?>

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Die Datei "Settings.JSON" befindet sich auf dem Pfad auf Benutzerebene oder Arbeitsbereichsebene und wird verwendet, um die VSCODE-Einstellungen anzupassen. 1. Benutzer-Level-Pfad: Windows ist C: \ Benutzer \\ AppData \ Roaming \ Code \ User \ Settings.json, MacOS is /users//library/applicationsupport/code/user/settings.json, Linux is /home/.config/code/usser/setings.json; 2. Pfad auf Arbeitsbereichsebene: .VSCODE/Einstellungen im Projekt Root Directory

ReadOmpropertiesinphp8.2canonlyBeSignedoncinstructororatDeklarationandCannotBemodifiedAfterward, durchsetzungsvermutbarkeitatheluagelevel.2.ToachedevimmiMmutability, WrapMutabletypesLikearrayObjecustomimmutablecollections

Verwenden Sie zun?chst JavaScript, um die Einstellungen für Benutzersysteme und lokal gespeicherte Themeneinstellungen zu erhalten und das Seitenthema zu initialisieren. 1. Die HTML -Struktur enth?lt eine Schaltfl?che zum Ausl?sen von Themenwechsel. 2. CSS verwendet: root, um helle Themenvariablen zu definieren, .Dark-Mode-Klasse definiert dunkle Themenvariablen und wendet diese Variablen über var () an. 3.. JavaScript erkennt bevorzuge-farbige Scheme und liest LocalStorage, um das ursprüngliche Thema zu bestimmen. 4. Schalten Sie die Dark-Mode-Klasse im HTML-Element beim Klicken auf die Schaltfl?che und speichern Sie den aktuellen Status vor LocalStorage. 5. Alle Farb?nderungen werden mit einer übergangsanimation von 0,3 Sekunden begleitet, um den Benutzer zu verbessern

Ja, ein gemeinsames CSS-Dropdown-Menü kann mit reinem HTML und CSS ohne JavaScript implementiert werden. 1. Verwenden Sie verschachtelte UL und Li, um eine Menüstruktur zu erstellen. 2. Verwenden Sie die: Hover Pseudo-Klasse, um die Anzeige und das Verstecken von Pulldown-Inhalten zu steuern. 3.. Setzen Sie Position: Relativ für Eltern -Li, und das Untermenü wird unter Verwendung von Position positioniert: absolut; 4. Das untergeordnete Standards ist angezeigt: Keine, die angezeigt wird: Block, wenn sie schwebend sind; 5. Multi-Level-Pulldown kann durch Verschachtelung, kombiniert mit dem übergang und Fade-In-Animationen erzielt und an mobile Terminals mit Medienabfragen angepasst werden. Die gesamte L?sung ist einfach und erfordert keine JavaScript -Unterstützung, was für gro?e geeignet ist

Verwenden Sie Leistungsanalyse-Tools, um Engp?sse zu lokalisieren, VisualVM oder JProfiler in der Entwicklung und Testphase zu verwenden und Async-Profiler in der Produktionsumgebung Priorit?t zu geben. 2. Reduzieren Sie die Objekterstellung, verwenden Sie Objekte wieder, verwenden Sie StringBuilder, um String -Splei?en zu ersetzen und entsprechende GC -Strategien auszuw?hlen. 3.. Optimieren Sie die Auswahl der Sammlung, w?hlen Sie die Anfangskapazit?t gem?? der Szene aus; V. 5. Tune JVM-Parameter, festlegen, angemessene Haufengr??e und Müllsammler mit geringer Latenz einstellen und GC-Protokolle aktivieren; 6. Vermeiden Sie die Reflexion auf Codeebene, ersetzen Sie Wrapper -Klassen durch Grundtypen, Verz?gerungsinitialisierung und verwenden Sie endgültige und statische. 7. Kontinuierliche Leistungstest und überwachung, kombiniert mit JMH

Itertools.combinations wird verwendet, um alle nicht repetitiven Kombinationen (irrelevant) zu generieren, die eine bestimmte Anzahl von Elementen aus dem iterablen Objekt ausw?hlen. Die Verwendung umfasst: 1. Auswahl 2 Elementkombinationen aus der Liste, wie z. 2. Nehmen Sie 3 Charakterkombinationen von Saiten wie "ABC" und "ABD", die für die Subsequence -Erzeugung geeignet sind; 3. Finden Sie die Kombinationen, in denen die Summe von zwei Zahlen dem Zielwert entspricht, z. B. 1 5 = 6, die Doppelschleifenlogik vereinfachen. Der Unterschied zwischen Kombinationen und Anordnung besteht darin, ob die Reihenfolge wichtig ist, Kombinationen betrachten AB und BA als gleich, w?hrend Permutationen als unterschiedlich angesehen werden.

Python ist ein effizientes Instrument zur Implementierung von ETL -Prozessen. 1. Datenextraktion: Daten k?nnen aus Datenbanken, APIs, Dateien und anderen Quellen über Pandas, SQLalchemy, Anfragen und andere Bibliotheken extrahiert werden; 2. Datenumwandlung: Verwenden Sie Pandas für Reinigung, Typumwandlung, Assoziation, Aggregation und andere Vorg?nge, um die Datenqualit?t zu gew?hrleisten und die Leistung zu optimieren. A. Datenbelastung: Verwenden Sie Pandas 'TO_SQL -Methode oder Cloud -Plattform -SDK, um Daten an das Zielsystem zu schreiben, auf Schreibmethoden und Stapelverarbeitung zu achten. 4. Toolempfehlungen: Luftstrom, Dagster, Pr?fekten werden zur Prozessplanung und -verwaltung verwendet, um Protokollalarme und virtuelle Umgebungen zu kombinieren, um die Stabilit?t und Wartbarkeit zu verbessern.

UseGuzzleForrobUtttprequestswithheaderStimeouts.2.ParsehtmleffictionLyWithSymfonydomcrawleruSusectors.3.HandlejavaScript-HeavysitesByintegratingPuppeteerviaPexec () torenderpages.4.respactroboBoBoBoBoThoter- und addDelays, addDelays, rotdelayents, rotateuseragents und rotateuseragents und ushEdelays, usaDelays, rot
