อีักฟังก์ชันนึงที่น่าสนใจของ PHP ที่ผมพึ่งไปเจอมาจากการแกะโค้ดของ wordpress โดยฟังก์ชันนี้จะทำการสร้างตัวแปรที่สอดคล้องกับคีย์ของอาเรย์ที่เป็น argument ของฟังก์ชันนี้
รูปแบบการใช้งาน
int extract ( array $var_array [, int $extract_type = EXTR_OVERWRITE [, string $prefix ]] )
$var_array เป็นตัวแปรอาเรย์ที่ต้องการสร้างตัวแปรตามคีย์ของอาเรย์
$extract_type เป็นค่าทีี่่กำหนดว่าถ้าหากมีตัวแปรที่เหมือนกับคีย์ของอาเรย์ $var_array แล้วจะจัดการยังไงกับตัวแปรนั้นๆ ซึ่งจะมีค่าเป็นค่าใดค่าหนึ่งดังนี้
EXTR_OVERWRITE ให้กำหนดค่าแทนค่าตัวแปรนั้น
EXTR_SKIP ไม่ต้องทำอะไรกับตัวแปรที่มีอยู่แล้ว
EXTR_PREFIX_SAME กำหนดคำนำหน้าให้กับตัวแปรที่สร้างขึ้นใหม่
EXTR_PREFIX_ALL กำหนดคำนำหน้าให้กับตัวแปรที่สร้างขึ้นใหม่ทั้งหมด
EXTR_PREFIX_INVALID กำหนดคำนำหน้าให้เฉพาะคีย์ที่ไม่สามารถใช้เป็นชื่อตัวแปรได้
EXTR_IF_EXIST กำหนดค่าให้ใหม่
EXTR_PREFIX_IF_EXIST กำหนดค่าให้ใหม่ถ้าหากตัวแปรนั้นมีอยู่แล้ว
EXTR_REFS อ้างอิงตำแหน่งไปยังตัวแปรนั้น
$prefix เป็นคำนำหน้าของตัวแปรหากมีการกำหนดให้มีคำนำหน้า
ตัวอย่างการใช้งานครับ
<?php /* Suppose that $var_array is an array returned from wddx_deserialize */ $size = "large"; $var_array = array("color" => "blue", "size" => "medium", "shape" => "sphere"); extract($var_array, EXTR_PREFIX_SAME, "wddx"); echo "$color, $size, $shape, $wddx_size\n"; ?>
ผลลัพธ์ที่ได้ครับ
blue, large, sphere, medium