Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar kelas menjadi objek dalam php

Bagaimana untuk menukar kelas menjadi objek dalam php

PHPz
PHPzasal
2023-03-31 09:10:22565semak imbas

Dengan perkembangan berterusan pengaturcaraan komputer, semakin banyak bahasa pengaturcaraan, antaranya bahasa PHP adalah salah satu bahasa yang lebih popular. Dalam bahasa PHP, konsep kelas dan objek adalah sangat penting Kelas ialah koleksi objek dengan sifat dan kaedah yang sama, dan objek adalah contoh kelas. Dalam bahasa PHP, operasi berkaitan dilakukan dengan menukar kelas kepada objek.

Dalam bahasa PHP, definisi kelas dicapai melalui kata kunci kelas Format pengisytiharan kelas ialah: nama kelas kelas {attributes and method}, dengan atribut dan kaedah adalah ahli kelas, dan definisi atribut Kaedah mentakrifkan keadaan kelas, dan kaedah mentakrifkan tingkah laku yang disediakan oleh kelas.

Dalam bahasa PHP, kelas yang ditakrifkan sebenarnya adalah templat Apabila menggunakannya, anda perlu membuat instantiat untuk menghasilkan objek mencipta objek, iaitu baru, klon, refleksi.

Kaedah pertama: kata kunci baharu, kaedah ini ialah cara yang paling biasa digunakan untuk mencipta tika objek Menggunakan kata kunci baharu dalam bahasa PHP untuk memulakan objek bermakna mencipta objek contoh jenis ini.

Sebagai contoh, kami mentakrifkan kelas Pelajar:

class Student{
    public $name;
    public $age;
    public function sayHello(){
        echo "Hello, I am " . $this->name . ".";
    }
}

Gunakan kata kunci baharu untuk mencipta contoh objek Pelajar:

$stu = new Student();
$stu->name = "Tom";
$stu->age = 18;
$stu->sayHello();

Dalam kod di atas , kita lulus Kata kunci baharu mencipta objek contoh kelas Pelajar, kemudian memulakan sifat objek contoh, dan akhirnya memanggil kaedah sayHello untuk mengeluarkan hasilnya.

Kaedah kedua: kata kunci klon, kaedah ini ialah cara untuk mencipta contoh objek yang ditambah selepas PHP5 menggunakan kata kunci klon, anda boleh membuat salinan objek asal dan mengembalikannya.

$stu1 = new Student();
$stu1->name = "Mike";
$stu1->age = 22;

$stu2 = clone $stu1;
$stu2->name = "Jordan";

echo $stu1->name; //输出Mike
echo $stu2->name; //输出Jordan

Dalam kod di atas, kami mencipta salinan $stu1 melalui kata kunci klon, menukar nilai atribut $nama salinan, dan akhirnya mengeluarkan hasilnya kepada Mike dan Jordan. Perlu diingatkan bahawa nilai atribut $nama $stu1 tidak berubah.

Cara ketiga: mekanisme refleksi, yang melaluinya anda boleh mengakses dan mengendalikan sifat dan kaedah objek, seperti mendapatkan nama kelas, mendapatkan sifat, kaedah panggilan, dsb.

$stu = new Student();
$stu->name = "Jerry";
$stu->age = 20;

//获取类名
$class_name = get_class($stu);
echo $class_name . "\n"; //输出Student

//获取对象属性
$reflector = new ReflectionClass("Student");
$property = $reflector->getProperty("name");
echo $property->getValue($stu); //输出Jerry

//反射机制调用方法
$method = $reflector->getMethod("sayHello");
$method->invokeArgs($stu, array()); //输出Hello, I am Jerry.

Dalam kod di atas, kami memperoleh objek $stu melalui mekanisme pantulan, dengan itu memperoleh nama kelas, atribut objek dan kaedah panggilan dalam objek.

Ringkasan: Menukar kelas kepada objek ialah operasi yang sangat biasa dalam bahasa PHP Ia biasanya boleh dilaksanakan melalui mekanisme baru, klon, refleksi, dsb. Walau bagaimanapun, kaedah yang berbeza sesuai untuk senario yang berbeza. Dalam aplikasi praktikal, adalah perlu untuk memilih kaedah yang sesuai untuk mencipta dan mengendalikan objek mengikut situasi tertentu, supaya dapat merealisasikan fungsi program yang berkaitan dengan mudah dan cepat.

Atas ialah kandungan terperinci Bagaimana untuk menukar kelas menjadi objek dalam php. 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