Laravel学习-01预备阶段-01 PHP 基础

7 阅读2分钟

Laravel学习-01预备阶段-01 PHP 基础

在正式学习 Laravel 框架之前,掌握 PHP 基础是必不可少的。本文将简要回顾 Laravel 开发中常用的核心 PHP 知识点,包括变量、函数、数组、面向对象(OOP)、命名空间和自动加载(PSR-4)。语言尽量简洁,便于快速回顾。


1. 变量

PHP 是弱类型语言,变量以 $ 开头,无需显式声明类型:

$name = "Laravel";
$version = 11;
$isAwesome = true;

变量作用域主要有:

  • 局部变量:在函数内部定义。
  • 全局变量:在函数外部定义,需用 global$GLOBALS 访问。
  • 静态变量:用 static 声明,函数调用结束后保留值。

2. 函数

使用 function 定义函数:

function greet($name) {
    return "Hello, $name!";
}

echo greet("Taylor"); // Hello, Taylor!

支持默认参数、可变参数(...)和匿名函数(闭包):

$add = fn($a, $b) => $a + $b; // PHP 7.4+ 箭头函数

3. 数组

PHP 数组实际是有序映射,支持索引数组和关联数组:

// 索引数组
$colors = ['red', 'green', 'blue'];

// 关联数组
$user = [
    'name' => 'Alice',
    'age'  => 30
];

// 多维数组
$users = [
    ['name' => 'Bob', 'age' => 25],
    ['name' => 'Eve', 'age' => 28]
];

常用数组函数:array_map(), array_filter(), in_array(), array_key_exists() 等。


4. 面向对象(OOP)

PHP 支持完整的面向对象特性:

类与对象

class User {
    public $name;
    private $email;

    public function __construct($name, $email) {
        $this->name = $name;
        $this->email = $email;
    }

    public function getName() {
        return $this->name;
    }
}

$user = new User("Taylor", "taylor@laravel.com");
echo $user->getName(); // Taylor

继承、接口、抽象类

interface Authenticatable {
    public function login();
}

abstract class BaseModel {
    abstract public function save();
}

class Post extends BaseModel implements Authenticatable {
    public function save() { /* ... */ }
    public function login() { /* ... */ }
}

访问控制

  • public:任何地方可访问。
  • protected:类自身及子类可访问。
  • private:仅类内部可访问。

5. 命名空间(Namespace)

命名空间用于避免类名冲突,Laravel 广泛使用命名空间:

<?php
namespace App\Models;

class User {
    // ...
}

使用其他命名空间的类:

use App\Models\User;
use Illuminate\Support\Facades\DB;

$user = new User();

全局命名空间用 \ 开头,如 \strlen()


6. 自动加载(PSR-4)

手动 require 文件非常繁琐。PHP 通过 自动加载(Autoloading) 解决这个问题。

PSR-4 是现代 PHP 项目的标准自动加载规范。它将命名空间与目录结构映射:

  • 命名空间:App\Models\User
  • 文件路径:/app/Models/User.php

小结

以上是 Laravel 开发所需的 PHP 基础核心内容。掌握这些,你就能更顺畅地理解 Laravel 的源码和设计思想。下一步,我们将进入 Laravel 环境搭建与项目结构介绍。


系列预告
《Laravel学习-01预备阶段-02 Composer》