compact, extract ใน PHP

ปกติส่งตัวแปรหลายๆ ตัวข้าม function ใน PHP ผมจะสร้าง array แล้วโยนไปโยนมาครับ

เมื่อคืนเกิดสงสัยว่ามันจะมีอะไรเจ๋งๆ ช่วยเรามั้ยน๊า ไปเปิด PHP Doc ดูก็เจอ compact กับ extract ครับ

ไม่พูดพร่ำทำเพรงให้เยิ่นเย้อ… ดูตัวอย่างโค้ดเลยดีกว่า

function get_something()
{
    $id = 10;
    $foo = "bar";
    return compact('id', 'foo');
}
 
extract(get_something());
echo $id;              // ได้ผลลัพธ์เป็น 10
echo $foo;            // ได้ผลลัพธ์เป็น bar

อธิบายสั้นๆ

compact – สร้าง array จากตัวแปรที่กำหนด ในตัวอย่างจะได้ array ที่มีเนื้อหาดังนี้

(
   'id' => ค่าที่อยู่ในตัวแปร $id, 
   'foo' => ค่าที่อยู่ในตัวแปร $foo    
)

extract – ทำตรงกันข้ามกับ compact (ขี้เกียจเขียนล่ะ 555)

Comments (3)

RTSPDecember 13th, 2009 at 12:32 pm

เจ๋ง

ขอบคุณครับ

gimkimDecember 14th, 2009 at 6:39 pm

ว้าวๆๆๆๆๆ ^ ^

PriesdellyJanuary 11th, 2010 at 1:09 pm

แจ่ม

Leave a comment

Your comment