Ví dụ nạp chồng phương thức trong PHP

  • Quá tải trong PHP cung cấp phương tiện để tự động tạo các thuộc tính và phương thức
  • Các thực thể động này được xử lý thông qua các phương thức ma thuật, người ta có thể thiết lập trong một lớp cho các loại hành động khác nhau
  • Tất cả các phương thức nạp chồng phải được định nghĩa là Public
  • Sau khi tạo đối tượng cho một lớp, chúng ta có thể truy cập tập hợp các thực thể là thuộc tính hoặc phương thức không được định nghĩa trong phạm vi của lớp
  • Các thực thể như vậy được cho là các thuộc tính hoặc phương thức quá tải và quá trình này được gọi là quá tải
  • Để làm việc với các thuộc tính hoặc hàm bị quá tải này, các phương thức ma thuật PHP được sử dụng
  • Hầu hết các phương thức ma thuật sẽ được kích hoạt trong ngữ cảnh đối tượng ngoại trừ phương thức __callStatic() được sử dụng trong ngữ cảnh tĩnh
Ví dụ nạp chồng phương thức trong PHP

Quá tải tài sản

  • Quá tải thuộc tính PHP cho phép chúng ta tạo các thuộc tính động trong ngữ cảnh đối tượng
  • Để tạo các thuộc tính đó, không cần dòng mã riêng
  • Một thuộc tính được liên kết với thể hiện của lớp và không được khai báo trong phạm vi của lớp, được coi là thuộc tính quá tải

Một số phương thức ma thuật hữu ích cho quá tải thuộc tính

  • __bộ(). Nó được kích hoạt trong khi khởi tạo các thuộc tính quá tải
  • __được(). Nó được sử dụng để đọc dữ liệu từ Thuộc tính không thể truy cập
  • __isset(). Phương thức kỳ diệu này được gọi khi chúng ta kiểm tra các thuộc tính quá tải bằng hàm isset()
  • __unset(). Hàm này sẽ được gọi khi sử dụng PHP unset() cho các thuộc tính quá tải
Tham gia bản tin của tôi

Quá tải của PHP là tạo ra các thực thể động. Trong hướng dẫn này, chúng ta sẽ hiểu về các thực thể động đó, cách chúng được tạo và cách truy cập chúng

Khi chúng tôi nhận ra rằng chúng tôi không thể triển khai quá tải bằng cách tạo 2 hàm có cùng tên trong lớp. Vì vậy, để thực hiện nạp chồng trong php, chúng ta sẽ nhờ sự trợ giúp của phương thức ma thuật __call. Phương thức ma thuật __call được gọi khi phương thức được gọi bởi lớp phản đối không thể truy cập được trong lớp. Vì vậy, ở đây chúng tôi sẽ không tạo phương thức một cách chính xác và sẽ nhờ sự trợ giúp của phương thức __call. Hiện tại gọi phương thức sẽ cho chúng ta 2 đối số là tên của phương thức được gọi và tham số của hàm. Hiện tại với sự hỗ trợ của trường hợp chuyển đổi hoặc nếu không, chúng tôi sẽ triển khai quá tải trong php. Sau đây là trường hợp quá tải cực kỳ cơ bản trong php

Các loại quá tải của PHP

Quá tải trong PHP có thể được phân loại là,

  1. Quá tải thuộc tính
  2. Quá tải phương thức
Quá tải thuộc tính

Quá tải thuộc tính PHP cho phép chúng ta tạo các thuộc tính động trong cài đặt đối tượng. Để tạo các thuộc tính đó, không cần dòng mã nào khác. Một thuộc tính liên quan đến thể hiện của lớp và nó không được khai báo bên trong phạm vi của lớp, được coi là thuộc tính quá tải

Dưới đây chúng ta sẽ tìm hiểu về một số cách sử dụng thuộc tính quá tải trong PHP

  • Đặt và nhận các thuộc tính quá tải
  • Đánh giá cài đặt thuộc tính quá tải
  • Hoàn tác cài đặt thuộc tính như vậy

Quá tải thuộc tính PHP sử dụng một số phương thức ma thuật. được mô tả dưới đây

được chạy khi ghi dữ liệu vào các thuộc tính không thể truy cập

được sử dụng để đọc dữ liệu từ các thuộc tính không thể truy cập

được kích hoạt bằng cách gọi isset() hoặc empty() trên các thuộc tính không thể truy cập

được gọi khi unset() được sử dụng trên các thuộc tính không thể truy cập

class PropertyOverload
{
/** Location for overloaded data. */
private $data = array();
public function __set($name, $value)
{
$this->data[$name] = $value;
}
public function __get($name)
{
return $this->data[$name];
}
public function __isset($name)
{
return isset($this->data[$name]);
}
public function __unset($name)
{
unset($this->data[$name]);
}
}
$obj = new PropertyOverload;
$obj->name = "Faysal Ahmed";
echo $obj->name; // Faysal Ahmed

Trong chương trình PHP ví dụ trên, thuộc tính động được tạo. Trong khi khởi tạo thuộc tính động này, __set() được gọi với cặp tên và giá trị để được khởi tạo dưới dạng tên và giá trị của phần tử mảng thuộc tính lớp $data

Thêm vào đó, isset() và unset() với thuộc tính quá tải sẽ kích hoạt các phương thức ma thuật __isset() và __unset()

Quá tải phương thức

Kiểu nạp chồng này dùng để tạo các phương thức động không được khai báo trong phạm vi lớp. Quá tải phương thức PHP cũng kích hoạt các phương thức kỳ diệu dành riêng cho mục đích thích hợp

Không giống như nạp chồng thuộc tính, nạp chồng phương thức PHP cho phép gọi hàm trong cả đối tượng và ngữ cảnh tĩnh. Các chức năng ma thuật liên quan là,

  • __call() — được kích hoạt khi gọi các phương thức quá tải trong ngữ cảnh đối tượng
  • __callStatic() — được kích hoạt khi gọi các phương thức quá tải trong ngữ cảnh tĩnh

Chúng ta hãy gọi hàm lớp không xác định với cả tham chiếu đối tượng và với chính tên lớp. Để truy cập chức năng từ lớp bên ngoài với tên của chính lớp đó, nó phải là thành viên tĩnh của lớp đó. Vì vậy, việc truy cập một số phương thức quá tải với tên của lớp sẽ kích hoạt thành viên ma thuật tĩnh được xác định trong lớp. Ví dụ

Một ví dụ về nạp chồng phương thức là gì?

Trong Java, hai hoặc nhiều phương thức có thể có cùng tên nếu chúng khác nhau về tham số (số lượng tham số khác nhau, loại tham số khác nhau hoặc cả hai). Các phương thức này được gọi là phương thức quá tải và tính năng này được gọi là nạp chồng phương thức. Ví dụ. void func() {. }

Chúng ta có thể sử dụng nạp chồng phương thức trong PHP không?

PHP không hỗ trợ nạp chồng phương thức . Trong trường hợp bạn chưa bao giờ nghe nói về nạp chồng phương thức, điều đó có nghĩa là ngôn ngữ có thể chọn phương thức dựa trên tham số bạn đang sử dụng để gọi phương thức đó. Điều này có thể thực hiện được ở nhiều ngôn ngữ lập trình khác như Java, C++.

Phương pháp nào được sử dụng để thực hiện nạp chồng trong PHP?

vì vậy hành vi này tôi. quyết định gọi một hàm tại thời điểm viết mã được gọi là i đa hình tĩnh. nạp chồng phương thức e. Hãy thảo luận về cách đạt được quá tải phương thức liên quan đến PHP5. Trong trường hợp của PHP, chúng ta phải sử dụng các phương thức kỳ diệu của PHP __call() để đạt được nạp chồng phương thức

Hai 2 loại nạp chồng phương thức là gì?

Trong java, chúng ta nạp chồng phương thức theo hai cách. .
Bằng cách thay đổi số lượng tham số
Bằng cách thay đổi kiểu dữ liệu