Bài 08: Php Namespace Php Là Gì ? Không Gian Tên (Namespace) Trong Php

PHP PHP CƠ BẢN PHP HƯỚNG ĐỐI TƯỢNG PHP STANDARDS LARAVEL PHP&MYSQL PYTHON PYTHON CƠ BẢN PYTHON NÂNG CAO PYTHON & MYSQL JAVASCRIPT JAVASCRIPT CƠ BẢN JQUERY JS VUE.JS ECMASCRIPT NODE.JS NODE.JS CƠ BẢN EXPRESS FRAMEWORK NODE.JS & MYSQL NODE.JS & MONGODB MORE JAVA CORE SQL MONGO DB HTML CSS Thủ Thuật Công Nghệ THỦ THUẬT CÔNG NGHỆ TOOLS & SOFTWARE TIN TỨC & REVIEW TIN TUYỂN DỤNG Liên Hệ Home PHP PHP CƠ BẢN PHP HƯỚNG ĐỐI TƯỢNG PHP STANDARDS LARAVEL LARAVEL 8 PHP&MYSQL PYTHON PYTHON CƠ BẢN PYTHON NÂNG CAO PYTHON & MYSQL JAVASCRIPT JAVASCRIPT CƠ BẢN JQUERY JS VUE.JS ECMASCRIPT NODE.JS NODE.JS CƠ BẢN EXPRESS FRAMEWORK NODE.JS & MYSQL NODE.JS & MONGODB MORE JAVA CORE SQL MONGO DB HTML CSS TIN TUYỂN DỤNG Liên Hệ Post Job Tìm kiếm

PHP CƠ BẢN PHP HƯỚNG ĐỐI TƯỢNG PHP STANDARDS LARAVEL PHP&MYSQLPYTHON CƠ BẢN PYTHON NÂNG CAO PYTHON & MYSQLJAVASCRIPT CƠ BẢN JQUERY JS VUE.JS ECMASCRIPTNODE.JS CƠ BẢN EXPRESS FRAMEWORK NODE.JS & MYSQL NODE.JS & MONGODBJAVA CORE SQL MONGO DB HTML CSS Thủ Thuật Công Nghệ THỦ THUẬT CÔNG NGHỆ TOOLS & SOFTWARE TIN TỨC & REVIEW TIN TUYỂN DỤNG Liên Hệ Home PHP PHP CƠ BẢN PHP HƯỚNG ĐỐI TƯỢNG PHP STANDARDS LARAVEL LARAVEL 8 PHP&MYSQL PYTHON PYTHON CƠ BẢN PYTHON NÂNG CAO PYTHON & MYSQL JAVASCRIPT JAVASCRIPT CƠ BẢN JQUERY JS VUE.JS ECMASCRIPT NODE.JS NODE.JS CƠ BẢN EXPRESS FRAMEWORK NODE.JS & MYSQL NODE.JS & MONGODB MORE JAVA CORE SQL MONGO DB HTML CSS TIN TUYỂN DỤNG Liên Hệ Post Job Tìm kiếm

Gợi ý

Học PHP Python Node.js javascript MongoDB Bài 11: Namespace trong PHP

Học PHP Python Node.js javascript MongoDB Bài 11: Namespace trong PHP

*
By Vũ Thanh Tài

By Vũ Thanh Tài

Trong một dự án lớn có bao giờ bạn nghĩ đến trường hợp là sẽ xảy ra các class có trùng tên nhau không? Chính vì điều đó mà kể tử phiên bản PHP 5.3 trở đi thì PHP có hỗ trợ cho chúng ta chức năng mới là namespace …Bạn đang xem: Namespace va use trong php

1, Namespace là gì?

– Namespace giúp tạo ra một không gian tên cho hàm và lớp trong lập trình nói chung và trong PHP nói riêng.

Bạn đang xem: Namespace php là gì

-Vì ở đây là series hướng đối tượng nên mình sẽ chỉ trình bày về namespace trong hướng đối tượng, trong hướng đối tượng thì namespace có tác dụng tạo ra định danh cho lớp một cách cụ thể hóa hơn.

VD: như chúng ta có 2 file mỗi file đều chứa một class và 2 class này lại có một điểm chung là trùng tên. Giờ đây khi bạn nhúng cả 2 file này vào và gọi class thì ngay lập tức chương trình sẽ báo lỗi. Để khắc phục điều đó thì chúng ta cần khai báo namespace cho hai class đó (đọc tiếp để xem cách khai báo).

2, Khai báo namespace.

-Để khai báo namespace trong PHP chú ta sử dụng cú pháp sau:

namespace Name;

namespace Name;

 Trong đó: Name là tên của namespace.

Chú ý : khi khai báo namespace thì chúng ta phải đặt nó ở phía trên cùng của file. Hơn nữa nếu như bạn muốn đặt tên namespace đúng chuẩn thì hãy tham khảo series PHP standards.

Xem thêm: php md5 decode encode

VD:

class Package }

class Package }

-Và bạn cũng có thể hoàn toàn đặt tên namespace theo các cấp được.

VD: Tạo một class HomeController trong thư mục app\controllers và đặt tên namespace như sau:

namespace App\Controllers; class HomeController

3, Gọi namespace.

namespace App\Controllers; class HomeController

– Khi mà một class đã được một namespace định danh thì bạn sẽ không thể gọi theo cách thông thường được nữa mà phải gọi với cú pháp:

new tenNamespace\tenClass();

new tenNamespace\tenClass();

VD:

-Tạo một file ConNguoi.php có nội dung như sau:

getName(); //kết quả: Con Người

Nạp namespace bằng use

getName(); //kết quả: Con Người

-Nếu như bạn không muốn gọi namespace theo cách trên thì bạn sử dụng từ khóa use để nạp theo cú pháp sau:

use tenNamespace\tenClass;

use tenNamespace\tenClass;

Chú ý : Khai báo nạp namespace cũng phải được đặt trên đầu của một file, nếu như trong một file có sử dụng namespace và use thì use sẽ được đặt dưới namespace.

VD: Mình sẽ sử dụng use để nạp namespace của class ConNguoi, khi đó file index.php sẽ được viết như sau:

getName(); //kết quả: Con Người

getName(); //kết quả: Con Người

 VD: Một file mà có khai báo namespace và use thì sẽ viết như sau:

getName(); //kết quả: Con Người

5, Nhiều namespace trong một file.

getName(); //kết quả: Con Người

-Như ở trên mình có nói là khi khai báo namespace thì chúng ta phải đặt ở đầu file, nhưng nếu như ở trong một file có nhiều namespace thì chúng ta sẽ khai báo như sau:

namespace nameone; class ClassOne namespace nametwo; class ClassTwo

namespace nameone; class ClassOne namespace nametwo; class ClassTwo

VD:

-Tạo một file Class.php có nội dung như sau:

getName(); //kết quả: Con Người $nguoilon = new Class\NguoiLon\NguoiLon(); echo $nguoilon->getName(); //kết quả: Nguoi Lon

6, Lời Kết.

getName(); //kết quả: Con Người $nguoilon = new Class\NguoiLon\NguoiLon(); echo $nguoilon->getName(); //kết quả: Nguoi Lon

-Như vậy mình đã trình bày xong về namespace trong PHP rồi, hy vọng mọi người có thể nắm chắc kiến thức này để khi học các PHP framework như Laravel, Zend,… khỏi bị bỡ ngỡ. Bài tiếp theo chúng ta sẽ tìm hiểu về Trait trong PHP.

Rate this post

Viết một bình luận