Hướng dẫn why do we use namespace in php? - tại sao chúng ta sử dụng không gian tên trong php?


Không gian tên PHP

Không gian tên là vòng loại giải quyết hai vấn đề khác nhau:

  1. Họ cho phép tổ chức tốt hơn bằng cách nhóm các lớp làm việc cùng nhau để thực hiện một nhiệm vụ
  2. Chúng cho phép cùng tên được sử dụng cho nhiều hơn một lớp

Ví dụ, bạn có thể có một tập hợp các lớp mô tả bảng HTML, chẳng hạn như bảng, hàng và ô trong khi cũng có một bộ lớp khác để mô tả đồ nội thất, như bàn, ghế và giường. Không gian tên có thể được sử dụng để tổ chức các lớp thành hai nhóm khác nhau trong khi cũng ngăn hai bảng hai lớp và bảng bị trộn lẫn.


Tuyên bố một không gian tên

Các không gian tên được khai báo ở đầu tệp bằng từ khóa namespace:

Cú pháp

Tuyên bố một không gian tên được gọi là HTML:

namespace Html;
?>

Lưu ý: Tuyên bố namespace phải là điều đầu tiên trong tệp PHP. Mã sau sẽ không hợp lệ: A namespace declaration must be the first thing in the PHP file. The following code would be invalid:

echo "Hello World!";
namespace Html;
...
?>

Hằng số, lớp và chức năng được khai báo trong tệp này sẽ thuộc về không gian tên HTML:Html namespace:

Thí dụ

Tạo một lớp bảng trong không gian tên HTML:

Tiêu đề = "Bảng của tôi"; $ Bảng-> NUMROWS = 5;?>
namespace Html;
class Table {
  public $title = "";
  public $numRows = 0;
  public function message() {
    echo "

Table '{$this->title}' has {$this->numRows} rows.

";
  }
}
$table = new Table();
$table->title = "My table";
$table->numRows = 5;
?>



thông điệp(); ?>
$table->message();
?>


Hằng số, lớp và chức năng được khai báo trong tệp này sẽ thuộc về không gian tên HTML:

Thí dụ

Cú pháp

Tuyên bố một không gian tên được gọi là HTML:

namespace Code\Html;
?>



Lưu ý: Tuyên bố namespace phải là điều đầu tiên trong tệp PHP. Mã sau sẽ không hợp lệ:

Any code that follows a namespace declaration is operating inside the namespace, so classes that belong to the namespace can be instantiated without any qualifiers. To access classes from outside a namespace, the class needs to have the namespace attached to it.

Thí dụ

Tạo một lớp bảng trong không gian tên HTML:

$table = new Html\Table()
$row = new Html\Row();
?>

Hằng số, lớp và chức năng được khai báo trong tệp này sẽ thuộc về không gian tên HTML:

Thí dụ

Thí dụ

Tạo một lớp bảng trong không gian tên HTML:

namespace Html;
$table = new Table();
$row = new Row();
?>

Hằng số, lớp và chức năng được khai báo trong tệp này sẽ thuộc về không gian tên HTML:


Thí dụ

Tạo một lớp bảng trong không gian tên HTML:

Thí dụ

Tạo một lớp bảng trong không gian tên HTML:

use Html as H;
$table = new H\Table();
?>

Hằng số, lớp và chức năng được khai báo trong tệp này sẽ thuộc về không gian tên HTML:

Thí dụ

Tạo một lớp bảng trong không gian tên HTML:

use Html\Table as T;
$table = new T();
?>

Hằng số, lớp và chức năng được khai báo trong tệp này sẽ thuộc về không gian tên HTML:



<?php2 <?php3namespace6

use <?php6<?php7 <?php8

<?php9 namespace0namespace1 namespace2

  • use namespace4<?php7 namespace6
  • <?php9 namespace0namespace1 MyNamespaceName {0
  • <?php2 <?php3namespace6

    use <?php6<?php7 <?php8

    <?php9 namespace0namespace1 namespace2

    Giống như C ++, không gian tên PHP là cách đóng gói các mục để có thể sử dụng lại cùng tên mà không có xung đột tên.

    • Nó có thể được coi là một khái niệm trừu tượng ở nhiều nơi. Nó cho phép phân chia lại các chức năng/lớp/giao diện/hàm không đổi giống nhau trong không gian tên riêng mà không gặp lỗi nghiêm trọng.redeclaring the same functions/classes/interfaces/constant functions in the separate namespace without getting the fatal error.
    • Không gian tên là một khối mã được dán nhãn phân cấp giữ mã PHP thông thường.
    • Một không gian tên có thể chứa mã PHP hợp lệ.
    • Không gian tên ảnh hưởng đến các loại mã sau: Các lớp (bao gồm tóm tắt và đặc điểm), giao diện, chức năng và hằng số.
    • Không gian tên được khai báo bằng cách sử dụng từ khóa không gian tên.

    Một không gian tên phải được khai báo là không gian tên ở đầu tệp trước bất kỳ mã nào khác - với một ngoại lệ: từ khóa khai báo. & Nbsp; & nbsp;
     

    PHP

    <?php

    namespace MyNamespaceName {

        function namespace0

        namespace2

    namespace3namespace4 namespace5namespace6

        namespace8

    namespace8

    namespace0

    Nếu không gian tên được khai báo trên toàn cầu, thì hãy khai báo nó mà không có bất kỳ tên nào. & Nbsp; & nbsp; without any name. 
     

    PHP

    Nhiều không gian tên có thể được khai báo trong một mã PHP. & Nbsp; & nbsp;
     

    PHP

    <?php

    namespace namespace3

    namespace8

    namespace namespace6

    namespace8

    namespace namespace2

    namespace8

    namespace0

    Một không gian tên được sử dụng để tránh các định nghĩa mâu thuẫn và giới thiệu sự linh hoạt và tổ chức hơn trong cơ sở mã. Cũng giống như các thư mục, không gian tên có thể chứa một hệ thống phân cấp được gọi là không gian Subnamespace. PHP sử dụng dấu gạch chéo ngược làm dấu phân cách không gian tên.example: & nbsp; & nbsp;
    Example: 
     

    PHP

    <?php

    namespace namespace4

    function namespace0

        namespace2

    namespace3namespace4 namespace5namespace6

        namespace8

    use5

    namespaceuse7

    namespace0

    Bí ẩn trong không gian tên

    Nhập khẩu đạt được bằng cách sử dụng từ khóa ‘sử dụng từ khóa. Tùy chọn, nó có thể chỉ định một bí danh tùy chỉnh với từ khóa ‘như từ khóa. & Nbsp; ví dụ: & nbsp; & nbsp;
    Example: 
     

    PHP

    <?php

    namespace namespace4

    function namespace0

    namespace3namespace4 namespace5namespace6

    Bí ẩn trong không gian tên

    Nhập khẩu đạt được bằng cách sử dụng từ khóa ‘sử dụng từ khóa. Tùy chọn, nó có thể chỉ định một bí danh tùy chỉnh với từ khóa ‘như từ khóa. & Nbsp; ví dụ: & nbsp; & nbsp;

    <?php2 <?php3namespace6

    namespace0

    use <?php6<?php7 <?php8
     

    PHP

    <?php

    <?php9 namespace0namespace1 namespace2

    use namespace4<?php7 namespace6

    <?php9 namespace0namespace1 MyNamespaceName {0

    Có thể gọi điện tự động mã theo tên, nhập động không được hỗ trợ. & Nbsp; & nbsp;

    namespace0

    namespace MyNamespaceName {4
     


    Tại sao chúng ta cần không gian tên trong PHP?

    Một không gian tên được sử dụng để tránh các định nghĩa mâu thuẫn và giới thiệu sự linh hoạt và tổ chức hơn trong cơ sở mã. Cũng giống như các thư mục, không gian tên có thể chứa một hệ thống phân cấp được gọi là không gian Subnamespace. PHP sử dụng dấu gạch chéo ngược làm dấu phân cách không gian tên của nó.to avoid conflicting definitions and introduce more flexibility and organization in the code base. Just like directories, namespace can contain a hierarchy know as subnamespaces. PHP uses the backslash as its namespace separator.

    Mục đích của không gian tên là gì?

    Các không gian tên được sử dụng để sắp xếp mã thành các nhóm logic và để ngăn chặn các vụ va chạm tên có thể xảy ra đặc biệt là khi cơ sở mã của bạn bao gồm nhiều thư viện. Tất cả các định danh ở phạm vi không gian tên có thể nhìn thấy với nhau mà không cần trình độ.to organize code into logical groups and to prevent name collisions that can occur especially when your code base includes multiple libraries. All identifiers at namespace scope are visible to one another without qualification.

    Những lợi ích của việc sử dụng không gian tên là gì?

    Ưu điểm lớn nhất của việc sử dụng không gian tên là các tên lớp được khai báo trong một không gian tên sẽ không đụng độ với cùng một tên lớp được tuyên bố trong một không gian tên khác.Nó cũng được gọi là nhóm các lớp có tên có các tính năng chung.the class names which are declared in one namespace will not clash with the same class names declared in another namespace. It is also referred as named group of classes having common features.

    Sự khác biệt giữa không gian tên và sử dụng trong PHP là gì?

    Không gian tên là để tránh các vụ va chạm tên lớp, vì vậy bạn có thể có hai tên lớp giống nhau trong hai không gian tên khác nhau. Sử dụng giống như PHP bao gồm.Vui lòng đăng nhập hoặc tạo tài khoản để tham gia vào cuộc trò chuyện này. Use is just like PHP include. Please sign in or create an account to participate in this conversation.