PHP 存取修飾詞:初學者指南

你好啊,未來的 PHP 開發者們!今天,我們將要深入 PHP 的存取修飾詞世界。如果你從未寫過一行代碼,也不用擔心 - 我將會是你的友好嚮導,帶你走過這趟旅程。在本教程結束時,你將會像專業人士一樣使用存取修飾詞!

PHP - Access Modifiers

什麼是存取修飾詞?

在我們開始之前,讓我們先了解存取修飾詞是什麼。可以把它們當作是你代碼的保安。它們控制誰能夠看到和使用程序中的不同部分。在 PHP 中,我們有三個主要的存取修飾詞:

  1. Public(公共)
  2. Private(私有)
  3. 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;
?>

在這個例子中,$speciessetSpecies() 是受保護的。Dog 類可以訪問它們,因為它繼承自 Animal,但我們不能從這些類外部直接訪問它們。

當使用 Protected

當你希望允許子類訪問,但仍然讓成員對外部世界隱藏時,使用 protected。它對於創建具有共享功能的基本類非常好,這些功能可以被更特定的類繼承。

存取修飾詞的比較

這裡有一個方便的表格來總結差異:

存取修飾詞 類別 子類 外部
Public
Protected ×
Private × ×

結論

這就是了!你剛剛踏入了 PHP 存取修飾詞的世界。記住:

  • Public 是給所有人的
  • Private 只給類本身
  • Protected 是給類及其子類的

在你繼續你的 PHP 旅程時,你會發現恰當使用存取修飾詞可以使你的代碼更安全、更有組織且更容易維護。這就像蓋房子一樣 - 你希望有些房間對客人開放,有些與家人共享,有些則只是給你自己。

持續練習,不久你將會成為存取修飾詞的大師!快樂編程!

Credits: Image by storyset