Chức năng __ trong php là gì?

Bất cứ khi nào bạn thấy tên hàm bắt đầu bằng dấu gạch dưới kép, thì đó là hàm "ma thuật" - hàm mà PHP đã cung cấp mà bạn chưa tự khai báo. PHP bảo lưu tất cả các hàm bắt đầu bằng __ như một phép thuật, có nghĩa là trong khi bạn có thể tự sử dụng chúng, bạn có thể thấy rằng phiên bản sau của PHP sử dụng chúng như một hàm ma thuật và gây ra xung đột

Cho đến giờ chúng ta đã thấy __sleep(), __wakeup(), __clone(), __construct(), và __desturation() - các chức năng cung cấp cho bạn quyền kiểm soát đặc biệt đối với các đối tượng của mình mà bạn không thể có được nếu không có. Để hiểu đầy đủ về OOP trong PHP, có 5 chức năng nữa bạn nên biết về. __autoload(), __get(), __set(), __call(), và __toString()

Bạn muốn học PHP 7?

Hacking with PHP đã được cập nhật đầy đủ cho PHP 7 và hiện có sẵn dưới dạng PDF có thể tải xuống. Nhận hơn 1200 trang học PHP thực hành ngay hôm nay

Nếu điều này hữu ích, vui lòng dành chút thời gian để nói với những người khác về Hacking với PHP bằng cách tweet về nó

hằng số ma thuật. Hằng số ma thuật là các hằng số được xác định trước trong PHP được sử dụng trên cơ sở sử dụng chúng. Các hằng số này được bắt đầu và kết thúc bằng dấu gạch dưới kép (__). Các hằng số này được tạo bởi các phần mở rộng khác nhau

cú pháp

$string = __FUNCTION__

Sự mô tả. Hằng số này được sử dụng để trả về tên hàm hoặc {đóng} cho các hàm ẩn danh

Bản tóm tắt. trong hướng dẫn này, bạn sẽ tìm hiểu về các phương thức ma thuật PHP ghi đè các hành động mặc định khi đối tượng thực hiện các hành động

Giới thiệu về các phương thức ma thuật PHP

Các phương thức ma thuật PHP là các phương thức đặc biệt trong một lớp. Các phương thức ma thuật ghi đè các hành động mặc định khi đối tượng thực hiện các hành động

Theo quy ước, tên của các phương thức ma thuật bắt đầu bằng dấu gạch dưới kép (

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
7). Và PHP bảo lưu các phương thức có tên bắt đầu bằng dấu gạch dưới kép (

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
7) cho các phương thức ma thuật

Cho đến giờ, bạn đã biết rằng hàm tạo và hàm hủy sử dụng các phương thức

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
0 và

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
1. Trên thực tế, hàm tạo và hàm hủy cũng là các phương thức kỳ diệu

Phương thức

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
0 được gọi tự động khi đối tượng được tạo và phương thức

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
1 được gọi khi đối tượng bị xóa

Ngoài các phương thức

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
4 và

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
1, PHP còn có các phương thức kỳ diệu sau

Magic MethodDescription__call() được kích hoạt khi gọi một phiên bản không thể truy cập method__callStatic() được kích hoạt khi gọi một phương thức tĩnh không thể truy cập__get() được gọi khi đọc giá trị từ một thuộc tính không tồn tại hoặc không thể truy cập __set() được gọi khi ghi một giá trị vào một thuộc tính không . __sleep() __sleep() cam kết dữ liệu đang chờ xử lý__wakeup() được gọi khi unserialize() chạy để tái tạo lại bất kỳ tài nguyên nào mà một đối tượng có thể có. __serialize() Hàm serialize() gọi __serialize(), nếu có, đồng thời xây dựng và trả về một mảng kết hợp gồm các cặp khóa/giá trị đại diện cho dạng tuần tự hóa của đối tượng. __unserialize() Hàm unserialize() gọi __unserialize(), nếu có, và khôi phục các thuộc tính của đối tượng từ mảng được phương thức __unserialize() trả về. __toString() được gọi khi một đối tượng của một lớp được coi là một chuỗi. __invoke() được gọi khi một đối tượng được gọi là một hàm__set_state() được gọi cho một lớp được xuất bởi var_export()__clone() được gọi sau khi nhân bản hoàn tất__debugInfo() được gọi bởi

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
6 khi kết xuất một đối tượng để lấy các thuộc tính

Hướng dẫn này sẽ tập trung vào các phương pháp

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
7 và

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
8

Phương thức __set() trong PHP

Khi bạn cố ghi vào một thuộc tính không tồn tại hoặc không thể truy cập, PHP sẽ tự động gọi phương thức

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
7. Sau đây là cú pháp của phương thức

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
7

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
2

Phương thức

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
7 chấp nhận tên và giá trị của thuộc tính mà bạn ghi vào. Ví dụ sau minh họa cách sử dụng phương thức

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
7

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)

Làm thế nào nó hoạt động

  • Đầu tiên, định nghĩa lớp

    class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

    Code language: HTML, XML (xml)
    63 chỉ có một thuộc tính

    class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

    Code language: HTML, XML (xml)
    64. Nó sẽ chứa tất cả các thuộc tính của phần tử HTML e. g. , id và lớp
  • Thứ hai, khởi tạo hàm tạo với tên thẻ. Tên thẻ có thể là bất kỳ chuỗi nào, chẳng hạn như div, bài viết, chính và phần
  • Thứ ba, triển khai phương thức

    class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

    Code language: HTML, XML (xml)
    7 để thêm bất kỳ thuộc tính nào vào mảng

    class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

    Code language: HTML, XML (xml)
    66
  • Thứ tư, xác định phương thức

    class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

    Code language: HTML, XML (xml)
    67 trả về biểu diễn HTML của phần tử

Sau đây sử dụng lớp

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
63 và tạo một phần tử div mới

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
6

đầu ra

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
3

Đoạn mã sau cố gắng ghi vào thuộc tính không tồn tại

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
4

PHP gọi ngầm định phương thức

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
7 và thêm các thuộc tính này vào thuộc tính

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
66

Phương pháp PHPtag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }Code language: HTML, XML (xml)8

Khi bạn cố gắng truy cập một thuộc tính không tồn tại hoặc một thuộc tính không thể truy cập được. g. , thuộc tính riêng tư hoặc được bảo vệ, PHP sẽ tự động gọi phương thức

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
8

Phương thức

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
8 chấp nhận một đối số là tên của thuộc tính mà bạn muốn truy cập

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
0

Sau đây thêm phương thức

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
8 vào lớp

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
63

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
3

Phương thức

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
8 kiểm tra xem thuộc tính được yêu cầu có tồn tại trong

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
64 hay không trước khi trả về kết quả

Phần sau tạo một phần tử

class HtmlElement { private $attributes = []; private $tag; public function __construct($tag) { $this->tag = $tag; } public function __set($name, $value) { $this->attributes[$name] = $value; } public function html($innerHTML = '') { $html = "<{$this->tag}"; foreach ($this->attributes as $key => $value) { $html .= ' ' . $key . '="' . $value . '"'; } $html .= '>'; $html .= $innerHTML; $html .= "tag>"; return $html; } }

Code language: HTML, XML (xml)
38 mới, đặt các thuộc tính id và lớp, sau đó hiển thị giá trị của các thuộc tính này

__ nghĩa là gì trong PHP?

__ trong PHP là đối với các phương thức ma thuật như __get , __set , __clone. Trong lịch sử _ trước biến hoặc hàm có nghĩa là riêng tư vì không có phương thức riêng tư, công khai hoặc được bảo vệ trong PHP 4. Nó không chỉ được áp dụng cho PHP. Ví dụ, trong Python, _ tiền tố cho các hàm và biến được sử dụng cho cùng một mục đích.

{{ __ }} trong laravel là gì?

Laravel sau đó đã giới thiệu một hàm trợ giúp tuyệt vời __() mà có thể được sử dụng cho các bản dịch dựa trên JSON . Chẳng hạn, trong các tệp phiến của bạn, {{ __('The Web Tier') }} Trong khi đó, “The Web Tier” được thêm vào một tệp JSON bên trong thư mục resource/lang i. e {ngôn ngữ}. json likeso, {

Dấu gạch dưới kép có nghĩa là gì trong PHP?

Nói một cách chính xác, điều đó có nghĩa là không có gì trong PHP vì nó không phải là hàm được xác định trước . Tuy nhiên, trong nhiều khung, như CakePHP và các thư viện khác, dấu gạch dưới kép là một hàm được sử dụng để dịch các chuỗi dựa trên tùy chọn ngôn ngữ/ngôn ngữ của người dùng.

PHP gettext là gì?

gettext — Tra cứu thư trong miền hiện tại . ngettext — Phiên bản số nhiều của gettext. textdomain - Đặt tên miền mặc định.