PHP(PHP: Hypertext Preprocessor,遞歸縮寫)是全球最流行的服務端腳本語言之一,專為 Web 開發設計,可嵌入 HTML,支持幾乎所有主流數據庫,跨平台、開源、免費。本文面向零基礎新手,涵蓋核心概念、環境搭建、第一個腳本、進階學習路線。
<?php ... ?> 標籤包裹 PHP 代碼,可與 HTML 混排<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>我的第一個 PHP 頁面</title>
</head>
<body>
<h1>歡迎學習 PHP</h1>
<?php
// 這裡是 PHP 代碼
echo "Hello, World! 當前時間: " . date('Y-m-d H:i:s');
?>
</body>
</html>
文件後綴:.php(標準)、.php3、.phtml(舊習慣)。
| 工具 | 平台 | 特點 |
|---|---|---|
| XAMPP | Win/Mac/Linux | Apache+MariaDB+PHP+Perl,圖形界面管理,最流行 |
| phpStudy (小皮面板) | Win | 國產、多版本 PHP 切換、Nginx/Apache 切換、可視化配置 |
| WampServer | Win | Apache+MySQL+PHP,綠色、輕量 |
| MAMP | Mac/Win | Mac 端首選,專業版支持多版本 |
| Laragon | Win | 極速啟動、自動虛擬主機、預裝 Composer/Node/Redis |
步驟:下載 → 安裝 → 啟動 Apache/MySQL → 瀏覽器訪問 https://localhost → 將項目放入 htdocs/www 目錄。
# 1. 拉取官方 PHP + Apache 鏡像
docker run -d --name my-php -p 8080:80 -v "$PWD":/var/www/html php:8.2-apache
# 2. 或使用 Docker Compose(推薦,含 MySQL/Redis)
# docker-compose.yml
version: '3.8'
services:
web:
image: php:8.2-apache
ports: ["8080:80"]
volumes: [".:/var/www/html"]
depends_on: [db]
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: app
volumes: ["db-data:/var/lib/mysql"]
volumes:
db-data:
啟動:docker-compose up -d。優點:環境隔離、版本鎖定、生產一致、團隊共享 docker-compose.yml。
# Ubuntu/Debian
apt update && apt install -y php php-fpm php-mysql php-redis php-mbstring php-xml php-curl php-gd php-zip php-bcmath php-intl nginx mysql-server
# CentOS/RHEL/Rocky/Alma
dnf install -y php php-fpm php-mysqlnd php-redis php-mbstring php-xml php-curl php-gd php-zip php-bcmath php-intl nginx mysql-server
# 配置 Nginx + PHP-FPM
# /etc/nginx/conf.d/default.conf
server {
listen 80;
root /var/www/html;
index index.php index.html;
location / { try_files $uri $uri/ /index.php?$query_string; }
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
systemctl enable --now nginx php-fpm mysqld
創建 index.php 放入 Web 根目錄:
<?php
// 1. 基礎輸出
echo "<h1>Hello, PHP!</h1>";
// 2. 變量與字符串拼接
$name = '新手開發者';
$language = 'PHP';
echo "<p>歡迎 {$name} 學習 {$language}!</p>";
// 3. 陣列與循環
$skills = ['HTML', 'CSS', 'JavaScript', 'PHP', 'MySQL', 'Git'];
echo "<ul>";
foreach ($skills as $skill) {
echo "<li>{$skill}</li>";
}
echo "</ul>";
// 4. 日期時間
echo "<p>今天是 " . date('Y年m月d日 l') . "</p>";
// 5. 簡單表單處理(GET)
if (isset($_GET['msg'])) {
echo "<div style='color:green'>收到消息: " . htmlspecialchars($_GET['msg']) . "</div>";
}
?>
<!-- 簡單表單 -->
<form method="GET">
<input type="text" name="msg" placeholder="輸入點什麼...">
<button type="submit">提交</button>
</form>
瀏覽器訪問 https://localhost/index.php?msg=測試成功 查看效果。
| 語法 | 示例 | 說明 |
|---|---|---|
| 變量 | $name = 'Tom'; | $ 開頭,區分大小寫 |
| 常量 | define('APP_NAME', 'MyApp'); | 全局、不可變 |
| 數據類型 | int/float/string/bool/array/object/null | 弱類型,自動轉換 |
| 運算符 | + - * / % . [] ?? ?: ??= | . 字符串拼接,?? 空合併 |
| 流程控制 | if/else/elseif/switch/while/for/foreach | 同 C/Java,支持 : / endwhile 替代大括號 |
| 函數 | function add($a, $b) { return $a+$b; } | 支持類型聲明、默認值、可變參數 |
| 超全局變量 | $_GET/$_POST/$_REQUEST/$_SESSION/$_COOKIE/$_SERVER/$_FILES/$_ENV | 自動可用,無需 global |
PHP 入門門檻低、見效快、就業面廣。搭建環境(推薦 Docker/Laragon)、寫出第一個 echo、連上 MySQL、跑通增刪改查,你就踏入了 PHP 開發大門。**多讀官方手冊、多寫代碼、多看優秀開源項目源碼**,堅持走完學習路線,半年可達到初級工程師水平,一年勝任獨立開發。歡迎來到 PHP 世界!