Bagaimana menerapkan metode overloading di PHP?

PHP singkatan dari Hypertext Preprocessor, itu adalah bahasa scripting tujuan umum populer yang sebagian besar digunakan dalam pengembangan web. Ini cepat, fleksibel, dan pragmatis dan versi terbaru PHP berorientasi objek yang berarti Anda dapat menulis kelas, menggunakan pewarisan, Polimorfisme, Abstraksi Data, Enkapsulasi, Konstruktor, Destructor, dan juga Overloading (Metode dan Fungsi).

kelebihan beban: Overloading adalah konsep Berorientasi Objek di mana dua atau lebih metode memiliki nama metode yang sama dengan argumen atau parameter yang berbeda (wajib) dan tipe pengembalian (tidak perlu). Ini dapat dilakukan sebagai Overloading Konstruktor, Overloading Operator, dan Metode Overloading.
Pada artikel ini, kami akan menerapkan metode overloading di PHP.

Metode overloading di PHP:

Contoh: Diberikan kode di bawah ini akan menunjukkan beberapa kesalahan.

PHP

<?php

 

class GFG {

    function multiply($var1){

        return $var1;

    }

     

    function multiply($var1,$var2){

        return $var1 * $var1 ;

    }

}

 

$ob = new GFG();

$ob->multiply(3,6);

?>

Keluaran: Kesalahan ditampilkan karena kami mendeklarasikan ulang fungsi berkembang biak() di kelas GFG.

PHP Fatal error:  Cannot redeclare GFG::multiply()

Catatan: Dalam bahasa pemrograman lain seperti C++, ini akan berfungsi untuk metode yang kelebihan beban. Untuk mencapai metode overloading di PHP, kita harus menggunakan metode ajaib PHP __panggilan() untuk mencapai metode overloading.

__panggilan(): Di PHP, Jika sebuah kelas dieksekusi __panggilan(), dan jika objek dari kelas itu dipanggil dengan metode yang tidak ada, __panggilan() disebut sebagai ganti metode itu. Kode berikut menunjukkan hal ini.

Contoh:

PHP

<?php

 

class GFG {  

    public function __call($member, $arguments) {

        $numberOfArguments = count($arguments);

 

        if (method_exists($this, $function = $member.$numberOfArguments)) {

            call_user_func_array(array($this, $function), $arguments);

        }

    }

   

    private function multiply($argument1) {

        echo $argument1;

    }

 

    private function multiply2($argument1, $argument2) {

        echo $argument1 * $argument2;

    }

}

 

$class = new GFG;

$class->multiply(2); 

$class->multiply(5, 7);

 

?>

Keluaran:

35