关于PHP中类的加载
面向对象是一个重要的思想,类也是面向对象中的重要概念,而类的加载却是使用类的关键。
类的访问方式有两种:
通过实例化对象访问
类成员访问
而访问的前提便是内存中有类的存在,所以需要提前将类加载至内存中。
1.手动加载
//类文件 Salary.php <?php class Salary{ public function Student(){ echo "Salary下面的Student方法"; } } ?>
应用文件:useSalary.php <?php //$s = new Salary();会报错,因为useSalaty.php中间未定义Salary类 include_once 'Salary.php'; //也可以使用require,通常使用_once,因为类不允许重名 $s = new Salary(); echo $s->Student(); ?>
<?php //加载类文件是一种比较消耗资源的方式,可以事先使用class_exists()函数来判定类是否存在,存在就不用加载,不存在才加载 if(!class_exists('Salary')){ //不存在:加载 include_once 'Salary.php'; } //使用 $s = new Salary(); ?>
2.自动加载
在PHP7之前使用的自动加载机制:利用系统提供的__autoload()函数,然后当系统需要使用类,而内存中又不存在的时候,系统就会自动调用__autoload()函数来加载类文件。
<?php function __autoload($classname){ //参数为类名:即当前需要访问的类的名字 //需要人为定义去哪加载,怎么加载 include_once $classname . '.php'; //假定为当前目录下,类文件名字为:类名.php } //使用类:内存目前并没有 $s = new Salary(); //系统发现内存没有Salary,所以调用__autoload()去加载 ?>
//若在不同路径下 <?php //定义自动加载 function __autoload($classname){ $abc_file = 'abc/' . $classname . '.php'; //如abc/Salary.php if(file_exists($c_file)){ //利用file_exists()判断文件是否存在 include_once $abc_file; } } ?>
在PHP7后,不建议使用__autoload()函数,而是使用一种注册机制,将用户自定义的函数,放到系统内部,使用spl_autoload_register(定义好的函数)。
<?php function myself_autoload($classname){ //与__autoload()类似 $abc_file = 'abc/' . $classname . '.php'; //如abc/Salary.php if(file_exists($c_file)){ include_once $c_file; } } //此时,上述函数永远不会自动运行,除非将函数注册到系统内部 spl_autoload_register('myself_autoload'); ?>
//可以定义多个方法 <?php function wayone_autoload($classname){ function waytwo_autoload($classname){ } //此时,上述函数永远不会自动运行,除非将函数注册到系统内部 spl_autoload_register('wayone_autoload'); spl_autoload_register('waytwo_autoload'); ?>
推荐:php教程
Atas ialah kandungan terperinci 关于PHP中类的加载. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Anotasi @JsonIdentityInfo digunakan apabila objek mempunyai hubungan ibu bapa-anak dalam perpustakaan Jackson. Anotasi @JsonIdentityInfo digunakan untuk menunjukkan identiti objek semasa bersiri dan penyahsirilan. ObjectIdGenerators.PropertyGenerator ialah kelas ruang letak abstrak yang digunakan untuk mewakili situasi di mana pengecam objek yang akan digunakan berasal daripada sifat POJO. Syntax@Target(value={ANNOTATION_TYPE,TYPE,FIELD,METHOD,PARAMETER})@Retention(value=RUNTIME)public

Bahasa Go menyokong pengaturcaraan berorientasikan objek melalui definisi jenis dan perkaitan kaedah. Ia tidak menyokong warisan tradisional, tetapi dilaksanakan melalui gubahan. Antara muka menyediakan ketekalan antara jenis dan membenarkan kaedah abstrak ditakrifkan. Kes praktikal menunjukkan cara menggunakan OOP untuk mengurus maklumat pelanggan, termasuk mencipta, mendapatkan, mengemas kini dan memadam operasi pelanggan.

Bahasa Go menyokong pengaturcaraan berorientasikan objek, mentakrifkan objek melalui struct, mentakrifkan kaedah menggunakan penerima penunjuk, dan melaksanakan polimorfisme melalui antara muka. Ciri berorientasikan objek menyediakan penggunaan semula kod, kebolehselenggaraan dan enkapsulasi dalam bahasa Go, tetapi terdapat juga pengehadan seperti kekurangan konsep tradisional kelas dan pewarisan dan hantaran tandatangan kaedah.

Teknologi enkapsulasi dan enkapsulasi aplikasi dalam PHP ialah konsep penting dalam pengaturcaraan berorientasikan objek Ia merujuk kepada merangkum data dan operasi pada data bersama-sama untuk menyediakan antara muka akses bersatu kepada program luaran. Dalam PHP, enkapsulasi boleh dicapai melalui pengubahsuai kawalan akses dan definisi kelas. Artikel ini akan memperkenalkan teknologi enkapsulasi dalam PHP dan senario aplikasinya, dan menyediakan beberapa contoh kod khusus. 1. Pengubah suai kawalan capaian berkapsul Dalam PHP, pengkapsulan dicapai terutamanya melalui pengubahsuai kawalan capaian. PHP menyediakan tiga pengubah kawalan akses,

Amalan terbaik OOP dalam PHP termasuk konvensyen penamaan, antara muka dan kelas abstrak, pewarisan dan polimorfisme, dan suntikan kebergantungan. Kes praktikal termasuk: menggunakan mod gudang untuk mengurus data dan menggunakan mod strategi untuk melaksanakan pengisihan.

Tiada konsep kelas dalam erti kata tradisional dalam Golang (bahasa Go), tetapi ia menyediakan jenis data yang dipanggil struktur, yang melaluinya ciri berorientasikan objek yang serupa dengan kelas boleh dicapai. Dalam artikel ini, kami akan menerangkan cara menggunakan struktur untuk melaksanakan ciri berorientasikan objek dan menyediakan contoh kod konkrit. Definisi dan penggunaan struktur Pertama, mari kita lihat definisi dan penggunaan struktur. Di Golang, struktur boleh ditakrifkan melalui kata kunci jenis dan kemudian digunakan di mana perlu. Struktur boleh mengandungi atribut

Apakah pengaturcaraan berorientasikan objek? Pengaturcaraan berorientasikan objek (OOP) ialah paradigma pengaturcaraan yang mengabstrak entiti dunia sebenar ke dalam kelas dan menggunakan objek untuk mewakili entiti ini. Kelas mentakrifkan sifat dan tingkah laku objek, dan objek memberi contoh kelas. Kelebihan utama OOP ialah ia menjadikan kod lebih mudah difahami, diselenggara dan digunakan semula. Konsep Asas OOP Konsep utama OOP termasuk kelas, objek, sifat dan kaedah. Kelas ialah pelan tindakan sesuatu objek, yang mentakrifkan sifat dan kelakuannya. Objek ialah contoh kelas dan mempunyai semua sifat dan tingkah laku kelas. Sifat ialah ciri-ciri objek yang boleh menyimpan data. Kaedah ialah fungsi objek yang boleh beroperasi pada data objek. Kelebihan OOP Kelebihan utama OOP termasuk: Kebolehgunaan semula: OOP boleh menjadikan kod lebih banyak

Dengan menguasai status objek penjejakan, menetapkan titik putus, pengecualian penjejakan dan menggunakan sambungan xdebug, anda boleh menyahpepijat kod pengaturcaraan berorientasikan objek PHP dengan berkesan. 1. Jejak status objek: Gunakan var_dump() dan print_r() untuk melihat atribut objek dan nilai kaedah. 2. Tetapkan titik putus: Tetapkan titik putus dalam persekitaran pembangunan, dan penyahpepijat akan berhenti seketika apabila pelaksanaan mencapai titik putus, menjadikannya mudah untuk menyemak status objek. 3. Pengecualian jejak: Gunakan blok try-catch dan getTraceAsString() untuk mendapatkan jejak tindanan dan mesej apabila pengecualian berlaku. 4. Gunakan penyahpepijat: Fungsi xdebug_var_dump() boleh memeriksa kandungan pembolehubah semasa pelaksanaan kod.
