ถามผู้รู้ php เกี่ยวกับ {}และ ;

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderator: mindphp, ผู้ดูแลกระดาน

howlong

ถามผู้รู้ php เกี่ยวกับ {}และ ;

โพสต์ที่ยังไม่ได้อ่าน โดย howlong »

คือผมเริ่มหัดเขียน php ครับ
ถ้าผมเขียนแบบนี้

โค้ด: เลือกทั้งหมด

<?php
for($up=1;$up<=12;$up++){
for($down=1;$down<=12;$down++){
$ans=$up*$down;
echo "$up X $down = $ans<br>";
}
}
?>
มันจะเป็น สูตรคูณแม่ 1 ถึง 12 ตามที่ผมตั้งใจที่จะให้เป็น

แต่ถ้า้เอาปีกกาตรง for loop ที่ 2 ออก

โค้ด: เลือกทั้งหมด

<?php
for($up=1;$up<=12;$up++){
for($down=1;$down<=12;$down++)
$ans=$up*$down;
echo "$up X $down = $ans<br>";
}
?>

โค้ด: เลือกทั้งหมด

1 X 13 = 12
2 X 13 = 24
3 X 13 = 36
4 X 13 = 48
5 X 13 = 60
6 X 13 = 72
7 X 13 = 84
8 X 13 = 96
9 X 13 = 108
10 X 13 = 120
11 X 13 = 132
12 X 13 = 144
มันจะเป็นแบบนี้
หรือหากผมไปเติ่ม ; ตรง for($up=1;$up<=12;$up++);

โค้ด: เลือกทั้งหมด

<?php
for($up=1;$up<=12;$up++);{
for($down=1;$down<=12;$down++){
$ans=$up*$down;
echo "$up X $down = $ans<br>";
}
}
?>

โค้ด: เลือกทั้งหมด

13 X 1 = 13
13 X 2 = 26
13 X 3 = 39
13 X 4 = 52
13 X 5 = 65
13 X 6 = 78
13 X 7 = 91
13 X 8 = 104
13 X 9 = 117
13 X 10 = 130
13 X 11 = 143
13 X 12 = 156
คือผมอยากให้ช่วยอธิบายเกี่ยวกับการเติม {} และ ; หน่อยนะครับ คิดจนปวดหัวแล้วครับ ขอบคุณครับผม  :wanwan017:
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41232
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: ถามผู้รู้ php เกี่ยวกับ {}และ ;

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ถ้ามี { ต้องคู่กับ } เสมอ
ถ้าต้องการให้จบคำสั่งแค่ละบรรทัด ให้ใส่ ;
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
touleg
PHP Super Member
PHP Super Member
โพสต์: 480
ลงทะเบียนเมื่อ: 25/01/2010 11:57 pm
ติดต่อ:

Re: ถามผู้รู้ php เกี่ยวกับ {}และ ;

โพสต์ที่ยังไม่ได้อ่าน โดย touleg »

คำสั่ง if for while foreach พวกนี้ไม่ต้องใส่ ; ตามหลังคำสั่ง ถ้าใส่เข้าไปมันจะจบคำสั่งนั้นทันที

และหากไม่ใส่ { } มันจะทำคำสั่งเพียงแค่ถัดลงมา 1 บรรทัด

เช่น

โค้ด: เลือกทั้งหมด

for($down=1;$down<=12;$down++)
$ans=$up*$down;
echo "$up X $down = $ans<br>";
 
มันจะวนลูปแค่บรรทัด $ans=$up*$down; จนเสร็จ แล้วถึงจะมาทำ echo

แต่คุณสามารถใช้แบบนี้ได้

โค้ด: เลือกทั้งหมด

for($up=1;$up<=12;$up++)
   for($down=1;$down<=12;$down++)
   {
       $ans=$up*$down;
       echo "$up X $down = $ans<br>";
   }
 
จะเห็นว่า loop นอกไม่มี { } ครอบ หมายความว่ามันจะทำคำสั่งถัดไปแค่ 1 บรรทัด
แต่คำสั่งถัดไปมันเป็นวนลูปเหมือนกัน ดังนั้นมันจะทำในลูปของคำสั่งนี้ด้วย
แต่จะเห็นว่า loop นี้จะมี { } ครอบ เพราะว่าภายในนั้นมีคำสั่งที่ต้องวนลูปด้วยอยู่ 2 บรรทัด จึงต้องใส่ { } ครอบ

อย่างไรก็ตาม เพื่อให้ง่ายต่อการดูโค้ดผมแนะนำให้ใส่ { } ครอบทุกครั้ง แม้ว่ามันจะมีคำสั่งภายในแค่บรรทัดเดียว และไม่ควรใส่ ; หลังคำสั่งพวกนี้ เพราะมันไม่มีประโยชน์ ใส่ไปมันก็เอาไปใช้อะไรไม่ได้ แล้วจะเขียนมันขึ้นมาทำไม
ตอบกลับโพส

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 115