Hướng dẫn php namespace variables - biến không gian tên php

(Php 5> = 5.3.0, Php 7, Php 8)

Trước khi thảo luận về việc sử dụng các không gian tên, điều quan trọng là phải hiểu làm thế nào PHP biết phần tử tên nào được yêu cầu. Một sự tương tự đơn giản có thể được thực hiện giữa các không gian tên PHP và hệ thống tập tin. Có ba cách để truy cập một tệp trong hệ thống tệp:

  1. Tên tệp tương đối như foo.txt. Điều này giải quyết thành currentdirectory/foo.txt trong đó hiện tại là thư mục hiện đang bị chiếm. Vì vậy, nếu thư mục hiện tại là /home/foo, tên được giải quyết thành /home/foo/foo.txt.
  2. Tên đường dẫn tương đối như subdirectory/foo.txt. Điều này giải quyết đến currentdirectory/subdirectory/foo.txt.
  3. Tên đường dẫn tuyệt đối như /main/foo.txt. Điều này giải quyết đến /main/foo.txt.

Nguyên tắc tương tự có thể được áp dụng cho các yếu tố đặt tên trong PHP. Ví dụ, một tên lớp có thể được đề cập theo ba cách:

  1. Tên không đủ tiêu chuẩn, hoặc một tên lớp không bị hủy bỏ như $a = new foo(); hoặc foo::staticmethod();. Nếu không gian tên hiện tại là currentdirectory/foo.txt0, điều này sẽ giải quyết thành currentdirectory/foo.txt1. Nếu mã là mã toàn cầu, không được ký tên, thì điều này sẽ giải quyết thành currentdirectory/foo.txt2. Một cảnh báo: Tên không đủ tiêu chuẩn cho các hàm và hằng số sẽ giải quyết cho các chức năng và hằng số toàn cầu nếu hàm tên hoặc hằng số không được xác định. Xem bằng cách sử dụng không gian tên: dự phòng vào chức năng/hằng số toàn cầu để biết chi tiết. One caveat: unqualified names for functions and constants will resolve to global functions and constants if the namespaced function or constant is not defined. See Using namespaces: fallback to global function/constant for details.
  2. Tên đủ điều kiện hoặc tên lớp có tiền tố như currentdirectory/foo.txt3 hoặc currentdirectory/foo.txt4. Nếu không gian tên hiện tại là currentdirectory/foo.txt0, điều này sẽ giải quyết thành currentdirectory/foo.txt6. Nếu mã là mã toàn cầu, không được ký tên, thì điều này sẽ giải quyết thành currentdirectory/foo.txt7.
  3. Tên đủ điều kiện hoặc tên tiền tố với toán tử tiền tố toàn cầu như currentdirectory/foo.txt8 hoặc currentdirectory/foo.txt9. Điều này luôn giải quyết cho tên theo nghĩa đen được chỉ định trong mã, currentdirectory/foo.txt1.

Dưới đây là một ví dụ về ba loại cú pháp trong mã thực tế:

file1.php

/home/foo1

/home/foo2

/home/foo3

file2.php

/home/foo4

/home/foo2

/home/foo6

Lưu ý rằng để truy cập bất kỳ lớp toàn cầu, hàm hoặc hằng số, có thể sử dụng tên đủ điều kiện, chẳng hạn như \ strlen () hoặc \ Exception hoặc /home/foo7.\strlen() or \Exception or /home/foo7.

Ví dụ #1 truy cập các lớp, chức năng và hằng số toàn cầu từ trong không gian tên

/home/foo8

/home/foo9

/home/foo/foo.txt0

Richard tại Richard-sumilang dot com

14 năm trước

/home/foo/foo.txt1

/home/foo/foo.txt2

/home/foo/foo.txt3

/home/foo/foo.txt4

/home/foo/foo.txt5

Ẩn danh ¶

8 năm trước

/home/foo/foo.txt6

/home/foo/foo.txt7

/home/foo/foo.txt8

Lukas Z

10 năm trước

/home/foo/foo.txt9

subdirectory/foo.txt0

subdirectory/foo.txt1

Tom tại Tomwardrop Dot Com ¶

10 năm trước

subdirectory/foo.txt2

subdirectory/foo.txt3

subdirectory/foo.txt4

subdirectory/foo.txt5

Tom tại Tomwardrop Dot Com ¶

Philip Dot Preisser tại Arcor Dot de ¶

subdirectory/foo.txt6

subdirectory/foo.txt7

subdirectory/foo.txt8

subdirectory/foo.txt9