ปกติส่งตัวแปรหลายๆ ตัวข้าม 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)