Hướng dẫn what is overloading in php? - quá tải trong php là gì?

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    Đọc Function overloading is the ability to create multiple functions of the same name with different implementations. Function overloading in PHP? Function overloading in PHP is used to dynamically create properties and methods. These dynamic entities are processed by magic methods which can be used in a class for various action types. Function overloading contains same function name and that function performs different task according to number of arguments. For example, find the area of certain shapes where radius are given then it should return area of circle if height and width are given then it should give area of rectangle and others. Like other OOP languages function overloading can not be done by native approach. In PHP function overloading is done with the help of magic function __call(). This function takes function name and arguments. 

    Bàn luận

    • Quá tải chức năng là gì? Quá tải chức năng là khả năng tạo nhiều chức năng cùng tên với các triển khai khác nhau. Chức năng quá tải trong PHP? Quá tải chức năng trong PHP được sử dụng để tạo động các thuộc tính và phương thức. Các thực thể động này được xử lý bằng các phương pháp ma thuật có thể được sử dụng trong một lớp cho các loại hành động khác nhau. Quá tải chức năng chứa cùng tên chức năng và hàm đó thực hiện nhiệm vụ khác nhau theo số lượng đối số. Ví dụ: tìm diện tích của các hình dạng nhất định trong đó bán kính được đưa ra thì nó sẽ quay lại diện tích của vòng tròn nếu chiều cao và chiều rộng được đưa ra thì nó sẽ cho diện tích hình chữ nhật và các khu vực khác. Giống như các ngôn ngữ OOP khác không thể thực hiện được bằng cách tiếp cận bản địa. Trong quá tải chức năng PHP được thực hiện với sự trợ giúp của hàm ma thuật __call (). Hàm này lấy tên chức năng và đối số. & NBSP;
    • Tài sản và quy tắc quá tải trong PHP:
    • Tất cả các phương pháp quá tải phải được định nghĩa là công khai.
    • Sau khi tạo đối tượng cho một lớp, chúng ta có thể truy cập một tập hợp các thực thể là thuộc tính hoặc phương thức không được xác định 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 được gọi là quá tải.

    Để làm việc với các thuộc tính hoặc chức năng quá tải này, các phương thức ma thuật PHP được sử dụng. There are two types of overloading in PHP.

    • Hầu hết các phương thức ma thuật sẽ được kích hoạt trong bối cảnh đối tượng ngoại trừ phương thức __callstatic () được sử dụng trong bối cảnh tĩnh.
    • Các loại quá tải trong PHP: Có hai loại quá tải trong PHP.

    Quá tải tài sản PHP property overloading is used to create dynamic properties in the object context. For creating these properties no separate line of code is needed. A property associated with a class instance, and if it is not declared within the scope of the class, it is considered as overloaded property. Following operations are performed with overloaded properties in PHP.

    • Phương pháp quá tải
    • Quá tải thuộc tính: Quá tải thuộc tính PHP được sử dụng để tạo các thuộc tính động trong bối cảnh đối tượng. Để tạo các thuộc tính này, không cần dòng mã riêng biệt. Một thuộc tính được liên kết với một thể hiện lớp và nếu nó không được khai báo trong phạm vi của lớp, nó được coi là thuộc tính quá tải. Các hoạt động sau được thực hiện với các thuộc tính quá tải trong PHP.
    • Cài đặ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. triggered while initializing overloaded properties.
    • Trước khi thực hiện các hoạt động, chúng ta nên xác định các phương pháp ma thuật phù hợp. đó là, triggered while using overloaded properties with PHP print statements.
    • __set (): Được kích hoạt trong khi khởi tạo các thuộc tính quá tải. This magic method is invoked when we check overloaded properties with isset() function
    • __get (): Được kích hoạt trong khi sử dụng các thuộc tính quá tải với các câu lệnh in PHP. Similarly, this function will be invoked on using PHP unset() for overloaded properties.

    Example:  

    __isset (): Phương thức ma thuật này được gọi khi chúng tôi kiểm tra các thuộc tính quá tải với hàm isset ()

    __unset (): Tương tự, hàm này sẽ được gọi khi sử dụng php unset () cho các thuộc tính quá tải.

    PHP

    class GFG {

        private $data = array____10

        

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    2
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    3
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    4

        private

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    7
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    8

    7class2class33class55class0

        class9

        

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    2 1 23456

    78 9class0

        

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    2 1 GFG {336

    78 GFG {8class0

    7class9

    7    1     2    3    234class2    8

        9private0 class2class33private4

        class9

    7private8 private9

    7private0 $data2

        

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    2 1 $data836

        class9

    78 = 3class0

    7private0 = 7class2class33array1

    7

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    05class2class33array1

        class9

        

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    2 1 array736

    78

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    022

        class9

    class9

        

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    2 1
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    15

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    23
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    28

    7private0 class2

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    19

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    34
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    23
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    36

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    05
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    23
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    39

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    34
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    23
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    36

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    23 =
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    25
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    26

    8

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    23
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    31
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    32class0

    8

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    23
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    45
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    46class0

    8

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    49class0

    8

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    23
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    53
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    46class0

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    64

    Output:

    Setting 'a' to '1'
    Getting 'a: 1
    Is 'a' set?
    bool(true)
    Unsetting 'a'
    Is 'a' set?
    bool(false)
    1
    
    Private property are visible inside the class 2
    
    Private property are not visible outside of class
    Getting 'hidden:

    8

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    57class0 It is a type of overloading for creating dynamic methods that are not declared within the class scope. PHP method overloading also triggers magic methods dedicated to the appropriate purpose. Unlike property overloading, PHP method overloading allows function call on both object and static context. The related magic functions are,

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

    Example:  

    PHP

    class GFG {

        

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    2 1
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    7134
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    746

    78

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    78

        9

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    80
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    814
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    74
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    84
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    32class0

        class9

        

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    2
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    91 1
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    9334
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    74__

    78 00

        9

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    80
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    814
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    74
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    84
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    32class0

        class9

    class9

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    23 =
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    25
    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    26

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    23171819

    202119

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context
    64

    Output:

    Calling object method 'runTest' in object context
    Calling static method 'runTest' in static context


    Làm gì quá tải trong PHP với ví dụ?

    Quá tải chức năng chứa cùng tên chức năng và hàm đó thực hiện nhiệm vụ khác nhau theo số lượng đối số. Ví dụ: tìm diện tích của các hình dạng nhất định trong đó bán kính được đưa ra thì nó sẽ quay lại diện tích của vòng tròn nếu chiều cao và chiều rộng được đưa ra thì nó sẽ cho diện tích hình chữ nhật và các khu vực khác.contains same function name and that function performs different task according to number of arguments. For example, find the area of certain shapes where radius are given then it should return area of circle if height and width are given then it should give area of rectangle and others.

    Quá tải và ghi đè trong PHP là gì?

    Quá tải chức năng và ghi đè là tính năng OOPS trong PHP.Trong quá tải chức năng, nhiều hơn một hàm có thể có cùng một chữ ký phương thức nhưng số lượng đối số khác nhau.Nhưng trong trường hợp ghi đè chức năng, nhiều hơn một hàm sẽ có cùng chữ ký phương thức và số lượng đối số.the OOPs feature in PHP. In function overloading, more than one function can have same method signature but different number of arguments. But in case of function overriding, more than one functions will have same method signature and number of arguments.

    Quá tải và ví dụ là gì?

    Quá tải phương thức cho phép các phương thức khác nhau có cùng tên, nhưng các chữ ký khác nhau trong đó chữ ký có thể khác nhau theo số lượng tham số đầu vào hoặc loại tham số đầu vào hoặc hỗn hợp của cả hai.Quá tải phương pháp còn được gọi là đa hình thời gian biên dịch, đa hình tĩnh hoặc liên kết sớm trong Java.allows different methods to have the same name, but different signatures where the signature can differ by the number of input parameters or type of input parameters, or a mixture of both. Method overloading is also known as Compile-time Polymorphism, Static Polymorphism, or Early binding in Java.

    Có quá tải trong PHP không?

    PHP không hỗ trợ quá tải phương pháp.Trong trường hợp bạn chưa bao giờ nghe nói về quá tải phương thức, điều đó có nghĩa là ngôn ngữ có thể chọn một phương thức dựa trên các tham số bạn đang sử dụng để gọi nó.Điều này là có thể trong nhiều ngôn ngữ lập trình khác như Java, C ++.. In case you've never heard of method overloading, it means that the language can pick a method based on which parameters you're using to call it. This is possible in many other programming languages like Java, C++.