PHP 存取修飾詞:初學者指南
你好啊,未來的 PHP 開發者們!今天,我們將要深入 PHP 的存取修飾詞世界。如果你從未寫過一行代碼,也不用擔心 - 我將會是你的友好嚮導,帶你走過這趟旅程。在本教程結束時,你將會像專業人士一樣使用存取修飾詞!
什麼是存取修飾詞?
在我們開始之前,讓我們先了解存取修飾詞是什麼。可以把它們當作是你代碼的保安。它們控制誰能夠看到和使用程序中的不同部分。在 PHP 中,我們有三個主要的存取修飾詞:
- Public(公共)
- Private(私有)
- Protected(受保護)
讓我們詳細探討每一個。
公共成員
打開的書
公共成員就像一本打開的書 - 任何人都可以閱讀,也可以在裡面寫東西。在 PHP 中,當你將某事物聲明為 public 時,意味著它可以在代碼的任何地方被訪問。
讓我們看一個例子:
<?php
class Book {
public $title;
public function setTitle($newTitle) {
$this->title = $newTitle;
}
}
$myBook = new Book();
$myBook->title = "PHP for Beginners";
echo $myBook->title; // 輸出:PHP for Beginners
$myBook->setTitle("Advanced PHP");
echo $myBook->title; // 輸出:Advanced PHP
?>
在這個例子中,$title
是一個公共屬性,setTitle()
是一個公共方法。我們可以直接訪問和修改 $title
,並且可以從類外部調用 setTitle()
。
當使用 Public
當你希望一個屬性或方法在代碼中的任何地方都可以訪問時,使用 public。它對於需要廣泛可用的事物來說非常好,但是要小心 - 太多的公共訪問可能會導致你的數據出現意外的變化。
私有成員
秘密的日記
私有成員就像一本秘密日記 - 只有擁有者(類本身)可以閱讀或寫入。當你將某事物聲明為 private 時,它只能在同一類中被訪問。
讓我們看一個例子:
<?php
class Diary {
private $secretThought;
public function writeThought($thought) {
$this->secretThought = $thought;
}
public function readThought() {
return $this->secretThought;
}
}
$myDiary = new Diary();
$myDiary->writeThought("I love PHP!");
echo $myDiary->readThought(); // 輸出:I love PHP!
// 這會導致錯誤:
// echo $myDiary->secretThought;
?>
在這個例子中,$secretThought
是私有的。我們不能從類外部直接訪問它,但我們可以使用公共方法 writeThought()
和 readThought()
來與它交互。
當使用 Private
當你希望隱藏類的內部工作時,使用 private。它對於敏感數據或不應該從類外部干擾的複雜操作來說非常好。
受保護成員
家庭相冊
受保護的成員就像一本家庭相冊 - 只有家庭成員(類及其後代)才能看到。當你將某事物聲明為 protected 時,它可以在同一類以及繼承自它的類中被訪問。
這裡有一個例子:
<?php
class Animal {
protected $species;
protected function setSpecies($species) {
$this->species = $species;
}
}
class Dog extends Animal {
public function woof() {
$this->setSpecies("Canine");
echo "Woof! I'm a " . $this->species;
}
}
$myDog = new Dog();
$myDog->woof(); // 輸出:Woof! I'm a Canine
// 這會導致錯誤:
// echo $myDog->species;
?>
在這個例子中,$species
和 setSpecies()
是受保護的。Dog
類可以訪問它們,因為它繼承自 Animal
,但我們不能從這些類外部直接訪問它們。
當使用 Protected
當你希望允許子類訪問,但仍然讓成員對外部世界隱藏時,使用 protected。它對於創建具有共享功能的基本類非常好,這些功能可以被更特定的類繼承。
存取修飾詞的比較
這裡有一個方便的表格來總結差異:
存取修飾詞 | 類別 | 子類 | 外部 |
---|---|---|---|
Public | ✓ | ✓ | ✓ |
Protected | ✓ | ✓ | × |
Private | ✓ | × | × |
結論
這就是了!你剛剛踏入了 PHP 存取修飾詞的世界。記住:
- Public 是給所有人的
- Private 只給類本身
- Protected 是給類及其子類的
在你繼續你的 PHP 旅程時,你會發現恰當使用存取修飾詞可以使你的代碼更安全、更有組織且更容易維護。這就像蓋房子一樣 - 你希望有些房間對客人開放,有些與家人共享,有些則只是給你自己。
持續練習,不久你將會成為存取修飾詞的大師!快樂編程!
Credits: Image by storyset