hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
    • Cấu trúc dữ liệu và giải thuật
    • Lập Trình C# Cơ Bản
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • Lập trình PHP
  • Lập trình PHP cơ bản
Khái niệm hướng đối tượng, Class, Object trong PHP

Khái niệm hướng đối tượng, Class, Object trong PHP

  • 14-03-2023
  • Toanngo92
  • 0 Comments

Mục lục

  • Class và Object trong PHP
    • Khái niệm Class
    • Khái niệm Objects
  • Định nghĩa một class trong PHP
  • Tạo đối tượng trong PHP
    • Từ khóa $this
    • Từ khóa instanceof
  • Constructor và Destructor
    • Phương thức Constructor
    • Phương thức Destructor
  • Một số Magic Method trong PHP

Class và Object trong PHP

Không giống như lập trình hướng thủ tục coi trọng thủ tục hoặc chức năng, Lập trình hướng đối tượng (OOP) coi trọng đối tượng. Một đối tượng không là gì ngoài dữ liệu (thuộc tính) và hàm (phương thức) được kết hợp với nhau. OOP được ưa thích hơn các ngôn ngữ lập trình truyền thống, có cấu trúc hoặc thủ tục vì những lợi thế như khả năng sử dụng lại. Các lớp và đối tượng được sử dụng để thực hiện các nguyên tắc OOP.

Khái niệm Class

Một class có thể chứa các biến (được gọi là thuộc tính), hằng số và hàm (được gọi là phương thức) được thiết kế để thực hiện một hoặc nhiều tác vụ. Trong thế giới thực, để xây dựng một ngôi nhà, một bản thiết kế được tạo ra trước tiên. Bản thiết kế chứa các kế hoạch rõ ràng và chi tiết cho ngôi nhà. Bằng cách sử dụng nó, bất kỳ số lượng ngôi nhà tương tự nào cũng có thể được xây dựng. Tương tự, một lớp (class) được định nghĩa một lần có thể được sử dụng để tạo bất kỳ số lượng đối tượng nào. Do đó, một lớp hoạt động như một kế hoạch chi tiết hoặc khuôn mẫu để tạo ra các đối tượng.

Khái niệm Objects

Các đối tượng (objects) là các bản sao hoặc thể hiện riêng lẻ của một class. Bất kỳ số lượng đối tượng nào cũng có thể được tạo cho một lớp. Mỗi đối tượng được tạo sẽ có cùng loại thuộc tính và hành vi như của một class. Tuy nhiên, mỗi đối tượng có thể có các giá trị khác nhau trong các biến.

Ví dụ: một khi bản thiết kế được tạo, có thể tạo bất kỳ số lượng bản sao nào. Mặc dù bản thiết kế giống nhau cho mỗi ngôi nhà, nhưng có thể có màu sơn, thiết kế nội thất khác nhau, v.v.

Thuật ngữMô tả
Member PropertiesCác biến được khai báo bên trong một lớp được gọi là thuộc tính thành viên hoặc biến thành viên. Đây cũng được gọi là thành viên dữ liệu. Các biến thành viên chỉ có thể được truy cập thông qua các hàm thành viên và không trực tiếp bên ngoài lớp. Bên trong các đối tượng, các biến này được gọi là các thuộc tính.
Member MethodsHàm hoặc phương thức được định nghĩa bên trong class được gọi là member functions hay methods (hàm thành viên hoặc phương thức thành viên) Các phương thức này có thể truy cập data members của class
InheritanceThông qua kế thừa, một lớp có thể sử dụng lại các thuộc tính của một lớp đã được định nghĩa. Lớp sử dụng lại các thuộc tính được gọi là sub class hoặc derived class hoặc child class. Class mà các thuộc tính được sử dụng lại được gọi là super class hoặc base class hoặc parent class.
Một derived class (lớp dẫn xuất có) thể sử dụng lại tất cả hoặc chỉ những thuộc tính được yêu cầu từ parent class (lớp cha).
constructorĐây là một loại hàm đặc biệt, được gọi tự động tại thời điểm tạo đối tượng.
destructorĐây là một loại chức năng đặc biệt, được sử dụng để xóa bộ nhớ bị chiếm giữ bởi một đối tượng. Nó được gọi tự động khi một đối tượng bị xóa hoặc nằm ngoài phạm vi.

Định nghĩa một class trong PHP

Một dass được tạo bằng cách sử dụng từ khóa lớp, theo sau là tên lớp và một cặp dấu ngoặc nhọn “{}”. Thuộc tính và phương thức của lớp được đưa ra bên trong dấu ngoặc. Một lớp có thể có bất kỳ số lượng thuộc tính và phương thức nào.

<?php
class Car {
  // Properties (also known as attributes or member variables)
  public $make;
  public $model;
  public $year;


  public function start() {
    echo "The car is starting.";
  }

  public function stop() {
    echo "The car is stopping.";
  }
}

Tạo đối tượng trong PHP

Khi một lớp được xác định, bất kỳ số lượng đối tượng nào cũng có thể được tạo cho loại lớp. Để tạo các đối tượng, nên sử dụng toán tử new.

Ví dụ:

$tiger = new Animals;
$lion = new Animals;
$bird = new Animals;

Ở đây, người dùng đã tạo ba đối tượng cho class Animals và các đối tượng này không phụ thuộc vào nhau. Ngoài ra, các đối tượng này sẽ tồn tại ở các vị trí vùng nhớ riêng biệt. Lưu ý rằng ở đây dấu ngoặc đơn sau tên lớp được bỏ qua. Điều này được cho phép vì chúng là không bắt buộc.

Từ khóa $this

$this là một từ khóa dành riêng (còn được gọi là biến giả) được sử dụng để truy cập đối tượng hiện tại. Pseudo-types là những từ khóa được sử dụng trong PHP để chỉ định các loại hoặc giá trị mà một đối số có thể có.

Từ khóa $this chỉ khả dụng bên trong một phương thức và đề cập đến đối tượng của phương thức hiện tại.

Ví dụ:

<?php
class Car {
  // Properties (also known as attributes or member variables)
  public $make;
  public $model;
  public $year;

  public function __construct($make, $model, $year) {
    $this->make = $make;
    $this->model = $model;
    $this->year = $year;
  }

  public function __toString() {
    return $this->make . " " . $this->model . " " . $this->year;
  }
// Methods (also knows as functions or member methods)

  // getter and setter
  public function getYear(){
    return $this->year;
  }

  public function setYear($year){
    $this->year = $year;
  }

  public function start() {
    echo "The car is starting.";
  }

  public function stop() {
    echo "The car is stopping.";
  }
}

Vài cách để cập nhật thuộc tính đối tượng:

Bên ngoài class:

Sau khi khởi tạo đối tượng sử dụng phép gán để gán thuộc tính cho đối tượng thành giá trị mới. Để truy vấn thuộc tính của đối tượng, sử dụng ký hiệu “->”

Ví dụ:

$car = new Car("Toyota", "Corolla", 2015);
$car->year = 2018;
echo $car; // Output: Toyota Corolla 2018

Trong ví dụ này, chúng ta tạo một đối tượng Car mới với nhãn hiệu là “Toyota”, model “Corolla” và năm “2015” bằng cách sử dụng hàm tạo của lớp __construct(). Sau đó, chúng ta đặt thuộc tính năm thành “2018” bằng cách gán trực tiếp một giá trị mới cho thuộc tính đó bằng cách sử dụng ký hiệu mũi tên (->). Để làm được việc này, thuộc tính bên trong class cần được để ở chế độ public. Cuối cùng, chúng ta hiển thị thông tin chi tiết của chiếc xe bằng cách sử dụng phương thức __toString() đã được định nghĩa trong lớp Car. Đầu ra của mã sẽ là “Toyota Corolla 2018”.

Bên trong class:

Sau khi khởi tạo đối tượng, sử dụng phương thức để cập nhật thuộc tính của đối tượng thông qua từ khóa $this khi định nghĩa bên trong class

Ví dụ:

$myCar = new Car("Toyota", "Corolla", 2010);
$myCar->setYear(2015);

// Now the year of $myCar is set to 2015

Bằng cách sử dụng phương thức setYear(), chúng ta có thể đảm bảo rằng giá trị được gán cho $year là hợp lệ và nằm trong phạm vi cho phép (trong trường hợp này là bất kỳ số nguyên nào). Ngoài ra, bằng cách giữ thuộc tính ở chế độ public, chúng ta có thể thay đổi giá trị của năm từ bên ngoài lớp Xe hơi.

Từ khóa instanceof

PHP sử dụng từ khóa instanceof để kiểm tra xem một đối tượng có thuộc về một lớp cụ thể hay không.

Ví dụ:

$car = new Car("Toyota", "Corolla", 2015);
var_dump($car instanceof(Car));
//output: true

Constructor và Destructor

Sau khi các đối tượng được khai báo, nên khởi tạo từng thành viên. Ngoài ra, khi các đối tượng vượt quá phạm vi, bộ nhớ sẽ bị xóa. Để thực hiện các thao tác này, các phương thức đặc biệt được gọi là hàm tạo và hàm hủy được sử dụng. Sau đây là mục đích của chúng:

  • Constructor: là các phương thức thành viên đặc biệt được gọi tự động khi một đối tượng được tạo.
  • Destructor: là các phương thức thành viên đặc biệt được gọi tự động khi một đối tượng bị hủy hoặc một đối tượng nằm ngoài phạm vi.

Phương thức Constructor

Một hàm constructor (khởi tạo) thường được khai báo công khai và được đặt tên là construct. Phương thức này phải bắt đầu bằng hai dấu gạch dưới (__).

Ví dụ:

class Car {
  public $make;
  public $model;
  
  public function __construct($make, $model) {
    $this->make = $make;
    $this->model = $model;
  }
}

$car = new Car("Toyota", "Corolla");
echo $car->make; // outputs "Toyota"
echo $car->model; // outputs "Corolla"

Phương thức Destructor

Một hàm destructor được gọi khi một đối tượng bị xóa hoặc đã ra khỏi phạm vi. Như với hàm constructor, hàm hủy cũng phải bắt đầu bằng hai dấu gạch dưới (__). Nếu một đối tượng chứa phương thức destructor(), nó sẽ được PHP tự động gọi ở cuối tập lệnh.

<?php
class MyClass {
  public function __construct() {
    echo "Constructor called. <br>";
  }

  public function __destruct() {
    echo "Destructor called. <br>";
  }
}

$obj = new MyClass();
unset($obj); // Destroy the object

Một số Magic Method trong PHP

PHP có cung cấp khái niệm magic method (phương thức ma thuật) là các phương thức đặc biệt ghi đè hành động mặc định của PHP khi một số hành động nhất định được thực hiện trên một đối tượng. Tất cả các tên phương thức bắt đầu bằng __ được đặt trước bởi PHP. Do đó, không nên sử dụng các tên phương thức như vậy trừ khi ghi đè hành vi của PHP.

Các magic method đó bao gồm __construct() và __destruct() vừa được giới thiệu phía trên.

Xem thêm: https://www.php.net/manual/en/language.oop5.magic.php

Bài viết liên quan:

Hướng dẫn sử dụng xdebug để gỡ lỗi PHP bằng visual studio code môi trường windows
Hướng dẫn cấu hình Extension live server tự động tải lại PHP khi cập nhật file trên visual studio code
Kỹ thuật AJAX trong PHP
Làm việc với JSON trong PHP
Chuyển hướng trình duyệt, download file bằng HTTP Header trong PHP
Một số cải tiến mới của PHP 8
Nhận dạng trình duyệt và nền tảng trong PHP
Từ khóa final, static, overloading và magic method trong PHP
Abstract Class (lớp trừu tượng) trong PHP
Interface trong hướng đối tượng PHP
Method (phương thức), public,private,protected, method overriding trong hướng đối tượng PHP
Iterable và iterator trong PHP

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

2. PHÂN TÍCH VÀ ĐẶC TẢ HỆ THỐNG

1. TỔNG QUAN KIẾN THỨC THỰC HÀNH TRIỂN KHAI DỰ ÁN CÔNG NGHỆ THÔNG TIN

Hướng dẫn tự cài đặt n8n comunity trên CyberPanel, trỏ tên miền

Mẫu prompt tạo mô tả chi tiết bối cảnh

Một số cải tiến trong ASP.NET Core, Razor Page, Model Binding, Gabbage collection

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×