Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk memanggil objek dalam php? Analisis ringkas kaedah

Bagaimana untuk memanggil objek dalam php? Analisis ringkas kaedah

PHPz
PHPzasal
2023-04-25 16:13:02828semak imbas

Dalam PHP, objek ialah jenis data khas yang boleh digunakan untuk merangkum data dan tingkah laku. Tingkah laku dalam objek dilaksanakan melalui kaedah, dan kaedah panggilan pada objek dicapai dengan merujuk nama objek dan kaedah. Dalam artikel ini, kami akan memperkenalkan secara terperinci beberapa cara untuk memanggil kaedah objek dalam PHP.

  1. Panggil kaedah objek secara terus

Dalam PHP, kita boleh memanggil kaedahnya melalui tika objek. Kaedah ini juga dipanggil memanggil kaedah objek secara langsung. Berikut ialah contoh:

class Calculator {
    public function add($num1, $num2) {
        return $num1 + $num2;
    }
}

$calculator = new Calculator;
$result = $calculator->add(2, 3); // 直接调用add()方法
echo $result; // 输出5

Dalam contoh di atas, kita mula-mula mentakrifkan kelas Calculator, yang mempunyai kaedah add() untuk mengira jumlah dua nombor. Kemudian kami mencipta contoh objek Calculator, dan memanggil kaedah add()nya melalui contoh objek ini untuk mengira jumlah 2 dan 3, dan akhirnya mengeluarkan hasil pengiraan 5.

  1. Panggilan kaedah dinamik

Selain memanggil kaedah objek secara terus, PHP juga menyediakan kaedah panggilan khas yang dipanggil panggilan kaedah dinamik. Kaedah ini boleh memanggil kaedah objek secara dinamik dan juga lulus parameter secara dinamik. Berikut ialah contoh:

class Calculator {
    public function add($num1, $num2) {
        return $num1 + $num2;
    }
}

$calculator = new Calculator;

// 动态调用add()方法
$result = call_user_func_array([$calculator, 'add'], [2, 3]);

echo $result; // 输出5

Dalam contoh di atas, kami menggunakan fungsi call_user_func_array() untuk memanggil kaedah $calculator secara dinamik bagi contoh objek add() dan lulus dua Parameter 2 dan 3. Akhirnya, hasil pengiraan 5 adalah output. Perlu diingatkan bahawa apabila memanggil kaedah dengan cara ini, anda perlu menghantar contoh objek dan nama kaedah sebagai elemen pertama dalam tatasusunan, dan lulus tatasusunan parameter kaedah dalam elemen kedua.

  1. Panggilan kaedah ajaib

Dalam PHP, terdapat kaedah khas yang dipanggil kaedah ajaib. Awalan dan akhiran nama kaedah ini adalah garis bawah berganda, dan PHP secara automatik akan memanggil kaedah ini tanpa kita perlu memanggilnya secara eksplisit. Antaranya, kaedah __call() boleh digunakan untuk mencipta kaedah secara dinamik yang tidak wujud apabila ia dipanggil. Berikut ialah contoh:

class Calculator {
    public function __call($name, $arguments) {
        if ($name === 'add') {
            return $arguments[0] + $arguments[1];
        }
    }
}

$calculator = new Calculator;

// 调用不存在的方法add()
$result = $calculator->add(2, 3);

echo $result; // 输出5

Dalam contoh di atas, kami mentakrifkan kelas Calculator dan mentakrifkan kaedah __call() dalam kelas ini. Apabila kita memanggil kaedah $calculator yang tidak wujud dalam contoh objek add(), PHP secara automatik akan memanggil kaedah __call() dan memberikannya nama kaedah 'add' dan tatasusunan parameter [2, 3] sebagai parameter. Kod dalam kaedah __call() akan menentukan sama ada nama kaedah ialah add Jika ya, ia akan mengira jumlah dua parameter secara dinamik dan mengembalikannya. Akhirnya, hasil pengiraan 5 adalah output.

Ringkasan:

Di atas ialah beberapa cara untuk memanggil kaedah objek dalam PHP. Tidak kira kaedah yang anda pilih, anda boleh memanggil kaedah objek dengan mudah untuk mencapai tujuan merangkum data dan tingkah laku. Apabila menggunakan kaedah dalam objek, perhatian khusus perlu diberikan kepada ketepatan nama kaedah dan cara parameter kaedah diluluskan. Hanya dengan cara ini kaedah ini boleh benar-benar berfungsi sebagaimana mestinya.

Atas ialah kandungan terperinci Bagaimana untuk memanggil objek dalam php? Analisis ringkas kaedah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn