Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Mengakses Pembolehubah Global Dalam Kelas PHP?

Bagaimanakah Saya Boleh Mengakses Pembolehubah Global Dalam Kelas PHP?

Barbara Streisand
Lepaskan: 2024-12-17 01:13:24
asal
542 orang telah melayarinya

How Can I Access Global Variables Within a PHP Class?

Mengakses Pembolehubah Global dari Dalam Kelas

Dalam kod anda, anda mengalami ralat apabila cuba mengakses pembolehubah yang ditakrifkan di luar kelas dalam kaedah kelas. Isu ini timbul kerana mengakses pembolehubah global secara langsung dari dalam kelas biasanya tidak disyorkan dalam PHP. Walau bagaimanapun, terdapat beberapa kaedah untuk mencapai matlamat ini:

Suntikan Kebergantungan

Pendekatan pilihan adalah dengan melaksanakan suntikan kebergantungan. Ini melibatkan menghantar objek pangkalan data sebagai hujah kepada pembina kelas, membenarkan kelas mengakses dan menggunakan pembolehubah tanpa memerlukan skop global.

class Paginator
{
    private $db;

    public function __construct(DB_MySQL $db)
    {
        $this->db = $db;
    }

    // ...
}

// Usage:
$db = new DB_MySQL("localhost", "root", "", "test");
$pagination = new Paginator($db);
Salin selepas log masuk

Menyuntik Instance ke dalam Kaedah

Sebagai alternatif , anda boleh menyuntik contoh pangkalan data terus ke dalam kaedah yang memerlukannya.

class Paginator
{
    public function get_records($q, DB_MySQL $db)
    {
        // ...
    }
}

// Usage:
$pagination = new Paginator();
$pagination->get_records("SELECT * FROM `table`", $db);
Salin selepas log masuk

Menggunakan Global Skop

Walaupun pada umumnya tidak digalakkan, anda boleh menggunakan kata kunci global untuk mengakses pembolehubah global dalam kaedah kelas. Walau bagaimanapun, teknik ini mungkin mengacaukan kod dan menjadikannya kurang boleh diselenggara.

class Paginator
{
    public function get_records($q)
    {
        global $db;

        // ...
    }
}

// Usage:
$db = new DB_MySQL("localhost", "root", "", "test");
$pagination = new Paginator();
Salin selepas log masuk

Ingat bahawa menggunakan pembolehubah global dari dalam kelas datang dengan potensi kelemahan, termasuk isu pergantungan, pengurangan kebolehujian dan isu kejelasan kod. Oleh itu, adalah disyorkan untuk mempertimbangkan suntikan pergantungan atau menyuntik contoh ke dalam kaedah apabila mengakses pembolehubah dari luar kelas dalam PHP.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Pembolehubah Global Dalam Kelas PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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