Hướng dẫn what are namespaces used for in php? - không gian tên được sử dụng để làm gì 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:



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.

Tôi có thể sử dụng hai không gian tên trong PHP không?

Trong thế giới PHP, các không gian tên được thiết kế để giải quyết hai vấn đề mà các tác giả của thư viện và ứng dụng gặp phải khi tạo các yếu tố mã có thể sử dụng lại như các lớp hoặc chức năng:

  1. Tên va chạm giữa mã bạn tạo và các lớp PHP nội bộ/chức năng/hằng số hoặc các lớp/chức năng/hằng số của bên thứ ba.
  2. Khả năng bí danh (hoặc rút ngắn) Extra_long_names được thiết kế để giảm bớt vấn đề đầu tiên, cải thiện khả năng đọc của mã nguồn.

Không gian tên PHP cung cấp một cách để nhóm các lớp, giao diện, chức năng và hằng số liên quan đến nhóm. Dưới đây là một ví dụ về cú pháp không gian tên trong PHP:

Ví dụ #1 Syntax Syntax Ví dụ

namespace2

Lưu ý: Tên không gian tên không nhạy cảm trường hợp.: Namespace names are case-insensitive.

Ghi chú::

Tên không gian tên namespace3 và tên ghép bắt đầu bằng tên này (như namespace4) được dành riêng để sử dụng ngôn ngữ nội bộ và không nên được sử dụng trong mã không gian người dùng.

Stevewa ¶

11 năm trước

namespace5

namespace6

namespace7

namespace8

namespace9

namespace0

Dmitry Snytkine ¶

11 năm trước

namespace1

namespace2

namespace0

Dmitry Snytkine ¶

pierstoval tại gmail dot com

namespace4

namespace5

namespace6

namespace7

namespace8

namespace9

namespace0

namespace1

namespace2

namespace3

namespace4

7 năm trước

Shewa12kpi tại Gmail Dot Com ¶

namespace5

namespace6

namespace7

Tonymarston tại Tonymarston Dot Net ¶

1 năm trước

namespace8

namespace9

namespace0

asma.mechtaba ¶

9 tháng trước

use1

Ẩn danh ¶

1 năm trước

use2

use3

use4

namespace0

PHP có không gian tên không?

Trong thế giới PHP, các không gian tên được thiết kế để giải quyết hai vấn đề mà các tác giả của thư viện và ứng dụng gặp phải khi tạo các thành phần mã có thể sử dụng lại như các lớp hoặc chức năng: Va chạm tên giữa mã bạn tạo và các lớp/hàm/hằng số PHP nội bộ hoặc thứ ba- Các lớp bên/chức năng/hằng số.

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.

Tôi có thể sử dụng hai không gian tên trong PHP không?

Nhiều không gian tên cũng có thể được khai báo trong cùng một tệp.Có hai cú pháp được phép.Cú pháp này không được khuyến nghị để kết hợp các không gian tên thành một tệp.Thay vào đó, bạn nên sử dụng cú pháp thay thế.. There are two allowed syntaxes. This syntax is not recommended for combining namespaces into a single file. Instead it is recommended to use the alternate bracketed syntax.

Ví dụ không gian tên là gì?

Trong một hệ điều hành, một ví dụ về không gian tên là một thư mục.Mỗi tên trong một thư mục xác định duy nhất một tệp hoặc thư mục con.Theo quy định, tên trong không gian tên không thể có nhiều hơn một ý nghĩa;Đó là, các ý nghĩa khác nhau không thể chia sẻ cùng một tên trong cùng một không gian tên.a directory. Each name in a directory uniquely identifies one file or subdirectory. As a rule, names in a namespace cannot have more than one meaning; that is, different meanings cannot share the same name in the same namespace.