Hướng dẫn dùng extracted trong PHP
Nội Dung Show
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). Hay ta có thể hiểu nôm na một cách đơn giản là hàm extract() giúp ta chuyển đổi phần tử trong mảng thành một biến. Hàm sẽ sử dụng key của mảng làm tên biến và value tương ứng làm giá trị của biến. Hàm extract() cũng sẽ kiểm tra các key xem nó có phải là tên biến hợp lệ hay không. Với mỗi cặp key và value nó sẽ tạo một biến trong bảng ký tự hiện tại. Nó cũng kiểm tra sự xung đột với các biến hiện có trong bảng ký hiệu. Hàm extract() được giới thiệu và sử dụng từ phiên bản PHP 4.0 2. Cú pháp của hàm extract() trong PHPTa có cú pháp của hàm extract() trong PHP là :
Hàm extract() sẽ chấp nhận truyền vào 3 tham số trong đó :
Những giá trị có thể được đặt với $extract_rule :
Giá trị trả về của hàm extract() là một số nguyên và nó đại diện cho số biến được trích xuất hoặc nhập thành công từ mảng. Có nghĩa là hàm này sẽ trả về số lượng biến theo key trong mảng và $prefix đươc nhập thành công. Ví dụ : gán giá trị của mảng cho các biến "PHP","b" => "Java", "c" => "Python"); extract($my_array); echo "$a = $a; $b = $b; $c = $c"; ?> Kết quả $a = PHP; $b = Java; $c = Python3. Ví dụ về hàm extract() trong PHP Ví dụ 1: "PHP", "b" => "Java", "c" => "Python"); extract($my_array, EXTR_PREFIX_SAME, "dup"); echo "$a = $a; $b = $b; $c = $c; $dup_a = $dup_a"; ?> Kết quả $a = laptrinhtudau; $b = Java; $c = Python; $dup_a = PHP Ta có $a không bị ghi đè vì chúng ta đã chỉ định EXTR_PREFIX_SAME , điều này dẫn đến việc tạo $dup_a . Nếu EXTR_SKIP được chỉ định, thì $dup_a thậm chí sẽ không được tạo. EXTR_OVERWRITE sẽ khiến $a có giá trị là “PHP” và EXTR_PREFIX_ALL sẽ dẫn đến các biến mới được đặt tên là $dup_a , $dup_b và $dup_c Ví dụ 2: "tendulkar","b" => "virat", "c" => "ganguly"); extract($my_array); echo $a; echo $b; ?> Kết quả tendulkarvirat Ví dụ 3: Kết quả PHPhanoi 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ápCú 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
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"blue", "size" => "medium", "shape" => "sphere"); extract($var_array, EXTR_PREFIX_SAME, "wddx"); echo "$color, $size, $shape, $wddx_size\n"; ?> 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ọaNhư 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$value) { $this->$key = $$key; } } } $array = array( 'valueOne' => 'Test Value 1', 'valueTwo' => 'Test Value 2', 'valueThree' => 'Test Value 3' ); $foo = new Foo($array); // Works echo $foo->valueOne; // Test Value 1 echo $foo->valueTwo; // Test Value 2 ?> 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
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é. |