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 đó. 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.
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í 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.
Ví dụ:
Xem ví dụ |