Bagaimana untuk Menyelesaikan Ralat \'Kelas Tidak Ditemui\' dalam PHP Apabila Menggunakan Ruang Nama dan Muat Auto?

Linda Hamilton
Lepaskan: 2024-10-19 13:52:29
asal
431 orang telah melayarinya

How to Resolve

Menyelesaikan Ralat Kelas Tidak Ditemui dengan Ruang Nama PHP dan Muat Auto

Apabila cuba menggunakan ruang nama dengan autoload dalam PHP, pengguna mungkin menghadapi ralat menyatakan "Kelas 'Kelas1' tidak ditemui" disebabkan isu pengambilan semula kelas di luar skop global.

Untuk memuatkan kelas secara berkesan di luar skop global, pemuat automatik adalah penting. Dalam senario ini, katakan anda mempunyai definisi ruang nama yang serupa dengan:

<code class="php">namespace Person\Barnes\David;

class Class1
{
    public function __construct()
    {
        echo __CLASS__;
    }
}</code>
Salin selepas log masuk

Dan fungsi autoload ditakrifkan sebagai:

<code class="php">function __autoload($class)
{
    require $class . '.php';
}</code>
Salin selepas log masuk

Mesej ralat membayangkan bahawa pemuat auto tidak dapat mengesan Kelas 'Kelas1'. Untuk menyelesaikan masalah ini, fungsi autoloader perlu diubah suai untuk mempertimbangkan ruang nama apabila cuba memuatkan fail kelas. Pendekatan pemuat auto yang diperbetulkan akan mengambil bentuk:

<code class="php">function __autoload($class)
{
    // Adapt this depending on your directory structure
    $parts = explode('\', $class);
    require end($parts) . '.php';
}</code>
Salin selepas log masuk

Dengan pemuat automatik yang dikemas kini ini, PHP akan memuatkan kelas dengan betul dan mengalih keluar ralat "Kelas 'Kelas1' tidak ditemui", membolehkan anda menggunakan ruang nama dan automuat dengan lancar.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \'Kelas Tidak Ditemui\' dalam PHP Apabila Menggunakan Ruang Nama dan Muat Auto?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!