Hướng dẫn dùng extraer subs trong PHP

Hàm extract[] trong PHP được sử dụng để nhập các biến từ một mảng vào trong bảng biểu tượng hiện tại [current symbol table]. Nó nhận một mảng array và coi các key như là các tên biến và các value là các giá trị biến. Với mỗi cặp key/value nó sẽ tạo một biến trong bảng ký tự hiện tại, theo các tham số extract_type và prefix.

Hàm này được sử dụng trên PHP4, PHP5 và PHP7.

  • Cú pháp
  • Tham số truyền vào 
  • Giá trị trả về
  • Ví dụ minh họa
  • Kết quả trả về sẽ là
  • Ví dụ minh họa
  • Ứng dụng
  • Các hàm liên quan

Cú pháp

Cú pháp hàm extract[] trong PHP như sau:

extract [ array &$array [, int $flags = EXTR_OVERWRITE [, string $prefix = NULL ]] ] : int

Tham số truyền vào 

  • $array là mảng được truyền vào.
  • $flags là các tùy chọn tương ứng
    • EXTR_OVERWRITE ghi đè các giá trị
    • EXTR_SKIP không ghi đè các giá trị
    • EXTR_PREFIX_SAME nếu tồn tại, thì sẽ tạo biến dựa trên tiền tố $prefix
    • EXTR_PREFIX_ALL thêm tiền tố $prefix vào toàn bộ
    • EXTR_PREFIX_INVALID chỉ tiền tố không hợp lệ/ tên biến số với $prefix
    • EXTR_IF_EXISTS chỉ ghi đè nếu biến đó đã tồn tại
    • EXTR_PREFIX_IF_EXISTS chỉ tạo biến có tiền tố $prefix nếu có nhiều biến cùng tên trong mảng
  • $prefix tiền tố khi xuất hiện sự trùng lặp biến.

Giá trị trả về

Hàm extract[] sẽ trả về số lượng biến theo KEY trong mảng va $prefix đươc nhập thành công.

Ví dụ minh họa

Kết quả trả về sẽ là

blue, large, sphere, medium

Tùy vào $flag mà bạn chọn thì hàm extract sẽ có các tùy chọn khác nhau, nếu trong trường hợp bạn không truyền tham số $flag thì mặc định hàm sẽ được xử lý theo $flag EXTR_OVERWRITE, trong ví dụ trên bạn có thể thấy, hàm extract được truyền vào tham số là $EXTR_PREFIX_SAME – khi có biến đã tồn tại thì tạo thêm một biến với tiền tố $frefix đã truyền vào

Khuyến cáo: Không nên sử dụng hàm extract[] trong các trường hợp xử lý dữ liệu trực tiếp với các biến hệ thống như $_GET, hoặc $_SET, cảnh báo này cũng áp dụng với $_FILES.

Ví dụ minh họa

Như mình đã khuyến cáo ở trên, trong trường hợp này bạn có thể mong muốn một kết quả như sau:

string[14] "/tmp/phpgCCPX8"
array[5] {
  ["name"]=>
  string[10] "somefile.txt"
  ["type"]=>
  string[24] "application/octet-stream"
  ["tmp_name"]=>
  string[14] "/tmp/phpgCCPX8"
  ["error"]=>
  int[0]
  ["size"]=>
  int[4208]
}
string[14] "/tmp/phpgCCPX8"

Tuy nhiên kết quả thực tế sẽ là

string[14] "/tmp/phpgCCPX8"
string[14] "/tmp/phpgCCPX8"
string[1] "/"

Như vậy việc thao tác với các biến hệ thống hoặc dữ liệu có độ rủi do cao, bạn không nên sử dụng extract[].

Ứng dụng

Trong ví dụ trên các bạn có thể thấy ứng dụng của hàm extract[] trong việc khởi tạo một đối tượng có nhiều tham số dễ dàng như thế nào.

Các hàm liên quan

  • Hàm compact[] tạo ra mảng kết hợp từ biếngiá trị của một mảng
  • Hàm list[] gán các biến như thể chúng là một mảng

Hi vọng với bài viết này, bạn đã hiểu rõ cách sử dụng hàm extract[] trong PHP. Nếu thấy bài viết hay và ý nghĩa, hãy like và chia sẻ với bạn bè để mọi người cùng nhau học tập nhé.

Cảm ơn bạn đã ghé thăm codetutam.com

Bài Viết Liên Quan

Chủ Đề