Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan kata kunci penggunaan dalam ruang nama php

Bagaimana untuk menggunakan kata kunci penggunaan dalam ruang nama php

青灯夜游
青灯夜游asal
2021-09-30 17:05:173710semak imbas

Dalam PHP, kata kunci penggunaan boleh digunakan untuk mengimport ruang nama, sintaks "gunakan ruang nama;"; ia juga boleh digunakan untuk mengimport fungsi dan pemalar, dan menetapkan alias untuknya, sintaks "gunakan ruang nama sebagai alias;" .

Bagaimana untuk menggunakan kata kunci penggunaan dalam ruang nama php

Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3

Apakah itu ruang nama?

Dalam erti kata yang luas, ruang nama ialah cara merangkum sesuatu, dan konsep abstrak ini boleh dilihat di banyak tempat. Sebagai contoh, direktori digunakan dalam sistem pengendalian untuk mengumpulkan fail berkaitan, dan ia bertindak sebagai ruang nama untuk fail dalam direktori.

Takrif ruang nama

Ruang nama dalam PHP telah ditambahkan dalam PHP5.3, jika anda tahu C , maka ruang nama bukanlah perkara baharu. Walau bagaimanapun, ruang nama masih sangat penting dalam PHP.

Ruang nama PHP boleh menyelesaikan dua jenis masalah berikut:

  • Kod yang ditulis oleh pengguna dan kelas/fungsi/pemalar dalaman PHP atau kelas/fungsi/pemalar pihak ketiga menamakan konflik antara

  • Buat nama alias (atau pendek) untuk nama pengecam yang sangat panjang (biasanya ditakrifkan untuk mengurangkan jenis masalah pertama) untuk meningkatkan kebolehbacaan Kod sumber.

Tentukan ruang nama (menggunakan ruang nama kata kunci)

Walaupun sebarang kod PHP undang-undang boleh disertakan dalam ruang nama, hanya kelas (termasuk abstrak kelas dan sifat), antara muka, fungsi dan pemalar dipengaruhi oleh ruang nama.

Takrif ruang nama perlu diisytiharkan melalui ruang nama kata kunci Format sintaks adalah seperti berikut:

namespace 命名空间名;

[Contoh] Mari kita tunjukkan cara mentakrifkan ruang nama:

<?php
    namespace MyProject;    // 定义名为 MyProject 的命名空间。
    const CONNECT_OK = 1;
    class Myclass {
        /* ... */
    }
    function Myfunc() {
        /* ... */
    }
?>

Sebelum mengisytiharkan ruang nama, kecuali pernyataan isytihar yang digunakan untuk mentakrifkan kaedah pengekodan fail sumber, semua kod bukan PHP (termasuk aksara ruang putih) tidak boleh muncul sebelum pengisytiharan ruang nama.

Gunakan ruang nama: alias/import

PHP membenarkan penggunaan ruang nama luaran melalui rujukan alias atau import, yang dinamakan ciri penting bagi angkasa lepas. Ini agak serupa dengan cara anda boleh membuat pautan simbolik ke fail atau direktori lain dalam sistem fail seperti Unix.

Gunakan kata kunci penggunaan untuk melaksanakan import ruang nama, anda boleh mengimport fungsi dan pemalar serta menetapkan alias untuknya. Format sintaks adalah seperti berikut:

use namespace;

Dalam PHP, alias dilaksanakan melalui penggunaan operator dan format sintaks adalah seperti berikut:

use 命名空间 as 别名;

[Contoh] Gunakan. gunakan operator untuk mengimport dan menggunakan alias.

<?php
    namespace foo;
    use My\Full\Classname as Another;
    // 下面的例子与 use My\Full\NSname as NSname 相同
    use My\Full\NSname;
    // 导入一个全局类
    use ArrayObject;
    // 导入一个函数
    use function My\Full\functionName;
    // 导入一个函数并定义别名
    use function My\Full\functionName as func;
    // 导入一个常量
    use const My\Full\CONSTANT;
    $obj = new namespace\Another;   // 实例化 foo\Another 对象
    $obj = new Another;             // 实例化 My\Full\Classname 对象
    NSname\subns\func();            // 调用 My\Full\NSname\subns\func 函数
    $a = new ArrayObject(array(1)); // 实例化 ArrayObject 对象
                                    // 如果不使用 "use \ArrayObject" ,则实例化一个 foo\ArrayObject 对象
    func();                         // 调用 My\Full\functionName 函数
    echo CONSTANT;                  // 打印 My\Full\CONSTANT 常量
?>

Nota: Untuk nama dalam ruang nama (nama yang layak sepenuhnya yang termasuk pemisah ruang nama, seperti FooBar dan nama global relatif yang tidak termasuk pemisah ruang nama, seperti FooBar), garis miring belakang terkemuka adalah tidak diperlukan dan tidak disyorkan kerana nama yang diimport mestilah berkelayakan sepenuhnya dan tidak akan diselesaikan berbanding dengan ruang nama semasa.

Untuk memudahkan operasi, PHP juga menyokong pengimportan berbilang ruang nama dalam satu baris, dipisahkan oleh, Kod sampel adalah seperti berikut:

<?php
    use My\Full\Classname as Another, My\Full\NSname;
    $obj = new Another;     // 实例化 My\Full\Classname 对象
    NSname\subns\func();    // 调用 My\Full\NSname\subns\func 函数
?>

Operasi import disusun dan dilaksanakan. , tetapi secara dinamik Nama kelas, nama fungsi atau nama tetap tidak.

<?php
    use My\Full\Classname as Another, My\Full\NSname;
    $obj = new Another; // 实例化一个 My\Full\Classname 对象
    $a = &#39;Another&#39;;
    $obj = new $a;      // 实际化一个 Another 对象
?>

Selain itu, operasi import hanya menjejaskan nama yang tidak layak dan layak. Nama yang layak sepenuhnya tidak terjejas oleh import kerana ia bersifat deterministik.

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Bagaimana untuk menggunakan kata kunci penggunaan dalam ruang nama 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