物件導向程式設計(OOP)是現代 PHP 開發的基石。本教程以通俗易懂的方式,帶你從零開始理解類、屬性、方法、實例化、$this 指針等核心概念,並通過逐步重構的代碼範例建立直觀認知。
<?php
class MyClass {}
?>
這就是一個空的類,像一個「黑盒子」,目前還什麼都做不了。
<?php
class MyClass {
public $username = "深空"; // 預設值
}
?>
public(舊版用 var)表示外部可直接訪問。<?php
class MyClass {
public $username = "深空";
public function showUsername($name) {
echo $name; // 只輸出傳入的參數
}
}
?>
此時類內有三個 $username:屬性、方法參數、區域變量。直接調用 $obj->showUsername("豬頭深空") 只會輸出參數值。
<?php
$obj = new MyClass();
$obj->showUsername("豬頭深空"); // 輸出:豬頭深空
?>
-> 操作符用於訪問物件成員(屬性或方法),區分同名函數。
<?php
class MyClass {
public $username = "深空";
public function showUsername() {
echo $this->username; // 訪問類內屬性
}
}
$obj = new MyClass();
$obj->showUsername(); // 輸出:深空
?>
$this->username 等價於「當前實例的 username 屬性」。$obj->username = "豬頭深空"; 後再調用方法會輸出新值。<?php
class MyClass {
public $username = "深空";
public function showUsername() {
echo $this->username;
}
public function welcome() {
echo "歡迎";
$this->showUsername(); // 內部調用另一個方法
}
}
$obj = new MyClass();
$obj->welcome(); // 輸出:歡迎深空
?>
$this->showUsername() 表示調用「當前類的」方法,而非全局函數。
掌握:類定義、屬性、方法、實例化、$this、內部調用。下一篇將講解構造函數、繼承、訪問控制(protected/private)、靜態成員等進階主題。