Skip to content

Blog Công Nghệ

MENUMENU
  • Trang chủ
  • Giới Thiệu
  • Lập Trình
    • Lập Trình Website
      • Laravel
        • Phân Tích Dự Án
      • PHP
      • SQL
      • HTML
      • CSS
      • Javascipt
      • My Project
      • Wordpress
    • Luyện Skill
    • Lập trình winform
    • CSDL
    • Lập Trình Android
    • Trí tuệ nhân tạo
    • Khai Khoáng Dữ Liệu
    • Arduino
    • Khác
    • Đồ án
  • Phần Mềm
    • Powerpoint
    • Tool
  • Cuộc sống và Giải trí
    • Hợp âm
    • web5ngay - youtube
    • Công Giáo
    • Kỹ Năng Sống
    • Street Workout
  • Danh sách bài viết
  • Guide line
    • Guild line phỏng vấn
    • Guide lines Laravel
    • Guide line Module Frontend
  • Tóm tắt sách
  • Fanpage

Blog Công Nghệ

Nơi chia sẻ kiến thức

OOP trong PHP

6 Tháng Mười Một, 2020 by admin
Lượt xem: 13

OOP hay hướng đối lượng sẽ không xa lạ với các developer. Hôm nay cùng tui điểm qua OOP trong PHP nha!

Contents

  • Tính trừu tượng
  • Tính đóng gói
  • Tính kế thừa
  • Tính đa hình
  • Một vài điểm trong OOP PHP

Tính trừu tượng

Nó như bao ngôn ngữ khác thôi. Mình phải tưởng tượng và hình dung được đối tượng đó cần những thuộc tính, phương thức gì để mô tả nó không lang mang dài dòng, tốn bộ nhớ.

Tính đóng gói

Tức là bảo mật được dữ liệu ở đây PHP cũng là get, set như bao ngôn ngữ khác vậy. Và lưu ý rằng thuộc tính phải là private hoặc protected nha.

public function setName($name)
{
      $this->name = $name;
}

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

Ví dụ hàng xóm sang mượn búa, thay vì bảo hàng xóm cứ tự nhiên vào lục lọi, ta sẽ bảo: “Ấy bác ngồi chơi để tôi bảo cháu lấy cho”.

Tính đóng gói: Có thể gói dữ liệu (data, ~ biến, trạng thái) và mã chương trình (code, ~ phương thức) thành một cục gọi là lớp (class) để dễ quản lí. Trong cục này thường data rất rối rắm, không tiện cho người không có trách nhiệm truy cập trực tiếp, nên thường ta sẽ che dấu data đi, chỉ để lòi phương thức ra ngoài. 

Tính kế thừa

Như ngoài thực tế, người cha nhượng quyền sở hữu cho con cái gì thì con được hưởng cái đó. trong PHP thì như thế này.

<?php
class Email
{
	protected $nguoiGui = 6;
	private $nguoiNhan;

	const ESC = 1;
	const DESC = 2;

	public function sendEmail()
	{
		echo "gui email";
	}
	
}
class htmlEmail extends Email
{
	public function __call($method, $arguments)
	{
		echo "khong co method nay";
	}
	
	public function __get($property)
	{
		return $this->nguoiGui[$property];
	}	
}
?>

Sẵn code ở trên mình giới thiệu các bạn hàm __call hàm này là khi gọi method không tồn tại thì hàm này sẽ được thực hiện ớ.

Tính đa hình

Đa hình mô tả một mô hình của lập trình hướng đối tượng, mà ở đây các class có chức năng khác nhau nhưng chia sẻ cùng 1 interface.

Một nguyên tắc quan trọng trong OOP là một class chỉ nên thực hiện một việc, và nó nên làm điều đó thật tốt.

Ví dụ, cùng là một người nhưng tuỳ từng ngữ cảnh sẽ đóng vai trò khác nhau, một người đàn ông vừa là nhân viên (khi đi làm), vừa là một người chồng (đối với vợ) và là người cha (đối với con),… nói chung là anh ta sẽ biến hình thành con người khác nhau tuỳ từng ngữ cảnh.

Trong OOP và cụ thể là trọng ngôn ngữ C++ thì Polymorphism có 2 dạng:

  • Dạng 1 – Compile time Polymorphism: Một class có nhiều hàm cùng tên nhưng khác nhau về số lượng tham số hoặc kiểu dữ liệu của tham số. Khi call hàm cùng tên đó thì trong quá trình biên dịch, compiler sẽ quyết định hàm nào (trong số các hàm cùng tên) sẽ được call dựa trên số lượng tham số và kiểu dữ liệu của tham số truyển vào hàm. Việc định nghĩa các hàm cùng tên được gọi là overloading – nạp chồng hàm.
  • Dạng 2 – Runtime Polymorphism: Cùng một class có thể cho ra nhiều biến thể, không phải được định nghĩa bởi lớp đó, mà bởi các lớp con của nó. Đây là một phương pháp để định nghĩa lại hành vi của lớp cơ sở mà không phải sửa code của lớp cơ sở. Nếu call hàm của đối tượng của lớp dẫn xuất thông qua con trỏ của lớp cơ sở thì việc hàm nào được call sẽ được quyết định lúc Runtime. Runtime Polymorphism được thực hiện bằng phương pháp overriding – ghi đè phương thức.

Đọc thêm tại đây rất rõ ràng đấy.

Một vài điểm trong OOP PHP

Contractor hay hàm tạo tức là khi bạn tạo một đối tượng thì hàm này sẽ tự động được gọi.

class Email
{
	function __construct()
	{
		
	}	
}

Tương tự ta có hàm hủy sẽ tự động gọi khi giải phóng đối tượng

class Email
{
	function __destruct()
	{
		
	}	
}

Ngoài ra PHP còn hỗ trợ một số hàm kiểm tra class như: class_exists(), method_exists(), property_exists().

is_a($e, “Email”); kiểm tra $e có thuộc loại đối tượng class Email không.

get_declared_classes(); liệt kê toàn bộ class có thể sử dụng được.

No related posts.

Post navigation

Previous Post:

Xử lý ngày tháng và json trong php

Next Post:

Unit Test trong PHP – Công cụ tuyệt vời

Trả lời Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Ẩn sidebar

Tìm kiếm

Generic selectors
Exact matches only
Search in title
Search in content
Search in posts
Search in pages

Blog Công Nghệ

Bài viết mới

  • Master typescript
  • Sendmail trong Laravel sử dụng dịch vụ SES, SQS của Amazon
  • Install SSL in Nginx Ubuntu
  • Docker study
  • Bảo vệ: Hướng dẫn code bot Telegram easy game

Lượng truy cập

0074451
Visit Today : 47
Visit Yesterday : 178
This Month : 722
Who's Online : 6
© 2025 Blog Công Nghệ | WordPress Theme by Superbthemes