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ố $prefixEXTR_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 $prefixEXTR_IF_EXISTS
chỉ ghi đè nếu biến đó đã tồn tạiEXTR_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ến và giá 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