Skip to content


PHP: list() – ตัวช่วยที่สุดแสนสะดวกซะไม่มีล่ะ

ปกติแล้วใน PHP เราสามารถ Assignment ค่าให้กับตัวแปรหนึ่ง ๆ ได้โดยการใช้ชื่อตัวแปร ตามด้วยเครื่องหมาย = และปิดท้ายด้วยค่าที่ต้องการกำหนดให้ เช่น

$x = 3;
$y = "String value";

แต่เชื่อหรือไม่ว่า เราสามารถกำหนดค่าให้กับตัวแปรมากกว่า 1 ตัวพร้อม ๆ กันได้โดยการใช้ list()

list() ไม่ใช่ฟังก์ชั่น แต่เป็นโครงสร้างของตัวภาษา php เอง เอาไว้ใช้สำหรับการกำหนดค่าให้กับตัวแปรมากกว่า 1 ตัวได้พร้อม ๆ กัน เช่น

$a = ["สมชาย", "ชาย", "30"];
list($name, $sex, $age) = $a;
printf("ผมชื่อ$name เป็นผู้$sex อายุ $age ปี");

In Action!

โดยส่วนตัวที่ใช้บ่อย ๆ แล้ว ผมเอา list มาใช้สำหรับการกำหนดค่าที่ดึงได้จาก Database ครับ เช่น

$sql = "SELECT id, fname, sname, age FROM customer ORDER BY id";
$rs = mysql_query($sql);
$row = mysql_fetch_array($rs);
list($id, $firstname, $lastname, $age) = $row;

วิธีนี้จะทำให้ลดจำนวนบรรทัดในการเขียนไปได้เยอะ และยังจะช่วยให้โปรแกรมเรามีประสิทธิภาพสูงขึ้นด้วยครับ

ในกรณีที่เราต้องการข้อมูลแค่บางส่วนจาก Array เรายังสามารถละข้อมูลที่เหลือลงตัวแปรได้ครับ เช่น

$sql = "SELECT id, fname, sname, age FROM customer ORDER BY id";
$rs = mysql_query($sql);
$row = mysql_fetch_array($rs);
// เราต้องการแค่ id และ fname ข้อมูล sname และ age จะถูกจับใส่ลง $dummy เป็น array ครับ
list($id, $firstname, $dummy) = $row;

จะเห็นได้ว่า วิธีนี้จะสะดวกกว่าการมานั่งกำหนดค่าให้ทีละตัวมาก ลองเอาไปประยุกต์ใช้กันดูนะครับ

Share

Posted in PHP.

Tagged with , .


15 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. @Sinnawat says

    โอ..ดีจังครับ เพิ่งมาเจอบล็อกพี่ ขอดึง ฟีดไปเก็บไว้อ่านหน่อยนะครับ ขอบคุณครับ

  2. blackdemon says

    อืมมมมม

    พึ่งรู้เหมียนนะเนี่ย

    เดี๋ยวเอาไปใช้มั่ง thk ครับ

  3. badboy says

    ขอบคุณมากครับ เพิ่งได้มาเจอเวปนี้ ต้องเข้่ามาอ่านบ่อยๆซะแล้ว

  4. zzz says

    Parse error: syntax error, unexpected ‘[‘ in D:\AppServ\www\test\ip.php on line 2

  5. sss says

    Parse error: syntax error, unexpected ‘[’ in D:\AppServ\www\test\ip.php on line 2

  6. chonla says

    ^
    ^
    อะไรอ่ะครับ

  7. :) says

    $a = ["สมชาย", "ชาย", "30"];
    คำสั่งนี้อะครับ

  8. chonla says

    มันเป็นประกาศแบบ js ครับ ถ้าจะประกาศใน php ต้องเป็นแบบนี้ครับ

    $a = array(“สมชาย”, “ชาย”, “30″);

  9. KittyN says

    ขอบคุณคร๊าบ

  10. mak says

    list($id, $firstname, $lastname, $age) = $row;
    แล้วถ้าผมต้องการแค่ id กับ age ละครับ ต้องทำไงครับ หรือต้องเขียนระบุทั้งหมด คือผม join ตารางด้วยอ่ะครับ เขียนยาวเลยอ่ะ

  11. chonla says

    เข้าใจถูกแล้วครับ ระบุทั้งหมด แล้วเลือกเอาไปใช้ครับ หรือพยายามลดรูป sql ลงให้เหลือแค่ที่จำเป็นต้องใช้ก็ดีครับ

  12. technic says

    ขอถามเรื่อง PHP เลย นะครับ ครับ ตอนเรา จะเปิดคำสั่ง SQL เขียนเป็นแบบ
    Linq ได้ ไหม ครับอย่างเช่น $sql = “SELECT id, fname, sname, age FROM customer ORDER BY id”; เป็น $sql = customer .Select( i=> = new{ $id= i.id,$fname=i.fname}); เขียนอย่างนี้ได้ไหม ครับ

  13. chonla says

    ต้องลง Linq สำหรับ PHP ก่อนครับ http://phplinq.codeplex.com/

  14. เสมอ says

    ขอบคุณ ค่ะ ได้ความรู้เพิ่ม เยอะ

  15. tooads says

    แจ่มเลย หาความมหายของlist() มาตั้งนาน แต่ผมยังถนัด $row['id'] อยู่ เลยไม่ได้ลองแบบ list()



Some HTML is OK

or, reply to this post via trackback.

*