Hướng dẫn when should i use a class in php? - khi nào tôi nên sử dụng một lớp học trong php?

Đây là một nguồn tài nguyên miễn phí từ khóa học trực tuyến của tôi, từ ý tưởng đến khi ra mắt, nơi tôi dạy bạn cách xây dựng một ứng dụng web Laravel đầy đủ, từng bước một, với tốc độ của người mới bắt đầu. Tìm hiểu thêm →my online course, From Idea To Launch, where I teach you how to build a full Laravel web application, step by step, at beginner's speed. Learn more →

Các lớp có thể tái sử dụng, các mô-đun mã khép kín, được sử dụng cho các mục đích cụ thể. are reusable, self-contained modules of code, used for specific purposes.

Các lớp học là một cách tuyệt vời để tổ chức mã bởi vì, như đã đề cập, họ có thể tái sử dụng vừa khép kín.

Dưới đây, tôi sẽ cung cấp cho bạn một danh sách cách tạo và sử dụng các lớp trong PHP.


Tạo một lớp học

Để xác định một lớp, bạn sử dụng cú pháp sau:


class Html
{

}

Các lớp có thể chứa các biến và chức năng

Vì vậy, trong một lớp, bạn có thể xác định các biến và chức năng:


class Html
{
  public $p_open = '

'; public $p_close = '

'; public function printParagraph($text) { } }

Và, khi tham chiếu các biến riêng của lớp từ trong một trong các chức năng của nó, bạn sử dụng $this để tham khảo bản thân lớp:


class Html
{
  public $p_open = '

'; public $p_close = '

'; public function printParagraph($text) { // prints

value-of-text

echo $this->p_open . $text . $this->p_close; } }

Nhưng làm thế nào để bạn truy cập chức năng đó? Ahh, vâng, bằng cách tạo ra một ví dụ của lớp.instance of the class.

Tạo một thể hiện của một lớp học

Nếu bạn nghĩ về lớp là loại mẫu của một người khác, bạn có thể tạo một đối tượng trên mạng dựa trên mẫu đó; Đó là đối tượng của người Viking được gọi là một thể hiện lớp.instance.

Bạn tạo một thể hiện của một lớp bằng cách sử dụng từ khóa mới, theo sau là tên lớp học:instance of a class using the new keyword, followed by the class’s name:

// creates an instance of the Html class
$myPage = new Html;

Và sau đó bạn có thể truy cập tất cả các chức năng của lớp - thông qua thể hiện của bạn - sử dụng mũi tên quen thuộc, ->, cú pháp:

// creates an instance of the Html class
$myPage = new Html;

// prints 

Whoomp, there it is!

$myPage->printParagraph('Whoomp, there it is!');

Các lớp cũng có khả năng mượn chức năng của các lớp khác.

Mở rộng một lớp học

Một lớp có thể mở rộng một lớp khác để mượn chức năng của lớp khác.extend another class in order to “borrow” the other class’s functionality.

Vì vậy, hãy để nói rằng chúng tôi có một lớp


class Html
{
  public $p_open = '

'; public $p_close = '

'; public function printParagraph($text) { } }
0 với các biến để thể hiện thông tin của xe và một chức năng để hiển thị thông tin của nó:


class Vehicle
{
  public $make = '';
  public $model = '';
  public $year = '';

  public function printInfo()
  {
    // prints "  "
    echo $this->year . ' ' . $this->make . ' ' . $this->model;
  }
}

Nhưng sau đó, hãy để nói rằng chúng tôi sau đó muốn tạo một lớp


class Html
{
  public $p_open = '

'; public $p_close = '

'; public function printParagraph($text) { } }
1 để đại diện cho một loại xe, xe hơi cụ thể. Chúng ta có thể tạo lớp đó và mở rộng lớp

class Html
{
  public $p_open = '

'; public $p_close = '

'; public function printParagraph($text) { } }
0 - sử dụng từ khóa

class Html
{
  public $p_open = '

'; public $p_close = '

'; public function printParagraph($text) { } }
3 - sẽ cho phép:

  1. mượn tất cả các chức năng lớp
    
    class Html
    {
      public $p_open = '

    '; public $p_close = '

    '; public function printParagraph($text) { } }
    0;
  2. và thêm chức năng ________ 11 cụ thể của riêng mình.

Điều đó sẽ hoạt động như vậy:


class Car extends Vehicle
{
  public function honk()
  {
    // prints "honk, honk!"
    echo "honk, honk!";
  }
}

// a car!
$car = new Car;

// this all works, because Cars
// have access to Vehicle functionality
$car->year = 1981;
$car->make = 'DeLorean';
$car->model = 'DMC-12';

// prints "1981 DeLorean DMC-12"
$car->printInfo();

// but it can *also* honk — specific to Cars
$car->honk(); // prints "honk, honk!"

Cuối cùng, nhưng không kém phần quan trọng, tất cả những gì kinh doanh này với


class Html
{
  public $p_open = '

'; public $p_close = '

'; public function printParagraph($text) { } }
6 ?! Có

class Html
{
  public $p_open = '

'; public $p_close = '

'; public function printParagraph($text) { } }
7 không?

Bạn betcha. Đây là…

class Html { public $p_open = '

'; public $p_close = '

'; public function printParagraph($text) { } } 6 so với class Html { public $p_open = '

'; public $p_close = '

'; public function printParagraph($text) { } } 7

Hãy để tôi làm cho điều này đơn giản nhất có thể.

Khi bạn đi trước một biến hoặc chức năng trong một lớp có


class Html
{
  public $p_open = '

'; public $p_close = '

'; public function printParagraph($text) { } }
6, biến/chức năng có thể được truy cập bên ngoài chính lớp.can be accessed outside of the class itself.

Khi bạn đi trước một biến hoặc chức năng trong một lớp có


class Html
{
  public $p_open = '

'; public $p_close = '

'; public function printParagraph($text) { } }
7, biến/hàm chỉ có thể được truy cập từ bên trong lớp.can only be accessed from within the class.

Vì vậy, hãy để Lừa lấy ví dụ thực tế. Giả sử bạn muốn tạo một lớp


class Html
{
  public $p_open = '

'; public $p_close = '

'; public function printParagraph($text) { // prints

value-of-text

echo $this->p_open . $text . $this->p_close; } }
2 để thiết lập các kết nối cơ sở dữ liệu. Lớp đó sẽ cần thông tin đăng nhập kết nối, nhưng nó chỉ cần truy cập chúng từ bên trong lớp.

Mặt khác, nó cần truy cập vào kết nối cơ sở dữ liệu bên ngoài lớp - nếu không thì nó sẽ khá vô dụng!

Bạn có thể định nghĩa một lớp như vậy như vậy:


class Database 
{
  // only accessible *inside* of the class
  private $servername = 'changeme';
  private $username = 'change';
  private $password = 'change';

  // accessible *outside* of the class
  public $connection = null;

  public function connect()
  {
    // INSIDE the class, so can access it all!
    $this->connection = connect_function($this->servername,
      $this->username, $this->password);
  }
}

// Connect to the database!
// works because the connect function is public
$db = new Database;
$db->connect();

// use the connection for something (e.g. to query)
// works because the connection variable because it's public
$result = $db->connection->query('…');

Tại sao chúng ta nên sử dụng các lớp học?

Bằng cách sử dụng các lớp, bạn đảm bảo rằng các phương thức chỉ được sử dụng trên một bộ dữ liệu. Điều này thêm vào bảo mật của mã vì bạn ít có khả năng sử dụng các chức năng mà chúng không thuộc về.ensuring that methods are only used on one set of data. This adds to the security of the code because you're less likely to use functions where they don't belong.

Tôi nên sử dụng một lớp hoặc một chức năng?

Các chức năng làm những điều cụ thể, các lớp học là những điều cụ thể.Các lớp thường có các phương thức, là các chức năng được liên kết với một lớp cụ thể và làm những việc liên quan đến thứ mà lớp là - nhưng nếu tất cả những gì bạn muốn là làm một cái gì đó, một chức năng là tất cả những gì bạn cần.if all you want is to do something, a function is all you need.

Mục đích của các lớp và đối tượng trong PHP là gì?

Một trong những khác biệt lớn giữa các hàm và lớp là một lớp chứa cả dữ liệu (biến) và các hàm tạo thành một gói được gọi là: 'đối tượng'.Lớp là một loại dữ liệu do lập trình viên xác định, bao gồm các phương thức cục bộ và các biến cục bộ.Lớp học là một tập hợp các đối tượng.Đối tượng có thuộc tính và hành vi.a class contains both data (variables) and functions that form a package called an: 'object'. Class is a programmer-defined data type, which includes local methods and local variables. Class is a collection of objects. Object has properties and behavior.

Lớp học trong PHP giải thích nó với ví dụ là gì?

Lớp-Đây là một loại dữ liệu do lập trình viên xác định, bao gồm các chức năng cục bộ cũng như dữ liệu cục bộ.Bạn có thể nghĩ về một lớp như một mẫu để tạo nhiều trường hợp cùng loại (hoặc lớp) của đối tượng.Đối tượng - một thể hiện riêng lẻ của cấu trúc dữ liệu được xác định bởi một lớp.a programmer-defined data type, which includes local functions as well as local data. You can think of a class as a template for making many instances of the same kind (or class) of object. Object − An individual instance of the data structure defined by a class.