ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingช่วยอธิบายโค้ด php ให้เข้าใจหน่อยค่ะ กำลังฝึกอยู่ค่ะ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ช่วยอธิบายโค้ด php ให้เข้าใจหน่อยค่ะ กำลังฝึกอยู่ค่ะ  (อ่าน 2290 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
ไม่ใช่ผู้วิเศษ
ก๊วนเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 240



ดูรายละเอียด
« เมื่อ: 09 มีนาคม 2015, 22:08:42 »

ผลลัพธ์ค่ะ




โค้ดค่ะ  งงค่ะ  มันมีหลักการทำงานยังไงค่ะ  สอนหน่อยค่ะขอบคุณค่ะ   wanwan008 wanwan031 wanwan012
บันทึกการเข้า
RaulGonzales
สมุนแก๊งเสียว
*

พลังน้ำใจ: 22
ออฟไลน์ ออฟไลน์

กระทู้: 721



ดูรายละเอียด
« ตอบ #1 เมื่อ: 09 มีนาคม 2015, 22:55:37 »

จาก code

โค๊ด:
for($i=1;$i<=5;$i++) {
for($j=1;$j<=$i;$j++) {
echo $j;
}
}

loop แรก ครั้งที่ 1
STEP 1   >>>   $i = 1
STEP 2   >>>   $j = 1
STEP 3   >>>   $j <= $i หรือไม่ ถ้าใช่ทำ STEP 4
STEP 4   >>>   แสดงเลข ของตัวแปร $j ก็คือ 1
STEP 5   >>>   $i++ ตัวแปร $i loop แรก ครั้งต่อไปจะมีค่าเพิ่ม $i = $i + 1; นั้นก็คือ 2
STEP 6   >>>   ขึ้นบรรทัดใหม่เพราะจบ loop 2 ครั้งที่ 1

loop แรก ครั้งที่ 2
STEP 1   >>>   $i = 2
STEP 2   >>>   $j = 1
SETP 3   >>>   $j <= $i หรือไม่ ถ้าใช่ทำ STEP 4
STEP 4   >>>   loop 2 ครั้งที่ 1 แสดง เลข 1 เพราะ $j อยู่ใน loop ที่ สอง ซึ่งมีเงื่อนไข $j <= $i
STEP 5   >>>   loop 2 ครั้งที่ 2 แสดง เลข 2 แต่ไม่ขึ้นบรรทัดใหม่ เพราะ $j อยู่ใน loop ที่ สอง ซึ่งมีเงื่อนไข $j <= $i
STEP 6   >>>   ขึ้นบรรทัดใหม่เพราะจบ loop 2 ครั้งที่ 2

คิดแบบนี้เป็น loop ไปเรื่อยๆ ไม่รู้จะเข้าใจไหม  wanwan004
« แก้ไขครั้งสุดท้าย: 09 มีนาคม 2015, 22:56:19 โดย RaulGonzales » บันทึกการเข้า

ลงประกาศ ซื้อ,ขาย,เช่า,บ้าน,คอนโด,ที่อยู่ กับ www.properlive.com
tanutsun
ก๊วนเสียว
*

พลังน้ำใจ: 98
ออฟไลน์ ออฟไลน์

กระทู้: 485



ดูรายละเอียด
« ตอบ #2 เมื่อ: 09 มีนาคม 2015, 23:44:54 »

มันเป็นการลูปครับ For loop

$i=1 ก็คือกำหนดว่า ตัวแปร i เท่ากับหนึ่งแล้วถ้าเกิดค่าของตัว $i น้อยกว่า 5 ก็ให้ $i+1 จนกว่า $i จะ =5

ส่วนลูปที่ 2 เช่นเดียวกัน

$j = 1 คือการกำหนดตัวแปร $j เท่ากับ 1  แล้วก็ถ้าเกิด $j <= $i ก็หมายความว่าถ้า สมมติ $j = 1 และ $i =1 ก็ให้ $j+1

echo ก็คือแสดงค่าครับ

*ไม่รู้จะทำให้ยิ่งงงหรือป่าวนะครับ 55555  wanwan004
บันทึกการเข้า
gapgag55
สมุนแก๊งเสียว
*

พลังน้ำใจ: 143
ออฟไลน์ ออฟไลน์

กระทู้: 622



ดูรายละเอียด
« ตอบ #3 เมื่อ: 10 มีนาคม 2015, 06:26:07 »

for แลก ลูปแถว ( ถ้าทำ for สองเสร้จให้ขึ้นบรรทัดใหม่ )
for สอง ปริ้นตัวเลข

เช่น for แลก i = 1 จากนั้นเข้าไปทำ for สอง j <= i ( j เป็น 1 ถ้า j <= 1 ) ให้ปริ้น 1 ออกมา กรณี ( j < = 2 ( ถ้า i = 2 ))  แล้ว j จะปริ้น เลข 1 และ 2 ออกมา  wanwan020
บันทึกการเข้า

dekdoo
สมุนแก๊งเสียว
*

พลังน้ำใจ: 58
ออฟไลน์ ออฟไลน์

กระทู้: 891



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 10 มีนาคม 2015, 10:14:57 »

ผมว่าแบบนี้ง่ายกว่านะครับ ทำงานเร็วกว่าด้วย

$str = '';
for($i=1;$i<=5;$i++) {
   $str.= $i;
   echo $str;
   echo "<br>";
}

อธิบาย
$str = ''; //สร้างตัวแปล $str ให้มีค่าว่าง
for($i=1;$i<=5;$i++) { // loop ค่าตัวแปล $i ให้ถึง 5 ครัง
   $str .= $i; //นำค่า $i ที่บวกค่าแล้วทีละ 1 ไปรวมกับตัวแปล $str ( ด้วยคำสั่ง .= )
   echo $str; //แสดงค่าตัวแปล $str ออกมา
   echo "<br>"; //สั่งให้ขึ้นบรรทัดใหม่ ดดยการแสดงคำสั่ง br ของ html ออกไป
}

**มันละวนลูปจนค่า $i เท่ากับ 5 ถึงจะหยุด (หาก $i น้อยกว่า 5 ให้ทำงานซ้ำและบวกค่าทีละ1 จากคำสั่ง $i++ และเมื่อ $i จะมีค่าเท่ากับ 5 แล้วถึงจะหยุด)
ผลลัพท์ออกมาดังนี้เหมือนกัน
1
12
123
1234
12345
« แก้ไขครั้งสุดท้าย: 10 มีนาคม 2015, 10:20:16 โดย dekdoo » บันทึกการเข้า

Level UP!
สมุนแก๊งเสียว
*

พลังน้ำใจ: 36
ออฟไลน์ ออฟไลน์

กระทู้: 728



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 10 มีนาคม 2015, 10:17:07 »

for เป็นคำสั่ง loop (วนรอบ) จนกว่าจะจบเงื่อนไข (ที่อยู่ในวงเล็บ)

จากตัวอย่างที่ถาม ให้เข้าใจง่ายๆคือ
for แรกเป็นตัวขึ้นบรรทัดใหม่
for ที่สองเป็นตัวแสดงผลตัวเลข

จริงๆอธิบายละเอียดก็ยาวนะครับ 555 แต่ถ้ามองตามที่บอกดีๆจะเห็นภาพ
บันทึกการเข้า

รับเขียนโปรแกรม เขียนเว็บไซต์ ออกแบบระบบ Script บลาๆ ภาษา C#.net MVC , PHP , SQL , MySQL , Jquery , Ajax สนใจ pm ครับ
โทร 085-333-282เจ็ด (18.00-21.00)
ใบ้หวย เก็งหวย เลขเด็ด เลขเด่น อาจารย์ตี๋
seowizard
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 102
ออฟไลน์ ออฟไลน์

กระทู้: 1,119



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 10 มีนาคม 2015, 10:19:22 »

ลูปซ้อนลูป : ลูปแรก วนแถว และ ลูปสอง วนแสดงผลตัวเลขตามจำนวนแถว
บันทึกการเข้า
Level UP!
สมุนแก๊งเสียว
*

พลังน้ำใจ: 36
ออฟไลน์ ออฟไลน์

กระทู้: 728



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 10 มีนาคม 2015, 10:23:40 »

ผมว่าแบบนี้ง่ายกว่านะครับ ทำงานเร็วกว่าด้วย

$str = '';
for($i=1;$i<=5;$i++) {
   $str.= $i;
   echo $str;
   echo "<br>";
}

อธิบาย
$str = ''; //สร้างตัวแปล $str ให้มีค่าว่าง
for($i=1;$i<=5;$i++) { // loop ค่าตัวแปล $i ให้ถึง 5 ครัง
   $str .= $i; //นำค่า $i ที่บวกค่าแล้วทีละ 1 ไปรวมกับตัวแปล $str ( ด้วยคำสั่ง .= )
   echo $str; //แสดงค่าตัวแปล $str ออกมา
   echo "<br>"; //สั่งให้ขึ้นบรรทัดใหม่ ดดยการแสดงคำสั่ง br ของ html ออกไป
}

**มันละวนลูปจนค่า $i เท่ากับ 5 ถึงจะหยุด (หาก $i น้อยกว่า 5 ให้ทำงานซ้ำและบวกค่าทีละ1 จากคำสั่ง $i++ และเมื่อ $i จะมีค่าเท่ากับ 5 แล้วถึงจะหยุด)
ผลลัพท์ออกมาดังนี้เหมือนกัน
1
12
123
1234
12345

เจ๋งดีครับอันนี้ สั้นดี ง่ายดี
บันทึกการเข้า

รับเขียนโปรแกรม เขียนเว็บไซต์ ออกแบบระบบ Script บลาๆ ภาษา C#.net MVC , PHP , SQL , MySQL , Jquery , Ajax สนใจ pm ครับ
โทร 085-333-282เจ็ด (18.00-21.00)
ใบ้หวย เก็งหวย เลขเด็ด เลขเด่น อาจารย์ตี๋
ไม่ใช่ผู้วิเศษ
ก๊วนเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 240



ดูรายละเอียด
« ตอบ #8 เมื่อ: 11 มีนาคม 2015, 21:14:36 »

อ่านแล้วงงมากๆ 555+ ขอบคุณค่ะที่เข้ามาตอบค่ะ   ช่วยอธิบายแบบเสียงพูดได้ก็ดีค่ะ ขอบคุณค่ะ  ต้องสื่อสารทางไหนค่ะ wanwan017
บันทึกการเข้า
หนุกหนาน
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 106
ออฟไลน์ ออฟไลน์

กระทู้: 1,243



ดูรายละเอียด
« ตอบ #9 เมื่อ: 11 มีนาคม 2015, 21:25:23 »

i คือรอบแต่ละรอบ ซึ่งก็คือการกำหนดแต่ละบรรทัด ในที่นี้ มี 5 บรรทัด (i1-i5)
jคือ ค่าที่จะเพิ่มขึ้นเรื่อยๆในแต่ละครั้ง ที่นี้กำหนดให้เพิ่มทีละ 1

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

เป็นแบบนี้ไปเรื่อยๆ จนกว่า i จะถึงค่าที่ตั้งไว้ (ที่นี้ คือ 5)

อันนี้น่าจะเป็นภาษาพูด
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์