ปกติแล้วใน 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;
จะเห็นได้ว่า วิธีนี้จะสะดวกกว่าการมานั่งกำหนดค่าให้ทีละตัวมาก ลองเอาไปประยุกต์ใช้กันดูนะครับ
โอ..ดีจังครับ เพิ่งมาเจอบล็อกพี่ ขอดึง ฟีดไปเก็บไว้อ่านหน่อยนะครับ ขอบคุณครับ
อืมมมมม
พึ่งรู้เหมียนนะเนี่ย
เดี๋ยวเอาไปใช้มั่ง thk ครับ
ขอบคุณมากครับ เพิ่งได้มาเจอเวปนี้ ต้องเข้่ามาอ่านบ่อยๆซะแล้ว
Parse error: syntax error, unexpected ‘[‘ in D:\AppServ\www\test\ip.php on line 2
Parse error: syntax error, unexpected ‘[’ in D:\AppServ\www\test\ip.php on line 2
^
^
อะไรอ่ะครับ
$a = ["สมชาย", "ชาย", "30"];
คำสั่งนี้อะครับ
มันเป็นประกาศแบบ js ครับ ถ้าจะประกาศใน php ต้องเป็นแบบนี้ครับ
$a = array(“สมชาย”, “ชาย”, “30″);
ขอบคุณคร๊าบ
list($id, $firstname, $lastname, $age) = $row;
แล้วถ้าผมต้องการแค่ id กับ age ละครับ ต้องทำไงครับ หรือต้องเขียนระบุทั้งหมด คือผม join ตารางด้วยอ่ะครับ เขียนยาวเลยอ่ะ
เข้าใจถูกแล้วครับ ระบุทั้งหมด แล้วเลือกเอาไปใช้ครับ หรือพยายามลดรูป sql ลงให้เหลือแค่ที่จำเป็นต้องใช้ก็ดีครับ
ขอถามเรื่อง 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}); เขียนอย่างนี้ได้ไหม ครับ
ต้องลง Linq สำหรับ PHP ก่อนครับ http://phplinq.codeplex.com/
ขอบคุณ ค่ะ ได้ความรู้เพิ่ม เยอะ
แจ่มเลย หาความมหายของlist() มาตั้งนาน แต่ผมยังถนัด $row['id'] อยู่ เลยไม่ได้ลองแบบ list()