Hướng dẫn function overriding in php - ghi đè hàm trong php

Trong OOP, overriding và overloading là 2 kỹ thuật giúp tạo nên Tính đa hình [Polymorphism], một trong những sức mạnh của lập trình hướng đối tượng. Bài viết này chúng ta sẽ tìm hiểu về khái niệm, cách dùng và tác dụng của 2 kỹ thuật nêu trên. Trong phạm vi bài viết này chúng ta chỉ để cập đến 2 kỹ thuật này trong Method. Trong lập trình, chúng ta không thể nào khai báo các function [method] trùng tên, nhưng trong OOP chỉ cần áp dụng hai kỹ thuật này, chúng ta hoàn toàn có thể làm được điều đó.
Trong phạm vi bài viết này chúng ta chỉ để cập đến 2 kỹ thuật này trong Method. Trong lập trình, chúng ta không thể nào khai báo các function [method] trùng tên, nhưng trong OOP chỉ cần áp dụng hai kỹ thuật này, chúng ta hoàn toàn có thể làm được điều đó.

1. Nạp Chồng [Overloading]

Trong PHP, nếu như người lập trình tạo ra một phương thức trong lớp con có trùng tên với một phương thức đã được tạo ở lớp cha thì đó được gọi là ghi đè phương thức[Method Overriding]. Hoặc một cách dễ hiểu hơn như sau.

  • Các phương thức nằm trong cùng 1 lớp , có cùng tên với nhau nhưng có danh sách đối số khác nhau được gọi là các phương thức nạp chồng.
  • Tùy theo ta gọi đối số thế nào mà nó sẽ gọi hàm tương ứng.
  • Nạp chồng là hình thức đa hình [polymorphism] trong quá trình biên dịch [compile time].

Ví dụ: đây cách viết nạp chồng giống c++

Khi chạy đoạn code trên sẽ thông báo lỗi sau: Fatal error: Cannot redeclare Person::caculateSalary[] Vậy để giải quyết vấn đề overloading trong PHP hỗ trợ hàm function __call[$nameMethod,$args]. Hàm này có 2 tham số, tham số đầu tiên tên hàm, tham số thứ 2 các tham số của hàm Fatal error: Cannot redeclare Person::caculateSalary[]
Vậy để giải quyết vấn đề overloading trong PHP hỗ trợ hàm function __call[$nameMethod,$args]. Hàm này có 2 tham số, tham số đầu tiên tên hàm, tham số thứ 2 các tham số của hàm

Ví dụ:

Xem ví dụ

2. Ghi đè [Override]

Trong PHP, nếu như người lập trình tạo ra một phương thức trong lớp con có trùng tên với một phương thức đã được tạo ở lớp cha thì đó được gọi là ghi đè phương thức[Method Overriding]. Hoặc một cách dễ hiểu hơn như sau.

  • Các phương thức nằm trong cùng 1 lớp , có cùng tên với nhau nhưng có danh sách đối số khác nhau được gọi là các phương thức nạp chồng.
  • Tùy theo ta gọi đối số thế nào mà nó sẽ gọi hàm tương ứng.
  • Nạp chồng là hình thức đa hình [polymorphism] trong quá trình biên dịch [compile time].
  • Ví dụ: đây cách viết nạp chồng giống c++

Ví dụ:

Xem ví dụ

Chủ Đề