1 00:00:00,000 --> 00:00:05,340 2 00:00:05,340 --> 00:00:07,370 >> DOUG LLOYD: ดังนั้นเราได้ ทำมากของการทำงานใน C, 3 00:00:07,370 --> 00:00:09,536 และ C เป็นเย็นจริงๆ ภาษาเพราะมันจะช่วยให้คุณ 4 00:00:09,536 --> 00:00:12,840 ความสามารถในการดำน้ำจริงๆ ในระดับต่ำลงในโปรแกรมของคุณ 5 00:00:12,840 --> 00:00:16,810 เราได้รับที่จะทำสิ่งที่เป็น จริงๆนาทีจัดการ 6 00:00:16,810 --> 00:00:18,800 แต่ละไบต์ของหน่วยความจำ 7 00:00:18,800 --> 00:00:21,420 จำได้ว่าตัวชี้จริงๆ ช่วยให้เรามีความยืดหยุ่นที่ 8 00:00:21,420 --> 00:00:25,260 >> แต่เรามักจะต้องมี ว่าระดับเม็ดละเอียดของรายละเอียด 9 00:00:25,260 --> 00:00:26,820 ในโปรแกรมของเราหรือไม่ 10 00:00:26,820 --> 00:00:28,210 อาจจะไม่ได้ใช่มั้ย? 11 00:00:28,210 --> 00:00:30,376 และถ้าเรากำลังจะมี การออกระหว่างการเป็น 12 00:00:30,376 --> 00:00:32,911 สามารถที่จะทำจริงๆ สิ่งนาทีจริงๆ 13 00:00:32,911 --> 00:00:35,910 สิ่งที่ยิ่งใหญ่ที่เราไม่ต้องคิด เกี่ยวกับเราไม่ได้มีการดำเนินการ 14 00:00:35,910 --> 00:00:40,290 ความคิดเหล่านี้ใหญ่จริงๆถ้า พวกเขากำลังสร้างขึ้นแล้วในสำหรับเรา 15 00:00:40,290 --> 00:00:43,980 โดยทั่วไปสำหรับการสร้างขนาดใหญ่ โปรแกรมหรือโครงการขนาดใหญ่ 16 00:00:43,980 --> 00:00:49,130 เราอาจจะผิดพลาดในด้านข้าง ของการมีภาษาอื่น ๆ สิ่งที่สร้างขึ้นใน 17 00:00:49,130 --> 00:00:51,300 สำหรับเราแทนที่จะต้อง สิ่งที่ระดับต่ำ 18 00:00:51,300 --> 00:00:53,970 และที่ที่ PHP จริงๆมาใน 19 00:00:53,970 --> 00:00:58,200 >> ตอนนี้หนึ่งในเหตุผลที่ ที่เราสอน PHP ใน CS50 20 00:00:58,200 --> 00:01:01,020 ก็คือว่ามันเป็นแรงบันดาลใจอย่างมาก ซีและในความเป็นจริงในความคิดของฉัน 21 00:01:01,020 --> 00:01:05,140 มีจริงๆสอง ภาษาที่รากเหง้า 22 00:01:05,140 --> 00:01:08,200 เป็นเรื่องธรรมดามากในปัจจุบัน 23 00:01:08,200 --> 00:01:10,110 ซีและเสียงกระเพื่อม 24 00:01:10,110 --> 00:01:13,280 และพวกเขากำลังภาษารากเหง้า เพราะการเขียนโปรแกรมที่ทันสมัย​​อื่น ๆ ทุกคน 25 00:01:13,280 --> 00:01:17,380 ภาษาที่ได้มีการพัฒนา ตั้งแต่นั้นมาเป็นแรงบันดาลใจ 26 00:01:17,380 --> 00:01:20,330 โดยหนึ่งหรือ syntactically อื่น ๆ 27 00:01:20,330 --> 00:01:26,160 PHP เป็น syntactically คล้ายกันมาก ไปที่ C ในขณะที่ภาษาเช่นโครงการ 28 00:01:26,160 --> 00:01:27,900 ยกตัวอย่างเช่นที่ คุณอาจเคยได้ยิน 29 00:01:27,900 --> 00:01:32,070 เป็นแรงบันดาลใจอย่างมากจากภาษา เรียกว่าชัดซึ่งเป็นภาษาที่มีอายุมากกว่า 30 00:01:32,070 --> 00:01:34,220 >> ดังนั้นเหตุผลที่เราสอน PHP ใน CS50 คือว่า 31 00:01:34,220 --> 00:01:37,730 โดยรู้ C เป็นพื้นฐาน ที่คุณทำที่จุดนี้ 32 00:01:37,730 --> 00:01:41,280 ยกขึ้น PHP ซึ่งจะช่วยให้คุณ ความสามารถในการทำสิ่งที่ระดับที่สูงมาก 33 00:01:41,280 --> 00:01:44,710 กว่า C ไม่เป็นไม่ได้ ที่มากของอุปสรรค์, 34 00:01:44,710 --> 00:01:48,230 เพราะคุณมีอยู่แล้ว แนวคิดพื้นฐานของไวยากรณ์ 35 00:01:48,230 --> 00:01:50,590 C ได้รับรอบเกือบ 45 ปีที่จุดนี้ 36 00:01:50,590 --> 00:01:52,780 PHP ได้รับรอบประมาณ 20 ปี 37 00:01:52,780 --> 00:01:57,080 และใน 25 ปี ในระหว่างการเขียนโปรแกรม 38 00:01:57,080 --> 00:02:01,540 ระบุว่าพวกเขาจะมาก ค่อนข้างมีความสามารถในระดับที่สูงขึ้น 39 00:02:01,540 --> 00:02:04,970 และความผิดพลาดและการต่อสู้ ของ 20 ปีในระหว่าง 40 00:02:04,970 --> 00:02:08,210 นำไปสู่​​การ PHP และภาษาที่ทันสมัย​​อื่น ๆ 41 00:02:08,210 --> 00:02:11,039 >> ของ PHP ทางเลือกที่ดีของ ภาษาสำหรับซอฟแวร์ 42 00:02:11,039 --> 00:02:14,042 ที่ allow-- สำหรับ ซอฟแวร์ที่คุณ that-- 43 00:02:14,042 --> 00:02:16,250 ต้องทำในสิ่งที่ C มีความซับซ้อนจริง 44 00:02:16,250 --> 00:02:18,480 ดังนั้นตัวอย่างเช่นการทำงาน กับสตริงใน C 45 00:02:18,480 --> 00:02:21,709 มีความซับซ้อนมากเพราะ ที่เรารู้ว่าสตริงใน C 46 00:02:21,709 --> 00:02:23,250 มีจริงๆเพียงแค่อาร์เรย์ของตัวละคร 47 00:02:23,250 --> 00:02:25,230 มันไม่ได้เป็นในตัวชนิดข้อมูล 48 00:02:25,230 --> 00:02:28,220 หรือบางทีอาจจะมากขึ้นพื้นฐาน สิ่งที่เราไม่ได้ครอบคลุมใน C, 49 00:02:28,220 --> 00:02:30,360 สิ่งที่ถ้าคุณต้องทำ บางเครือข่ายคอมพิวเตอร์? 50 00:02:30,360 --> 00:02:30,860 ทั้งหมดใช่มั้ย? 51 00:02:30,860 --> 00:02:34,920 >> ซีมีความสามารถในการทำ แต่ก็เพื่อให้ ความลับและอื่น ๆ ยากที่จะทำจริง 52 00:02:34,920 --> 00:02:37,580 มันจะไม่ดีถ้า ภาษามีในตัววิธีที่ง่าย 53 00:02:37,580 --> 00:02:38,910 ที่จะใช้เครือข่าย? 54 00:02:38,910 --> 00:02:43,420 และ PHP เป็นภาษาที่ทำให้นั้น หรืออำนวยความสะดวกที่ค่อนข้างน้อยมาก 55 00:02:43,420 --> 00:02:47,740 ที่ผมกล่าวว่า PHP เป็นแรงบันดาลใจอย่างหนักมาก โดยซีไวยากรณ์จะคล้ายกันมาก 56 00:02:47,740 --> 00:02:51,760 และดังนั้นจึงหวังว่าจะทำให้ การเปลี่ยนแปลงจากที่อื่น ๆ 57 00:02:51,760 --> 00:02:54,710 นิด ๆ หน่อย ๆ นุ่มกว่าบาง ภาษาอื่น ๆ ที่อาจจะมี 58 00:02:54,710 --> 00:02:58,800 >> ที่จะเริ่มต้นการเขียน PHP, เพียงแค่เปิดขึ้น ไฟล์ที่มีนามสกุลไฟล์ .php 59 00:02:58,800 --> 00:03:00,670 เทคนิคนี้ไม่ได้ จำเป็นต้องใช้จริง 60 00:03:00,670 --> 00:03:04,495 แต่ถ้าคุณต้องการสิ่งที่ต้องการไวยากรณ์ ไฮไลต์ใน IDE ดังนั้นประเภทที่ 61 00:03:04,495 --> 00:03:07,620 ชื่อหรือชื่อตัวแปรฟังก์ชั่น คุณรู้ว่าคำหลักของภาษา 62 00:03:07,620 --> 00:03:10,090 เป็นไฮไลต์ใน สีที่เฉพาะเจาะจงคุณโดยทั่วไป 63 00:03:10,090 --> 00:03:14,020 ต้องการตั้งชื่อไฟล์ของคุณด้วย นามสกุลไฟล์โดยเฉพาะอย่างยิ่ง 64 00:03:14,020 --> 00:03:18,430 ดังนั้นเราจึงได้ตั้งชื่อไฟล์ของเรากับ .php ขยาย แต่แล้วยังมี PHP, 65 00:03:18,430 --> 00:03:23,310 ทั้งหมดโค้ด PHP ที่เราเขียนในการที่ ไฟล์ที่จะต้องมีการปิดล้อมใน PHP เหล่านี้ 66 00:03:23,310 --> 00:03:25,190 คั่นที่เราเห็น ที่นี่บนหน้าจอ 67 00:03:25,190 --> 00:03:27,910 วงเล็บมุม php? ที่จะเริ่มต้น 68 00:03:27,910 --> 00:03:30,860 จากนั้นเราเขียนทั้งหมดของ PHP ของเรา รหัสที่เราต้องการในระหว่าง 69 00:03:30,860 --> 00:03:32,260 และแล้ว? 70 00:03:32,260 --> 00:03:34,710 วงเล็บมุมที่จะปิด 71 00:03:34,710 --> 00:03:37,170 >> ถ้าเราไม่ทำเช่นนี้แล้ว สิ่งที่จะเกิดขึ้น? 72 00:03:37,170 --> 00:03:38,170 มันจะไม่ผิดพลาด 73 00:03:38,170 --> 00:03:39,410 มันไม่ได้ไป จริงๆทำลายโปรแกรมของเรา 74 00:03:39,410 --> 00:03:41,440 แต่ก็ไม่ได้ไปมี ผลที่เราต้องการ 75 00:03:41,440 --> 00:03:44,540 สิ่งที่จะเกิดขึ้นจริงๆคือ ว่าเมื่อเราพยายามเรียกใช้โปรแกรมนี้ 76 00:03:44,540 --> 00:03:50,330 ทุกอย่างไม่ได้อยู่ระหว่างผู้ที่คั่น จะถูกพิมพ์ออกมาคำต่อคำ 77 00:03:50,330 --> 00:03:52,210 มันไม่ได้ไป จริงรันโค้ดที่ 78 00:03:52,210 --> 00:03:56,010 มันเป็นไปได้เพียงแค่ พิมพ์ออกมาคำต่อคำ 79 00:03:56,010 --> 00:03:57,320 >> ตอนนี้ทำไมเป็นกรณี? 80 00:03:57,320 --> 00:04:00,416 ดังนั้นซีเป็นสิ่งที่เรียกว่า เป็นภาษาที่รวบรวม 81 00:04:00,416 --> 00:04:03,040 คุณอาจคุ้นเคยกับ ขั้นตอนในการทำโปรแกรมของคุณ 82 00:04:03,040 --> 00:04:07,820 เปลี่ยนไฟล์ .c และไฟล์ .h เป็นปฏิบัติการเดียวกับการแต่งหน้า, 83 00:04:07,820 --> 00:04:11,130 โดยเฉพาะอย่างยิ่งการใช้ เสียงดังกราวเป็นคอมไพเลอร์ของเรา 84 00:04:11,130 --> 00:04:13,030 PHP, แต่ไม่ได้ มีเทียบเท่านี้ 85 00:04:13,030 --> 00:04:15,600 PHP เป็นสิ่งที่เรียกว่า แปลภาษา 86 00:04:15,600 --> 00:04:16,760 และสิ่งที่หมายความว่า? 87 00:04:16,760 --> 00:04:20,680 >> ดีก็หมายความว่าเราไม่ได้มีการแปลง รหัสแหล่งที่มาของเราที่จะศูนย์และคน 88 00:04:20,680 --> 00:04:21,470 ล่วงหน้า 89 00:04:21,470 --> 00:04:23,900 แต่มีโปรแกรม ซึ่งจะเรียกว่า 90 00:04:23,900 --> 00:04:29,771 PHP, ที่เข้าใจ PHP และ การเรียงลำดับของสามารถทำให้มันได้ทันที 91 00:04:29,771 --> 00:04:32,520 นั่นคือไม่ได้จริงๆที่ถูกต้องว่า แต่มันเป็นความคล้ายคลึงที่ดีงาม 92 00:04:32,520 --> 00:04:33,760 สิ่งที่เกิดขึ้น 93 00:04:33,760 --> 00:04:37,230 มันแปลความหมายเหล่านั้น เลขศูนย์และคนที่เกี่ยวกับการบิน 94 00:04:37,230 --> 00:04:40,160 และดังนั้นถ้ามันไม่ทราบ วิธีการที่จะดำเนินการบางสิ่งบางอย่าง 95 00:04:40,160 --> 00:04:42,800 หากไม่ทราบวิธีการ กระบวนการ PHP, คุณอาจ 96 00:04:42,800 --> 00:04:44,680 ต้องการที่จะนำข้อความที่อยู่ในนั้นใช่มั้ย? 97 00:04:44,680 --> 00:04:48,960 >> คุณอาจต้องการที่จะนำรหัสใน มีแม้จะไม่ได้อยู่ระหว่าง PHP-- 98 00:04:48,960 --> 00:04:50,035 ตัวคั่น PHP 99 00:04:50,035 --> 00:04:51,910 But-- จึงไม่ได้ไป จะลบมันสำหรับคุณ 100 00:04:51,910 --> 00:04:53,576 มันเป็นเพียงแค่ไปที่พื้นทิ้งมัน 101 00:04:53,576 --> 00:04:55,550 ดังนั้นมันจะพิมพ์ ออกไปยังหน้าจอ 102 00:04:55,550 --> 00:04:57,150 >> นี้ดูเหมือนว่ามันเป็นเรื่องที่ไม่ดี สิ่ง แต่ที่จริงมันเป็น 103 00:04:57,150 --> 00:04:58,220 จะเป็นจริงๆ สิ่งที่ดีที่สุดเท่าที่เราจะ 104 00:04:58,220 --> 00:05:00,390 เห็นเมื่อเราพูดคุยเกี่ยวกับ PHP การพัฒนาเว็บ 105 00:05:00,390 --> 00:05:04,010 เพราะมันหมายถึงเราสามารถทำได้ กระจาย PHP และ HTML 106 00:05:04,010 --> 00:05:06,640 เราสามารถใช้ร่วมกันเพื่อให้พวกเขา สร้างหน้าเว็บแบบไดนามิกมากขึ้น 107 00:05:06,640 --> 00:05:10,650 แต่เพิ่มเติมว่าใน วิดีโอในการพัฒนาเว็บ PHP 108 00:05:10,650 --> 00:05:12,021 >> ดังนั้นสิ่งที่เป็นไวยากรณ์ของ PHP? 109 00:05:12,021 --> 00:05:13,520 นั่นคือสิ่งที่วิดีโอนี้เป็นข้อมูลเกี่ยวกับ 110 00:05:13,520 --> 00:05:14,850 พูดคุยเกี่ยวกับมัน 111 00:05:14,850 --> 00:05:16,490 >> ดังนั้นการเริ่มต้นตัวแปร 112 00:05:16,490 --> 00:05:18,030 ตัวแปร PHP อยู่ 113 00:05:18,030 --> 00:05:20,067 มีเพียงสองขนาดใหญ่ แตกต่างจากซี 114 00:05:20,067 --> 00:05:21,900 ที่แรกก็คือว่ามี ไม่ระบุประเภท 115 00:05:21,900 --> 00:05:24,245 เราไม่ได้มีการพูด int, ถ่านลอยทุกสิ่งที่ 116 00:05:24,245 --> 00:05:25,620 เราไม่จำเป็นต้องทำอย่างนั้นอีกต่อไป 117 00:05:25,620 --> 00:05:26,810 PHP เป็นภาษาที่ทันสมัย 118 00:05:26,810 --> 00:05:28,910 มันสามารถคิดออกว่าคุณ พยายามที่จะทำหรือทำสิ่งที่ดีที่สุด 119 00:05:28,910 --> 00:05:30,451 คิดว่าเป็นสิ่งที่คุณกำลังพยายามที่จะทำ 120 00:05:30,451 --> 00:05:31,700 เพื่อให้เป็นที่ดีงาม 121 00:05:31,700 --> 00:05:35,330 >> สิ่งอื่น ๆ ที่ตัวแปรทั้งหมด ชื่อต้องเริ่มต้นด้วยเครื่องหมายดอลลาร์ 122 00:05:35,330 --> 00:05:36,940 นั่นเป็นเพียงแค่สิ่งที่จะได้รับใช้ 123 00:05:36,940 --> 00:05:39,496 มันเป็นเพียงเล็กน้อยแปลกเพราะ ก็เพื่อให้ PHP สามารถเข้าใจ 124 00:05:39,496 --> 00:05:40,870 สิ่งที่เป็นตัวแปรและสิ่งที่ไม่ 125 00:05:40,870 --> 00:05:43,340 ดังนั้นทุกชื่อตัวแปร เริ่มต้นด้วยเครื่องหมายดอลลาร์ 126 00:05:43,340 --> 00:05:46,884 ดังนั้นใน C เราอาจจะพูดอะไรบางอย่าง เช่นนี้ int x = 54 127 00:05:46,884 --> 00:05:48,550 เราไม่จำเป็นต้องทำอย่างนั้นอีกต่อไปใน PHP 128 00:05:48,550 --> 00:05:52,540 เราก็สามารถพูดได้ $ x = 54 129 00:05:52,540 --> 00:05:55,920 และเราอาจจะบอกว่ายกตัวอย่างเช่นใน C, ถ้าเราได้ปอนด์รวมถึง CS50 .h 130 00:05:55,920 --> 00:06:00,314 ไฟล์ส่วนหัวเราอาจจะบอกว่า วลีสตริง = "นี่คือ CS50." 131 00:06:00,314 --> 00:06:01,980 เราไม่จำเป็นต้องทำอย่างนั้นใน PHP แม้ว่า 132 00:06:01,980 --> 00:06:04,865 เราก็สามารถพูดได้ $ วลี = "นี่คือ CS50." 133 00:06:04,865 --> 00:06:08,760 และในความเป็นจริงสตริงอยู่ในขณะนี้ ในตัวชนิดข้อมูลใน PHP 134 00:06:08,760 --> 00:06:10,950 หรือมากกว่า PHP เข้าใจ สิ่งที่เป็นสตริง 135 00:06:10,950 --> 00:06:15,612 มันแยกออกจากอาร์เรย์ ของตัวละครเหมือนเป็นใน C. 136 00:06:15,612 --> 00:06:17,570 ทั้งหมดที่คุณชื่นชอบ งบเงื่อนไขจาก C 137 00:06:17,570 --> 00:06:19,520 ยังคงมีอยู่เพื่อให้คุณใช้ 138 00:06:19,520 --> 00:06:21,140 จึงไม่มีการเปลี่ยนแปลงขนาดใหญ่มี 139 00:06:21,140 --> 00:06:23,400 เราสามารถ say-- เราสามารถมี ถ้างบเช่นนี้ 140 00:06:23,400 --> 00:06:28,210 ถ้า y ที่ $ 43 หรือ $ Z = 15 141 00:06:28,210 --> 00:06:29,690 ดังนั้นที่ตรงไปตรงสวย 142 00:06:29,690 --> 00:06:31,980 เราสามารถมีถ้าและอื่น ๆ 143 00:06:31,980 --> 00:06:34,210 เราสามารถมีถ้าและอื่นถ้า 144 00:06:34,210 --> 00:06:36,430 >> และแจ้งให้ทราบบางสิ่งบางอย่าง สวยดีนี่และนี้ 145 00:06:36,430 --> 00:06:39,620 เป็นประเภทของหนึ่งในบรรดา ข้อดีของ PHP เมื่อเทียบกับซีแจ้งให้ทราบล่วงหน้า 146 00:06:39,620 --> 00:06:41,510 สิ่งที่ฟังก์ชั่นที่เราไม่ได้ใช้ที่นี่? 147 00:06:41,510 --> 00:06:47,737 เรากำลังใช้ == เพื่อเปรียบเทียบ ตัวแปรชื่อ $ เพื่อสตริง 148 00:06:47,737 --> 00:06:49,070 เราไม่สามารถดำเนินการได้ใน C ใช่มั้ย? 149 00:06:49,070 --> 00:06:53,200 เรามีการใช้ฟังก์ชั่นที่เรียกว่า StrComp หรือ StrEndComp หรือ 150 00:06:53,200 --> 00:06:54,840 ญาติที่เกี่ยวข้อง 151 00:06:54,840 --> 00:06:56,980 >> และอื่น ๆ แล้วเราเห็นข้อดีเหล่านี้ 152 00:06:56,980 --> 00:07:00,930 เราไม่ต้องทำอะไร โง่หรือบางทีอาจจะ unintuitive 153 00:07:00,930 --> 00:07:03,540 ขณะที่เรียกใช้ฟังก์ชันที่เรียกว่า StrComp ถ้าฉันเพียงแค่ต้องการที่จะทดสอบ 154 00:07:03,540 --> 00:07:05,237 ไม่ว่าจะเป็นค่าเท่ากับสตริง 155 00:07:05,237 --> 00:07:07,820 ฉันเพียงแค่สามารถใช้เท่ากับเท่าเทียม เหมือนฉันสามารถทำอะไรอย่างอื่น 156 00:07:07,820 --> 00:07:09,560 เพื่อให้มีการพิจารณาเป็นพิเศษ 157 00:07:09,560 --> 00:07:13,350 >> บางครั้งโดยวิธีการที่คุณอาจ เห็นอื่นถ้าเป็นคำเดียว, elseif 158 00:07:13,350 --> 00:07:14,910 และที่ตกลงใน PHP ได้เป็นอย่างดี 159 00:07:14,910 --> 00:07:17,020 ดังนั้นบางครั้งคุณอาจเห็นว่า 160 00:07:17,020 --> 00:07:17,790 มันไม่ได้พิมพ์ผิด 161 00:07:17,790 --> 00:07:21,830 PHP จริงเข้าใจ elseif 162 00:07:21,830 --> 00:07:23,980 ผมไม่ทราบว่าทำไมพวกเขา ตัดสินใจที่จะใช้นั้น 163 00:07:23,980 --> 00:07:28,220 แต่ที่เราได้เห็นหลายต่อหลายครั้ง ตลอดวิดีโอของเราเพื่อให้ห่างไกล 164 00:07:28,220 --> 00:07:30,460 โปรแกรมเมอร์ที่เรารักมันถ้า เราสามารถทำสิ่งได้อย่างรวดเร็ว 165 00:07:30,460 --> 00:07:33,660 ดังนั้นการกำจัดของพื้นที่ที่ เห็นได้ชัดว่าเป็นประโยชน์ใหญ่ 166 00:07:33,660 --> 00:07:34,800 >> เพื่อที่ว่าถ้า elseif 167 00:07:34,800 --> 00:07:37,540 เรายังมีผู้ประกอบการที่ประกอบไปด้วย, จำคำถามลำไส้ใหญ่เครื่องหมาย 168 00:07:37,540 --> 00:07:43,262 สำหรับรูปแบบสั้นจริงๆถ้าอื่น หรือมีเงื่อนไขแตกแขนง 169 00:07:43,262 --> 00:07:45,470 และเห็นได้ชัดในเรื่องนี้ สิ่งที่เรากำลังพยายามที่จะทำที่นี่ 170 00:07:45,470 --> 00:07:49,720 มีการกำหนดตัวแปร $ จดหมายจริงหรือเท็จ 171 00:07:49,720 --> 00:07:54,110 ขึ้นอยู่กับว่า $ var เป็นตัวอักษร 172 00:07:54,110 --> 00:07:57,320 ดังนั้นนี่คือสวยคล้ายกับ isalpha ที่เราคุ้นเคยกับการจากซี 173 00:07:57,320 --> 00:07:59,010 นี่คือการจัดเรียงของเทียบเท่าของ PHP 174 00:07:59,010 --> 00:08:01,550 ฟังก์ชั่นที่เห็นได้ชัดคือ เรียกว่า ctype_alpha, 175 00:08:01,550 --> 00:08:03,450 แต่นั่นคือวิธีที่เราทำมันใน PHP 176 00:08:03,450 --> 00:08:08,560 ดังนั้นทั้งหมดนี้เป็นไปได้คือถ้า $ var เป็นตัวอักษรตัวอักษร $ เป็นความจริง 177 00:08:08,560 --> 00:08:13,820 ถ้า $ var ไม่ได้เป็นตัวอักษร $ จดหมายเป็นเท็จ 178 00:08:13,820 --> 00:08:15,820 >> เรายังมีสวิทช์ยังคงงบ 179 00:08:15,820 --> 00:08:17,870 เราจำได้ผู้ที่มาจาก C เช่นกัน 180 00:08:17,870 --> 00:08:22,480 ที่ด้านบนมีมากว่าเป็นวิธีที่เราทำ สิ่งที่ต้องการได้รับหรือได้รับ int สตริง 181 00:08:22,480 --> 00:08:23,845 ดังนั้น PHP ได้ว่าสร้างขึ้นใน 182 00:08:23,845 --> 00:08:25,470 เราไม่จำเป็นต้องห้องสมุด CS50 อีกต่อไป 183 00:08:25,470 --> 00:08:27,237 เราก็สามารถใช้ฟังก์ชั่นที่ ReadLine 184 00:08:27,237 --> 00:08:29,820 สิ่งที่จะทำคือการพิมพ์ ออกข้อความ "รัฐของคุณ 185 00:08:29,820 --> 00:08:33,820 โปรด "และจากนั้นกระพริบพร้อมรับคำ รอคอยสำหรับผู้ใช้ที่จะใส่ 186 00:08:33,820 --> 00:08:34,739 ข้อมูลบางอย่าง. 187 00:08:34,739 --> 00:08:36,530 ตอนนี้สังเกตเห็นสิ่งอื่น เราสามารถทำอะไรกับสวิทช์ 188 00:08:36,530 --> 00:08:39,105 หากคุณเคยใช้มาก่อน คุณอาจจำได้ว่าสวิทช์ 189 00:08:39,105 --> 00:08:44,960 จะถูก จำกัด สวยมากจำนวนเต็มและ ตัวอักษร แต่ตอนนี้เราสามารถใช้สตริง 190 00:08:44,960 --> 00:08:50,190 และในความเป็นจริงคำสั่งสวิทช์ ใน PHP ไม่น้อยที่มีความยืดหยุ่นมากขึ้น 191 00:08:50,190 --> 00:08:54,880 กว่าญาติจากซี 192 00:08:54,880 --> 00:08:55,380 ลูป 193 00:08:55,380 --> 00:08:58,130 เช่นเดียวกับเงื่อนไขทั้งหมด รายการโปรดเก่าของคุณยังคงมี 194 00:08:58,130 --> 00:09:00,740 ในขณะที่เรามีลูปที่นับ 1-100 ในกรณีนี้ 195 00:09:00,740 --> 00:09:03,940 เราได้ทำในขณะที่ลูป ที่นับ 1-100, 196 00:09:03,940 --> 00:09:06,200 และเรามีสำหรับลูป นับว่า 1-100 197 00:09:06,200 --> 00:09:07,220 ดังนั้นไม่ก้าวกระโดดครั้งใหญ่ที่นั่น 198 00:09:07,220 --> 00:09:09,360 ไวยากรณ์สวย มากเหมือนกัน 199 00:09:09,360 --> 00:09:11,760 ยกเว้นตอนนี้เรากำลังใช้ ดอลล่าตัวแปรสัญญาณแทน 200 00:09:11,760 --> 00:09:17,260 การประกาศตัวแปรจำนวนเต็มหรือ สิ่งที่ต้องการสำหรับเคาน์เตอร์ของเรา 201 00:09:17,260 --> 00:09:20,090 >> นี่คือสิ่งที่ได้รับ มากขึ้นกว่า C แม้ว่า 202 00:09:20,090 --> 00:09:21,020 อาร์เรย์ 203 00:09:21,020 --> 00:09:23,020 ดังนั้นจำตอนที่เราอยู่ พูดคุยเกี่ยวกับ C ในการสั่งซื้อ 204 00:09:23,020 --> 00:09:25,560 สำหรับเราที่จะเติบโตและหดตัว ชุดของข้อมูล 205 00:09:25,560 --> 00:09:28,310 เราจำเป็นต้องเรียงลำดับของการเริ่มต้น กับความคิดของรายการที่เชื่อมโยงนี้ 206 00:09:28,310 --> 00:09:30,780 เพราะอาร์เรย์ C ได้รับการแก้ไขในขนาด 207 00:09:30,780 --> 00:09:31,800 เราไม่สามารถหดตัวพวกเขา 208 00:09:31,800 --> 00:09:32,930 เราไม่สามารถเติบโตพวกเขา 209 00:09:32,930 --> 00:09:36,074 เราต้องจัดสรรหน่วยความจำ และทำบ้าทั้งหมดนี้ 210 00:09:36,074 --> 00:09:38,490 หรือใช้รายการที่เชื่อมโยงซึ่ง ใช้เวลาไม่น้อยพื้นที่มากขึ้น 211 00:09:38,490 --> 00:09:41,590 แต่ใน PHP อาร์เรย์มี ไม่ได้รับการแก้ไขในขนาดอีกต่อไป 212 00:09:41,590 --> 00:09:43,240 พวกเขาสามารถเติบโตและพวกเขาสามารถหด 213 00:09:43,240 --> 00:09:46,660 ดังนั้นอีกครั้งเหล่านี้ 20 ปีที่มีอยู่ ระหว่างรุ่นแรกของซี 214 00:09:46,660 --> 00:09:49,440 และการเปิดตัวครั้งแรก PHP, เราตัดสินใจว่าคุณรู้ว่า 215 00:09:49,440 --> 00:09:51,670 มันจะดีจริงๆ ถ้าเราสามารถทำเช่นนี้ 216 00:09:51,670 --> 00:09:54,100 และเพื่อให้เราดำเนินการนี​​้ 217 00:09:54,100 --> 00:09:58,040 >> ดังนั้นอาร์เรย์ PHP จะไม่ได้รับการแก้ไขใน ขนาดและเพราะ PHP ไม่ได้จริงๆ 218 00:09:58,040 --> 00:10:03,090 มีโปรแกรมเมอร์ด้านหน้า ความคิดของประเภท 219 00:10:03,090 --> 00:10:05,110 เราสามารถผสมชนิดข้อมูล ในอาร์เรย์ของเรามากเกินไป 220 00:10:05,110 --> 00:10:08,100 ดังนั้นเราจึงไม่ได้มีการใช้งานทั้งหมด จำนวนเต็มหรือทุกจุดลอย 221 00:10:08,100 --> 00:10:12,826 เราสามารถมีส่วนผสมของทั้งหมด ชนิดที่แตกต่างกันในแถวเดียว 222 00:10:12,826 --> 00:10:14,700 ประกาศอาร์เรย์คือ ตรงไปตรงสวย 223 00:10:14,700 --> 00:10:16,116 ก็เช่นเดียวกับตัวแปรอื่น ๆ 224 00:10:16,116 --> 00:10:20,020 $ nums = array (1, 2, 3, 4) อาร์เรย์เป็นฟังก์ชั่น 225 00:10:20,020 --> 00:10:22,760 ที่สร้างขึ้นใน PHP ที่ จะสร้างอาร์เรย์สำหรับคุณ 226 00:10:22,760 --> 00:10:28,315 นี้จะสร้างอาร์เรย์ของสี่ค่าที่ ตัวเลขในกรณีนี้เรียกว่า $ nums 227 00:10:28,315 --> 00:10:29,940 และมีมากกว่าหนึ่งวิธีที่จะทำมัน 228 00:10:29,940 --> 00:10:32,420 และเรากำลังจะไป เห็นนี้เป็นจำนวนมากใน PHP 229 00:10:32,420 --> 00:10:36,380 PHP ได้รับการพัฒนาที่แตกต่างกันโดยมาก ผู้คนและเติบโตและเติบโตและเติบโต 230 00:10:36,380 --> 00:10:40,050 มักจะมีไม่ได้เป็นเพียงสองหรือ สามวิธีที่จะทำบางสิ่งบางอย่างใน PHP 231 00:10:40,050 --> 00:10:42,170 มักจะมีเช่น 10 หรือ 20 232 00:10:42,170 --> 00:10:45,300 นี่เป็นเพียงอีกหนึ่งที่พบบ่อย วิธีการที่จะประกาศอาร์เรย์ 233 00:10:45,300 --> 00:10:48,310 $ nums = วงเล็บตารางที่ 1, 2, 3, 4 234 00:10:48,310 --> 00:10:53,170 ดังนั้นนี่คือการจัดเรียงของที่คล้ายกับมุมของ C br-- สัญกรณ์วงเล็บปีกกาค่อนข้าง $ - 235 00:10:53,170 --> 00:10:58,525 หรือมันจะเป็น int nums ตาราง วงเล็บวงเล็บปีกกาเท่ากับ 1, 2, 3, 4 236 00:10:58,525 --> 00:11:02,710 ใน PHP มัน $ nums = ตาราง วงเล็บ 1, 2, 3, 4 237 00:11:02,710 --> 00:11:08,920 แต่ทั้งสองตัวอย่างเหล่านี้ที่นี่ให้ฉัน อาร์เรย์ของจำนวนเต็มสี่ในกรณีนี้ 238 00:11:08,920 --> 00:11:10,920 >> เกิดอะไรขึ้นถ้าผมต้องการที่จะตรึงบางสิ่งบางอย่างในตอนนี้หรือไม่ 239 00:11:10,920 --> 00:11:14,760 ดีฉันก็สามารถพูด $ nums 4 ซึ่ง อีกครั้งเราก็ยังคงนับจาก 0 ที่นี่ 240 00:11:14,760 --> 00:11:17,800 ใน PHP จะเป็นที่ห้า องค์ประกอบของอาร์เรย์ 241 00:11:17,800 --> 00:11:18,990 ฉันสามารถพูดได้ว่า 242 00:11:18,990 --> 00:11:22,860 ฉันจะไม่ต้องทนทุกข์ทรมาน seg ความผิดเพราะอาเรย์ของฉันเป็นเพียง 243 00:11:22,860 --> 00:11:24,337 จะเติบโตเพื่อรองรับว่า 244 00:11:24,337 --> 00:11:25,420 นั่นคือสวยดีใช่มั้ย? 245 00:11:25,420 --> 00:11:28,400 และในความเป็นจริงผมไม่จำเป็นที่จะต้อง ระบุที่ฉันต้องการที่จะนำมัน 246 00:11:28,400 --> 00:11:31,220 ฉันสามารถพูดแบบนี้และเพียงแค่ ตะปูมันขวาไปท้ายที่สุด 247 00:11:31,220 --> 00:11:34,099 หรือที่ฉันสามารถทำได้แม้เพียงแค่ พูด $ nums 20 หรือ 1000 248 00:11:34,099 --> 00:11:35,140 มันไม่สำคัญว่าจริงๆ 249 00:11:35,140 --> 00:11:38,330 มันยังคงเป็นเพียงการไป ตะปูมันขวาบนไปที่สิ้นสุด 250 00:11:38,330 --> 00:11:41,490 >> ดังนั้นผมจึงสามารถเติบโตและ as-- เรา จะไม่ครอบคลุมในที่นี่ 251 00:11:41,490 --> 00:11:45,360 แต่ฉันสามารถประกบกันหรือแถบ องค์ประกอบจากอาร์เรย์เช่นกัน 252 00:11:45,360 --> 00:11:50,064 และอาร์เรย์จะหดตัวเพื่อรองรับ ว่าพื้นที่ตอนนี้หายไปหรือเปล่า 253 00:11:50,064 --> 00:11:52,230 ไม่มีทางที่จะตรึงผู้อื่น บางสิ่งบางอย่างลงบนอาร์เรย์ 254 00:11:52,230 --> 00:11:54,330 ซึ่งเป็นฟังก์ชั่นที่เรียกว่า array_push 255 00:11:54,330 --> 00:11:57,860 ดังนั้นอีกครั้งเพียงแค่ความคิดนี้ของการเป็น สามารถที่จะทำสิ่งที่แตกต่างกันหลายวิธี 256 00:11:57,860 --> 00:12:01,950 ดังนั้นเราจึงได้เห็นสามวิธีที่แตกต่างกันในขณะนี้ ที่จะตรึงองค์ประกอบอื่นบนอาร์เรย์ 257 00:12:01,950 --> 00:12:06,900 ดังนั้นนี้จะเพิ่มองค์ประกอบอื่น ที่ส่วนท้ายของอาร์เรย์ $ nums 258 00:12:06,900 --> 00:12:08,340 และเราสามารถผสมขึ้นชนิดข้อมูลของเรา 259 00:12:08,340 --> 00:12:13,110 ดังนั้นผมจึงอาจมีอาร์เรย์ของไม่ได้ 1, 2, 3, 4, 1 แต่จริง, 3, 4, 260 00:12:13,110 --> 00:12:16,420 ที่จริงเป็นแบบบูลแล้ว ถ้าผมต้องการที่จะตรึงบนองค์ประกอบอื่น 261 00:12:16,420 --> 00:12:20,860 ไปยังอาร์เรย์ที่อาจสตริง สตริง "ห้า" ฉันจะทำอย่างนั้น 262 00:12:20,860 --> 00:12:26,110 และตอนนี้ฉันจะอาร์เรย์ เป็น 1, ความจริง, 3, 4, ห้า 263 00:12:26,110 --> 00:12:28,640 ห้าคำที่ไม่เป็นจำนวนเต็ม 5 264 00:12:28,640 --> 00:12:31,270 ดังนั้นความยืดหยุ่นมากมี 265 00:12:31,270 --> 00:12:33,290 >> ได้รับความยืดหยุ่น ที่ดียิ่งขึ้นแม้ว่า 266 00:12:33,290 --> 00:12:37,530 เพราะ PHP มีการสนับสนุนสำหรับบางสิ่งบางอย่าง เรียกว่าอาเรย์ 267 00:12:37,530 --> 00:12:40,660 และเราได้พูดคุยการจัดเรียงของราง เกี่ยวกับการเชื่อมโยงอาร์เรย์ใน C 268 00:12:40,660 --> 00:12:44,740 ในบริบทของตารางแฮชเพราะ สิ่งที่เชื่อมโยงอาร์เรย์เป็นจริงทั้งหมด 269 00:12:44,740 --> 00:12:48,950 เกี่ยวกับมีการทำที่สำคัญ แมปคู่ค่า 270 00:12:48,950 --> 00:12:53,410 และในกรณีนี้ถ้า keys-- เราคุ้นเคยกับอาร์เรย์จากซี 271 00:12:53,410 --> 00:12:55,440 ปุ่มตัวเลขดัชนี 272 00:12:55,440 --> 00:12:57,530 0, 1, 2, 3 273 00:12:57,530 --> 00:13:03,070 และค่านิยมเป็นสิ่งที่เราพบว่า อาร์เรย์ 0, อาร์เรย์ 1, 2 อาร์เรย์และอื่น ๆ 274 00:13:03,070 --> 00:13:06,310 ดังนั้นกุญแจที่มีดัชนี และค่านิยมที่มี 275 00:13:06,310 --> 00:13:10,060 สิ่งที่อยู่ในสถานที่อาร์เรย์ที่ ระบุโดยดัชนีที่ 276 00:13:10,060 --> 00:13:15,130 >> แต่ใน PHP, เราไม่ได้มีการทำเช่นนี้ ความคิดของอาร์เรย์ 0, อาร์เรย์ 1, 2 อาร์เรย์ 277 00:13:15,130 --> 00:13:15,830 อีกต่อไป 278 00:13:15,830 --> 00:13:21,025 ตอนนี้เราสามารถใช้คำพูดที่เกิดขึ้นจริง เพื่อแมกุญแจค่า 279 00:13:21,025 --> 00:13:22,650 และดังนั้นผมจึงสามารถพูดอะไรเช่นนี้ 280 00:13:22,650 --> 00:13:26,710 ฉันจะสร้างอาร์เรย์ที่ใช้ ไวยากรณ์วงเล็บตารางดังต่อไปนี้ 281 00:13:26,710 --> 00:13:30,685 $ พิซซ่า = วงเล็บเหลี่ยม "ชีส" แล้ว 282 00:13:30,685 --> 00:13:37,210 การเรียงลำดับของสัญกรณ์ลูกศรคู่นี้ 8.99 "ไส้กรอก" ลูกศร 10.99-- 9.99 283 00:13:37,210 --> 00:13:37,880 เป็นต้น 284 00:13:37,880 --> 00:13:39,060 ดังนั้นสิ่งที่เกิดขึ้นที่นี่? 285 00:13:39,060 --> 00:13:41,040 สิ่งที่ฉันทำจริง? 286 00:13:41,040 --> 00:13:43,990 ฉันสร้างแมปคู่ค่าคีย์ 287 00:13:43,990 --> 00:13:49,060 ดังนั้นแทนที่จะพูดว่ายกตัวอย่างเช่น พิซซ่า 0, 1 ชิ้นพิซซ่า 2 288 00:13:49,060 --> 00:13:52,350 ตอนนี้ผมสามารถพูดได้พิซซ่า ชีสไส้กรอกพิซซ่า 289 00:13:52,350 --> 00:13:55,120 และอ้างอิงถึงค่า เกี่ยวข้องกับพวกเขา 290 00:13:55,120 --> 00:13:56,970 >> ดังนั้นที่นี่เป็นกุญแจของเราในสีเขียว 291 00:13:56,970 --> 00:13:59,870 ชีส, ไส้กรอก, ผักไก่ควาย 292 00:13:59,870 --> 00:14:04,200 นี่คือลูกศรที่ทำให้เป็น การทำแผนที่คู่ค่าคีย์นี้ 293 00:14:04,200 --> 00:14:07,420 และแล้วที่นี่มีค่า ในสถานที่ที่อาร์เรย์ 294 00:14:07,420 --> 00:14:10,330 ดังนั้นจึงเป็นเหมือนอาเรย์บอกว่า 0 เท่ากับ 8.99 295 00:14:10,330 --> 00:14:11,720 ที่สำคัญคือ 0 296 00:14:11,720 --> 00:14:13,600 ค่าเป็น 8.99 297 00:14:13,600 --> 00:14:19,370 ตอนนี้ผมสามารถพูดชีสอาร์เรย์หรือในเรื่องนี้ กรณีชีสพิซซ่าชีสเป็นกุญแจสำคัญ 298 00:14:19,370 --> 00:14:23,340 และสิ่งที่ฉันได้พบกับ ชีสพิซซ่าคือ 8.99 299 00:14:23,340 --> 00:14:25,540 นั่นคือค่าที่เราพบ 300 00:14:25,540 --> 00:14:28,124 >> ดังนั้นผมจึงสามารถพูดได้สิ่งที่ต้องการ $ ชีสพิซซ่า = 7.99 301 00:14:28,124 --> 00:14:29,040 บอกว่าฉันมีขาย 302 00:14:29,040 --> 00:14:31,750 ฉันต้องการ dis-- ฉันต้องการที่จะลดลง ราคาของพิซซ่าชีส 303 00:14:31,750 --> 00:14:35,620 หรือฉันสามารถใช้ผัก พิซซ่าเป็นส่วนหนึ่งของเงื่อนไข 304 00:14:35,620 --> 00:14:39,990 หรือฉันจะเพิ่มองค์ประกอบใหม่ของฉัน อาร์เรย์เช่นเดียวกับที่ฉันจะทำก่อนหน้านี้ 305 00:14:39,990 --> 00:14:44,680 ฉันสามารถเพิ่มองค์ประกอบใหม่นี้ อาเรย์ที่มีคีย์ "เบคอน" 306 00:14:44,680 --> 00:14:49,250 และความคุ้มค่า 13.49 307 00:14:49,250 --> 00:14:53,820 >> แต่นี้แนะนำการจัดเรียงของปัญหา ถ้าคุณคิดเกี่ยวกับมันเป็นครั้งที่สอง 308 00:14:53,820 --> 00:14:55,721 วิธีการที่เราจะย้ำผ่านแถวนี้หรือไม่? 309 00:14:55,721 --> 00:14:56,220 ขวา? 310 00:14:56,220 --> 00:14:59,820 ใน C เราก็จะมี สำหรับวงโดยทั่วไปว่า 311 00:14:59,820 --> 00:15:03,650 จะวิ่งจาก 0 ไป ขนาดของอาร์เรย์ลบ 1 312 00:15:03,650 --> 00:15:08,060 อาร์เรย์มีองค์ประกอบ n ในที่นี้ ดัชนีที่ถูกต้องเป็น 0 ถึง n ลบ 1 313 00:15:08,060 --> 00:15:11,530 ดังนั้นเราจึงสามารถใช้สำหรับวงที่จะ ก้าวผ่านทุกองค์ประกอบเดียว 314 00:15:11,530 --> 00:15:13,530 >> แต่นั่นไม่ได้จริงๆ กรณีที่อีกต่อไปใช่มั้ย? 315 00:15:13,530 --> 00:15:17,360 ตอนนี้ที่เรามีคู่ค่าคีย์ แมปที่ปุ่มที่มีคำ 316 00:15:17,360 --> 00:15:19,970 ทำอย่างไรเราจะย้ำกว่าคำทั้งหมด? 317 00:15:19,970 --> 00:15:22,420 ดีโชคดี PHP มี วิธีที่จะจัดการกับเรื่องนี้เกินไป 318 00:15:22,420 --> 00:15:24,580 และเพื่อให้เราจะข้ามไป เพื่อลูปเป็นครั้งที่สอง 319 00:15:24,580 --> 00:15:30,780 ที่จะแนะนำชนิดที่สี่ของวงว่า ที่มีอยู่ใน PHP เรียกว่าห่วง foreach 320 00:15:30,780 --> 00:15:34,430 และสิ่งที่ห่วง foreach จะเป็น มันเป็นพื้นความคิดเดียวกัน 321 00:15:34,430 --> 00:15:36,060 คุณสามารถใช้มันสำหรับชนิดของอาร์เรย์ใด ๆ 322 00:15:36,060 --> 00:15:38,100 แต่มันเป็นพื้น ความคิดเช่นเดียวกับการห่วง, 323 00:15:38,100 --> 00:15:40,750 ยกเว้นแทนการใช้ ตัวเลขดัชนีคุณเพียงแค่ 324 00:15:40,750 --> 00:15:45,830 มีนี้ไวยากรณ์แปลกที่ คุณเรียกทุกองค์ประกอบเดียว 325 00:15:45,830 --> 00:15:47,550 ชื่อสำหรับวัตถุประสงค์ของว​​งนี้ 326 00:15:47,550 --> 00:15:49,258 >> ดังนั้นในกรณีนี้ foreach ($ อาร์เรย์เป็น $ กุญแจ) 327 00:15:49,258 --> 00:15:52,900 328 00:15:52,900 --> 00:15:56,450 โดยทั่วไปเป็นที่บันทึกแสดงความคิดเห็น ด้านในของวง foreach ว่า 329 00:15:56,450 --> 00:16:00,466 มันจะไปมากกว่าทุกเดียว องค์ประกอบของอาร์เรย์ $ ซึ่งเป็นปกติ 330 00:16:00,466 --> 00:16:03,340 จะเป็นอาเรย์, แต่จริงๆสามารถชนิดของอาร์เรย์ใด ๆ 331 00:16:03,340 --> 00:16:05,419 ที่คุณต้องการใน PHP 332 00:16:05,419 --> 00:16:07,210 และเวลาที่ทุก สำหรับห่วงคุณอาจ 333 00:16:07,210 --> 00:16:13,780 ได้กล่าวว่า $ อาร์เรย์วงเล็บ $ i, คุณก็สามารถพูด $ ที่สำคัญ 334 00:16:13,780 --> 00:16:22,340 เพื่อที่ว่าจะกลายเป็นกุญแจสำคัญที่ $ นามแฝงสำหรับทุก ดัชนีของอาเรย์ของคุณ PHP, 335 00:16:22,340 --> 00:16:23,710 และเพื่อให้คุณสามารถใช้งานได้เช่นเดียวกับที่ 336 00:16:23,710 --> 00:16:25,897 >> ดังนั้นสำหรับตัวอย่างเช่นเราได้ ขณะนี้มีอาร์เรย์พิซซ่าของเรา 337 00:16:25,897 --> 00:16:27,730 ฉันได้ชนิดของมันซุก ในมุมที่นั่น 338 00:16:27,730 --> 00:16:31,080 เพื่อให้เราสามารถใช้ในการทำตัวอย่างรวดเร็ว 339 00:16:31,080 --> 00:16:36,420 ถ้าผมพูด foreach ($ พิซซ่าเป็น $ พิซซ่า), ดี, สิ่งที่เกิดขึ้น? 340 00:16:36,420 --> 00:16:42,400 ดีฉันจะย้ำถึงทุก องค์ประกอบหนึ่งของพิซซ่า $ อาร์เรย์ 341 00:16:42,400 --> 00:16:46,670 และทำเพื่อฉันจะเรียก ทุกองค์ประกอบเมื่อฉันภายใน 342 00:16:46,670 --> 00:16:49,400 ของร่างกายที่สำหรับวงที่ $ พิซซ่า 343 00:16:49,400 --> 00:16:52,440 >> เพื่อให้การจัดเรียงของ ยืนในการเรียกคืนที่พิซซ่า $ 344 00:16:52,440 --> 00:16:59,140 เป็นสแตนด์อินเพื่อพูด $ พิซซ่าวงเล็บ $ ฉัน 345 00:16:59,140 --> 00:17:03,370 ถ้าเราใช้สำหรับวงที่เรา สามารถไปจาก $ i = 0 ถึงในกรณีนี้ 346 00:17:03,370 --> 00:17:06,089 $ i = 3 347 00:17:06,089 --> 00:17:09,780 ถ้าเราไม่ได้มีคู่ค่าที่สำคัญ นี่นี้จะเป็นองค์ประกอบที่ 0, 1, 2, 3, 348 00:17:09,780 --> 00:17:16,390 และเราจะใช้สำหรับวงที่จะไป พิซซ่า $ 0, ​​พิซซ่า $ 1, $ พิซซ่า 2 349 00:17:16,390 --> 00:17:17,750 พิซซ่า $ 3 350 00:17:17,750 --> 00:17:23,130 ดังนั้นขณะนี้เป็นเพียง $ พิซซ่าแทน ที่สำคัญแต่ละ 351 00:17:23,130 --> 00:17:25,630 >> ดังนั้นสิ่งที่นี้จะพิมพ์ออกมา? 352 00:17:25,630 --> 00:17:29,030 ผมพิมพ์ออกพิซซ่า $ 353 00:17:29,030 --> 00:17:35,270 สิ่งที่ฉันจะไปหา at-- ถ้าผมพิมพ์ออกพิซซ่า $, $ ฉัน? 354 00:17:35,270 --> 00:17:35,770 ขวา? 355 00:17:35,770 --> 00:17:38,680 ถ้าฉันจะพิมพ์ออกมา องค์ประกอบ ith ของพิซซ่า 356 00:17:38,680 --> 00:17:40,070 สิ่งที่ฉันจะพิมพ์? 357 00:17:40,070 --> 00:17:42,580 ฉันจะพิมพ์ ค่าที่ตำแหน่งนั้นใช่มั้ย? 358 00:17:42,580 --> 00:17:45,370 เช่นถ้าเรากำลังทำ นี้ในบริบทของซี 359 00:17:45,370 --> 00:17:49,786 เราไม่ได้มักจะใช้ iterator ของเรา ตัวแปร int i = 0 ฉันน้อยกว่า 3, 360 00:17:49,786 --> 00:17:52,900 ฉัน ++ ที่จะพิมพ์ออกมา 0, 1, 2, 3 361 00:17:52,900 --> 00:17:57,500 เรากำลังพิมพ์ออกอาร์เรย์ 0, อาร์เรย์ 1, อาร์เรย์ 2 อาร์เรย์ 3 362 00:17:57,500 --> 00:17:59,580 และเพื่อให้สิ่งที่พิมพ์ออกนี้ 363 00:17:59,580 --> 00:18:01,150 มันเป็นรายการของราคา 364 00:18:01,150 --> 00:18:05,750 8.99, 9.99, 10.99, 11.99 365 00:18:05,750 --> 00:18:06,900 >> ตอนนี้ทราบอย่างรวดเร็วที่นี่ 366 00:18:06,900 --> 00:18:10,900 ห่วง foreach ไม่จำเป็นต้อง พิมพ์สิ่งใน 367 00:18:10,900 --> 00:18:12,770 มันไม่ได้รับประกัน 368 00:18:12,770 --> 00:18:13,550 มันมักจะไม่ 369 00:18:13,550 --> 00:18:17,667 มันตามปกติในการสั่งซื้อใน ซึ่งองค์ประกอบที่มีการเพิ่มอาร์เรย์ 370 00:18:17,667 --> 00:18:18,750 ดังนั้นเพียงแค่หมีที่ในใจ 371 00:18:18,750 --> 00:18:20,830 มันอาจจะไม่อยู่ในลำดับที่ 372 00:18:20,830 --> 00:18:23,930 แต่ห่วง foreach จะย้ำ ทั่วทุกองค์ประกอบเดียว 373 00:18:23,930 --> 00:18:25,060 ของอาร์เรย์ในคำถาม 374 00:18:25,060 --> 00:18:27,980 ในกรณีนี้อีกครั้ง อาร์เรย์ที่เป็นพิซซ่า $ 375 00:18:27,980 --> 00:18:32,920 >> ฉันจะเปลี่ยนไวยากรณ์ แต่ถ้า ฉันต้องการทั้งที่สำคัญและความคุ้มค่า 376 00:18:32,920 --> 00:18:37,179 แทนที่จะพูดว่าพิซซ่า $ พิซซ่า $ ผมสามารถพูดได้นี้ 377 00:18:37,179 --> 00:18:39,470 และถ้าคุณมองไปที่สิ่งที่ฉันได้ ไฮไลต์ในสีเขียวที่นี่ 378 00:18:39,470 --> 00:18:42,130 ดูเหมือนว่าการทำแผนที่คู่ค่าคีย์ 379 00:18:42,130 --> 00:18:45,980 และดังนั้นหาก you-- แม้ว่าคุณจะไม่ได้ ทั้งหมดแน่ใจว่าสิ่งที่มันจะทำ 380 00:18:45,980 --> 00:18:49,300 คุณอาจจะสามารถคาดเดา เครื่องประดับที่ $ เป็นไป 381 00:18:49,300 --> 00:18:53,800 จะเป็นกุญแจสำคัญในกรณีนี้และ $ ราคาเป็นไปได้ที่ค่า 382 00:18:53,800 --> 00:18:59,200 ดังนั้นฉันแทนตอนนี้ทุกองค์ประกอบ ของ $ พิซซ่าเป็นคู่ค่าที่สำคัญ 383 00:18:59,200 --> 00:19:03,900 และตอนนี้ฉันสามารถดูได้ที่สำคัญและ ค่าซึ่งอาจจะมีประโยชน์ 384 00:19:03,900 --> 00:19:05,590 ตัวอย่างดังต่อไปนี้ 385 00:19:05,590 --> 00:19:10,170 >> "เป็นทั้ง" - นี้เป็นจำนวนมาก การพิมพ์ที่เกิดขึ้น here-- "เป็นทั้ง" 386 00:19:10,170 --> 00:19:17,300 เครื่องประดับ "ค่าใช้จ่าย $ พิซซ่า" ราคาแล้ว ผมพิมพ์ออกมาเป็นระยะเวลาและ n ทับขวา 387 00:19:17,300 --> 00:19:23,420 ดังนั้นตอนนี้แจ้งให้ทราบอีกครั้งฉันมีการเข้าถึง คีย์, ราดหน้า $ และค่าราคา $ 388 00:19:23,420 --> 00:19:26,647 เพื่อให้คุณสามารถคาดเดาสิ่งนี้ เป็นไปพิมพ์ออกมา? 389 00:19:26,647 --> 00:19:29,480 มีจำนวนมากเป็นงบการพิมพ์, แต่มีเพียงหนึ่ง n ทับขวา, 390 00:19:29,480 --> 00:19:33,410 จึงจะพิมพ์บางสิ่งบางอย่าง entire-- บนบรรทัดเดียวของรหัส 391 00:19:33,410 --> 00:19:36,965 >> ถ้าผมสามารถดูได้ที่สำคัญ และความคุ้มค่าแล้วตอนนี้ 392 00:19:36,965 --> 00:19:39,090 แทนที่จะเป็นเพียงแค่ความสามารถ ที่จะพิมพ์ออกราคา, 393 00:19:39,090 --> 00:19:41,330 ฉันสามารถพิมพ์ออกมาบางอย่างเช่นนี้ 394 00:19:41,330 --> 00:19:43,780 "พิซซ่าชีสทั้งค่าใช้จ่าย $ 8.99." 395 00:19:43,780 --> 00:19:47,150 และตอนนี้ฉันใช้ทั้งหมดของ keys-- ชีสไส้กรอกผัก 396 00:19:47,150 --> 00:19:49,640 ควาย chicken-- และคุณค่า 397 00:19:49,640 --> 00:19:53,980 8.99, 9.99, 10.99, 11.99 ดังนั้น นั่นเป็นเพียงวิธีที่แตกต่าง 398 00:19:53,980 --> 00:19:57,840 ที่จะทำวง foreach ที่แทน เพียงแค่ให้คุณเข้าถึงค่า 399 00:19:57,840 --> 00:20:02,950 มันก็จะช่วยให้ you-- จะช่วยให้คุณ การเข้าถึงคีย์และค่าที่ 400 00:20:02,950 --> 00:20:04,411 >> ดังนั้นการพิมพ์ออกข้อมูล 401 00:20:04,411 --> 00:20:07,410 ผมเคยทำมาแล้วคู่ของ วิธีการที่แตกต่างกันคุณอาจจะได้สังเกตเห็น 402 00:20:07,410 --> 00:20:11,080 ทั้งสองฟังก์ชั่นเราได้เป็นหลัก เห็นการพิมพ์และการสะท้อน 403 00:20:11,080 --> 00:20:14,380 และสำหรับทุกเจตนาและสวยมาก วัตถุประสงค์ที่พวกเขากำลังตรงเดียวกัน 404 00:20:14,380 --> 00:20:17,130 They're-- มีความละเอียดมาก ความแตกต่างที่ไม่ได้คุ้มค่า 405 00:20:17,130 --> 00:20:21,130 ได้รับใน แต่โดยทั่วไปทุกที่ คุณสามารถใช้การพิมพ์ที่คุณอาจจะสามารถใช้ 406 00:20:21,130 --> 00:20:22,370 สะท้อนได้เป็นอย่างดี 407 00:20:22,370 --> 00:20:23,610 >> และที่ไม่ได้เพียงสองคนเท่านั้น 408 00:20:23,610 --> 00:20:26,970 PHP มีจำนวนมากที่แตกต่างกัน วิธีการที่จะพิมพ์สิ่งที่ออก 409 00:20:26,970 --> 00:20:30,520 และก็ยังมีวิธีการที่จะบูรณาการ ตัวแปรเข้ากลางของสตริง 410 00:20:30,520 --> 00:20:32,860 ดังนั้นจำ C จากคุณ จำสิ่งที่ฟังก์ชั่น 411 00:20:32,860 --> 00:20:37,580 เราสามารถใช้แทนตัวแปร ลงไปในสิ่งที่เราต้องการที่จะพิมพ์ออกมา? 412 00:20:37,580 --> 00:20:40,160 คุณอาจใช้วิธีนี้ ทำงานค่อนข้างมาก 413 00:20:40,160 --> 00:20:42,290 printf ใช่มั้ย? 414 00:20:42,290 --> 00:20:45,290 ดังนั้นนี่คือสิ่งที่เรามีมาก่อนภายใน บริบทของวง foreach ของเรา 415 00:20:45,290 --> 00:20:48,000 เรามีทั้งห้า งบการพิมพ์ที่แยกจากกัน 416 00:20:48,000 --> 00:20:50,330 เพราะเห็นว่าเป็นเพียงคนเดียว วิธีที่ผมรู้ว่าในเวลา 417 00:20:50,330 --> 00:20:52,450 วิธีการพิมพ์ข้อความ 418 00:20:52,450 --> 00:20:59,560 ผมไม่ทราบวิธีการที่จะบูรณาการ ราดหน้าตัวแปร $ เป็นรหัส PHP ของฉัน 419 00:20:59,560 --> 00:21:03,700 ดีถ้าฉันเพียงแค่นำเดาป่า printf ก็จริงจะได้ทำงาน 420 00:21:03,700 --> 00:21:08,980 printf เป็นหน้าที่ที่ฉันสามารถใช้ ใน PHP เช่นเดียวกับที่ฉันสามารถใช้มันใน C. 421 00:21:08,980 --> 00:21:11,880 >> และเพื่อให้บางสิ่งบางอย่างเช่นนี้ printf, อีกครั้งที่เราคุ้นเคยกับที่ 422 00:21:11,880 --> 00:21:16,420 % s แรกจะถูกแทนที่ ที่มีค่าของ $ เครื่องประดับ 423 00:21:16,420 --> 00:21:19,700 % s ที่สองจะถูกแทนที่ ที่มีค่าของราคาที่ $ 424 00:21:19,700 --> 00:21:22,630 และดังนั้นฉัน interpellating, ซึ่งเป็นเพียงวิธีแฟนซี 425 00:21:22,630 --> 00:21:25,400 ของฉันพูดติด ตัวแปรในสถานที่ 426 00:21:25,400 --> 00:21:31,000 ดังนั้นฉันเสียบ $ เครื่องประดับที่ % s สีแดงและราคาที่ $ สีน้ำเงิน% s 427 00:21:31,000 --> 00:21:36,060 เป็นแล้วฉันจะได้รับข้อความ "พิซซ่าชีสทั้งค่าใช้จ่าย $ 8.99." 428 00:21:36,060 --> 00:21:37,750 >> ไม่ใช่วิธีเดียวที่ฉันสามารถทำมันแม้ว่า 429 00:21:37,750 --> 00:21:39,760 บางทีฉันอาจจะต้องการที่จะใช้วิธีการนี​​้ 430 00:21:39,760 --> 00:21:44,890 นี้เป็นจริงสิ่งที่มากที่สุด เรียกว่าตัวแปร interpellation 431 00:21:44,890 --> 00:21:45,690 ฉันสามารถใช้เสียงสะท้อน 432 00:21:45,690 --> 00:21:47,737 ฉันสามารถใช้พิมพ์เกินไปที่เราจะเห็น 433 00:21:47,737 --> 00:21:48,820 แต่สิ่งที่เกิดขึ้นที่นี่? 434 00:21:48,820 --> 00:21:51,520 >> ก่อนอื่นผมต้อง หลบหนีเครื่องหมายดอลลาร์ 435 00:21:51,520 --> 00:21:55,140 เพราะจำได้ว่าเมื่อเราเป็นจริง พิมพ์ออกราคาของพิซซ่าที่ 436 00:21:55,140 --> 00:21:59,370 ฉันเป็นจริงพวกเขาเป็นรูปแบบ ตัวเลขทางการเงินที่มีเครื่องหมายดอลลาร์ 437 00:21:59,370 --> 00:22:05,635 แต่เรากำลังใช้สัญญาณดอลลาร์ยัง เพื่อเป็นตัวแทนของชื่อตัวแปรใน PHP 438 00:22:05,635 --> 00:22:08,010 และโดยเฉพาะอย่างยิ่งเมื่อฉัน ใช้วิธีการหยิกนี้ 439 00:22:08,010 --> 00:22:10,040 ตัวแปรรั้ง วิธี interpellation ฉันต้องการ 440 00:22:10,040 --> 00:22:13,490 ที่จะหลบหนีเครื่องหมายดอลลาร์ของฉันเพื่อให้มันไม่ได้ คิดว่าผมกำลังพูดถึงตัวแปร 441 00:22:13,490 --> 00:22:16,920 มันเป็นไปได้จริง ตัวอักษรพิมพ์เครื่องหมายดอลลาร์ 442 00:22:16,920 --> 00:22:19,530 >> ดังนั้นการจัดเรียงของ analogize มัน สิ่งที่คุณเห็นในตอนท้ายมี 443 00:22:19,530 --> 00:22:22,832 มันไม่จริง n เครื่องหมายพิมพ์ใช่มั้ย? 444 00:22:22,832 --> 00:22:24,290 มันพิมพ์ออกมาเป็นตัวอักษรบรรทัดใหม่ 445 00:22:24,290 --> 00:22:26,750 is-- นี้ก็ไม่ได้ไป เข้าสู่ระบบการพิมพ์เครื่องหมายดอลลาร์, 446 00:22:26,750 --> 00:22:30,130 ก็จะพิมพ์ออกมาเพียง ตัวอักษรเครื่องหมายดอลลาร์ 447 00:22:30,130 --> 00:22:30,640 ความคิดเดียวกัน 448 00:22:30,640 --> 00:22:32,760 ลำดับหนีสิ่งที่ สิ่งเหล่านี้จะเรียกว่า 449 00:22:32,760 --> 00:22:37,080 >> แต่สังเกตเห็นว่าผมไม่ได้ทำ การเรียงลำดับของ% s แทนใด ๆ 450 00:22:37,080 --> 00:22:40,050 ฉันแค่เสียบตัวอักษร ในตัวแปรเหล่านี้ 451 00:22:40,050 --> 00:22:45,110 และใน this-- สิ่งที่จะเกิดขึ้นที่นี่ คือค่าของ $ topping-- อีกครั้ง 452 00:22:45,110 --> 00:22:48,390 เพียงแค่ทำให้กับสิ่งที่เราได้รับ พูดคุยเกี่ยวกับชีส far-- เพื่อจะได้รับ 453 00:22:48,390 --> 00:22:49,720 เสียบมี 454 00:22:49,720 --> 00:22:54,780 และราคา $ จะเป็นสิ่งที่มีค่า ที่พิซซ่าวงเล็บ, ชีส, 455 00:22:54,780 --> 00:22:56,270 ซึ่งเป็น 8.99 456 00:22:56,270 --> 00:23:01,860 และอื่น ๆ นอกจากนี้ยังจะพิมพ์ออกมา "พิซซ่าชีสทั้งค่าใช้จ่าย $ 8.99." 457 00:23:01,860 --> 00:23:05,160 และชอบพูดว่าฉันสามารถใช้ พิมพ์ที่นี่แทนการสะท้อน 458 00:23:05,160 --> 00:23:08,040 และการทำงานเป็น สวยมากเหมือนกัน 459 00:23:08,040 --> 00:23:09,660 มันจะพิมพ์ออกมาในสิ่งเดียวกัน 460 00:23:09,660 --> 00:23:12,680 >> ไม่มีทางที่จะทำมันอีก, และนี่คือข้อได้เปรียบอีก 461 00:23:12,680 --> 00:23:14,710 ของการทำงานร่วมกับ PHP สตริง 462 00:23:14,710 --> 00:23:17,130 เราสามารถทำสตริง 463 00:23:17,130 --> 00:23:19,660 เราสามารถทำเช่นนี้ใน C เกินไป โดยใช้ฟังก์ชั่นที่เรียกว่า strcat, 464 00:23:19,660 --> 00:23:21,180 แต่อีกครั้งที่เราต้อง เรียกใช้ฟังก์ชันที่แยกต่างหาก 465 00:23:21,180 --> 00:23:22,640 มันเป็นระเบียบทั้งหมดนี้จะทำอย่างไร 466 00:23:22,640 --> 00:23:24,590 เราต้องปอนด์รวมถึงสตริง 467 00:23:24,590 --> 00:23:25,780 มันเป็นผลิตใช่มั้ย? 468 00:23:25,780 --> 00:23:30,070 แต่ตอนนี้ผมก็สามารถใช้จุดนี้ผู้ประกอบการ เพื่อเชื่อมสายเข้าด้วยกัน 469 00:23:30,070 --> 00:23:34,910 >> ดังนั้นฉันเชื่อมโยง "เป็นทั้ง" และ แล้วสิ่งที่มูลค่าของเครื่องประดับ $ คือ 470 00:23:34,910 --> 00:23:38,860 และหลังจากนั้นอีก สตริง "ค่าใช้จ่ายพิซซ่า $" 471 00:23:38,860 --> 00:23:42,340 และแล้วสิ่งที่เชื่อมโยง มูลค่าของราคา $ คือ 472 00:23:42,340 --> 00:23:45,670 และจากนั้นในท้ายสุดผม ตรึงบน n เครื่องหมายระยะเวลา 473 00:23:45,670 --> 00:23:47,926 ดังนั้นนี้จะยัง พิมพ์ออกมา "ทั้งเป็น" - อีกครั้ง 474 00:23:47,926 --> 00:23:50,550 ถ้าเรากำลังพูดถึงครั้งแรก องค์ประกอบของ array-- พิซซ่าที่ 475 00:23:50,550 --> 00:23:54,710 "พิซซ่าชีสทั้งค่าใช้จ่าย $ 8.99." 476 00:23:54,710 --> 00:24:01,260 ระยะเวลา n ทับขวาอีกครั้งกับ เครื่องประดับราคา $ และ $ ทดแทนราคา 477 00:24:01,260 --> 00:24:06,580 สำหรับสิ่งที่เราได้ระบุไว้ใน foreach ของเรา เป็นห่วงการทำแผนที่คู่ค่าคีย์ 478 00:24:06,580 --> 00:24:08,050 >> PHP สามารถจัดการกับฟังก์ชั่น 479 00:24:08,050 --> 00:24:11,250 ฟังก์ชั่นมีการจัดเรียงของ หนึ่งที่ C อย่างที่เราเห็น 480 00:24:11,250 --> 00:24:14,870 เช่นเดียวกับตัวแปรที่เราไม่จำเป็นต้อง ระบุชนิดของการกลับมาของฟังก์ชั่นที่ 481 00:24:14,870 --> 00:24:16,350 เพราะมันไม่ได้เรื่องจริงๆ 482 00:24:16,350 --> 00:24:18,660 และเราไม่ได้ระบุ ชนิดข้อมูลของตัวแปรใด ๆ 483 00:24:18,660 --> 00:24:21,410 เพราะพวกเขาไม่ได้จริงๆ เรื่องเหมือนอย่างที่เราเคยเห็นใน PHP 484 00:24:21,410 --> 00:24:24,510 ฟังก์ชั่นทุกคนเป็นที่รู้จัก กับคำฟังก์ชั่น 485 00:24:24,510 --> 00:24:27,920 นั่นคือวิธีการที่เราแสดงให้ PHP ที่ สิ่งที่เรากำลังพูดถึงคือฟังก์ชั่น 486 00:24:27,920 --> 00:24:29,720 >> และเราจะได้ไม่ต้อง จัดการกับหลักที่ทุกคน 487 00:24:29,720 --> 00:24:33,690 เพราะล่ามที่ PHP ล่ามทำงานจากบนลงล่าง 488 00:24:33,690 --> 00:24:34,190 ไม่คำนึงถึง 489 00:24:34,190 --> 00:24:35,640 ถ้ามันเห็นคุณสามารถทำให้ การเรียกฟังก์ชั่นก็จะ 490 00:24:35,640 --> 00:24:37,850 ไปหาโทรฟังก์ชั่น ถึงแม้ว่ามันจะตามมาในภายหลัง 491 00:24:37,850 --> 00:24:40,360 แต่มันจะอ่านจากบนลง ด้านล่างดังนั้นเราจึงไม่จำเป็นต้องระบุ 492 00:24:40,360 --> 00:24:41,500 ที่นี่เป็นที่ที่คุณจะเริ่มต้น 493 00:24:41,500 --> 00:24:46,700 คุณเริ่มต้นในบรรทัดที่ 1 ของคุณ PHP และทำงานลงมาจากที่นั่น 494 00:24:46,700 --> 00:24:49,690 >> ดังนั้นนี่คือวิธีการที่เราจะสร้าง ฟังก์ชั่นที่เรียกว่า hard_square 495 00:24:49,690 --> 00:24:54,100 มันเห็นได้ชัดว่าจะใช้เวลาหนึ่ง พารามิเตอร์ที่ฉันโทร $ x 496 00:24:54,100 --> 00:24:58,424 ฟังก์ชั่นนี้มีความซับซ้อนเพียง เพื่อแสดงให้เห็นสิ่งต่างๆ 497 00:24:58,424 --> 00:24:59,590 เรายังคงมีค่าที่ส่งคืน 498 00:24:59,590 --> 00:25:00,870 ฉันใช้สำหรับวงที่นี่ 499 00:25:00,870 --> 00:25:04,970 แต่มันก็เป็นเพียงสิ่งนี้ จำนวนเงินที่เป็นเพียง $ x $ x ครั้ง 500 00:25:04,970 --> 00:25:10,520 สิ่งที่ฉันทำจริงเป็นเพียงการเพิ่ม x 0 x ครั้งหรือ $ x เพื่อเป็นศูนย์ $ x ครั้ง 501 00:25:10,520 --> 00:25:15,850 แต่มันได้อย่างมีประสิทธิภาพตรง เช่นเดียวกับการคูณ $ x $ x ครั้ง 502 00:25:15,850 --> 00:25:18,700 ฉันยังคงสามารถกลับค่า ในกรณีนี้ผล $, 503 00:25:18,700 --> 00:25:22,060 และผมได้ทำในฟังก์ชั่นของ PHP 504 00:25:22,060 --> 00:25:24,160 >> นี่คือวิธีที่คุณอาจจะใช้มันในบริบท 505 00:25:24,160 --> 00:25:26,020 ดังนั้นบางทีฉันภายในของไฟล์ PHP บาง 506 00:25:26,020 --> 00:25:29,240 ขอให้สังเกตสีฟ้ามีที่ ผมเคยใช้ตัวคั่น PHP ของฉัน 507 00:25:29,240 --> 00:25:31,010 วงเล็บมุมเครื่องหมายคำถาม? php 508 00:25:31,010 --> 00:25:35,180 ในระหว่างที่ผู้ที่มีทั้งหมดของ PHP ได้ว่าผมอยากจะเขียน 509 00:25:35,180 --> 00:25:37,840 ดังนั้นผมจึงเห็นได้ชัดว่ากำลังจะไป get-- ผมจะแจ้งให้ผู้ใช้ 510 00:25:37,840 --> 00:25:41,550 ให้ฉันจำนวนร้านค้าที่ ตัวแปรที่เก็บในตัวแปร $ x, 511 00:25:41,550 --> 00:25:43,320 สิ่งที่พวกเขาให้ฉัน 512 00:25:43,320 --> 00:25:48,590 แล้วฉันจะสะท้อน hard_square ของมูลค่าที่ 513 00:25:48,590 --> 00:25:50,370 และเห็นได้ชัดไป ที่จะตรึงบนบรรทัดใหม่ 514 00:25:50,370 --> 00:25:53,590 เป็นอย่างดีและต่อมาในวันที่ฉันจะ กำหนดฟังก์ชั่นเพื่อให้ hard_square 515 00:25:53,590 --> 00:25:55,550 ว่าเมื่อฉันทำ เรียกร้องให้ hard_square, 516 00:25:55,550 --> 00:25:58,160 มันรู้ว่าสิ่งที่ผมพูดถึง 517 00:25:58,160 --> 00:26:00,705 >> ตอนนี้ผมยังไม่สามารถทำ บางสิ่งบางอย่างเช่นนี้ 518 00:26:00,705 --> 00:26:02,050 นี่คือแตกต่างกันเล็กน้อย 519 00:26:02,050 --> 00:26:04,190 มันเกือบจะตรง เช่นเดียวกับสิ่งที่เราได้เห็นมาก่อน 520 00:26:04,190 --> 00:26:08,400 ยกเว้นแทนที่จะพูดว่าเพียง $ x มีเป็นพารามิเตอร์เพื่อ hard_square, 521 00:26:08,400 --> 00:26:11,730 ฉันพูด $ x = 10 522 00:26:11,730 --> 00:26:14,330 ดังนั้นนี่คือตัวอย่างของ การเขียนโปรแกรมการป้องกัน 523 00:26:14,330 --> 00:26:17,070 ปกป้องโปรแกรมของคุณ ที่เป็นอันตรายต่อผู้ใช้ 524 00:26:17,070 --> 00:26:20,020 >> นี้เป็นวิธีหนึ่งที่จะทำข้อผิดพลาดบาง การตรวจสอบว่าเราทำไม่ได้จริงๆ 525 00:26:20,020 --> 00:26:24,670 มีเป็นตัวเลือกใน C. ที่เราอาจจะไม่เคย ระบุค่าเริ่มต้นของบางสิ่งบางอย่าง 526 00:26:24,670 --> 00:26:27,010 เรามักจะมีการตรวจสอบ ไม่ว่าจะเป็นตัวอย่างเช่น 527 00:26:27,010 --> 00:26:30,820 ถ้าเราทำให้การเรียกร้องให้ GetString มันเป็น ที่เหมาะสมที่สุดถ้าทันทีหลังจากที่เรา 528 00:26:30,820 --> 00:26:33,300 ตรวจสอบที่เราตรวจสอบ ไม่ว่าจะเป็นสตริง 529 00:26:33,300 --> 00:26:35,504 ว่าผู้ใช้ให้เรา ไม่เท่ากับโมฆะ, 530 00:26:35,504 --> 00:26:37,920 เพราะเราไม่ต้องการที่จะเริ่มต้น ทำงานกับสตริง 531 00:26:37,920 --> 00:26:39,670 >> นี่นี้เป็นวิธีการที่ เพื่อป้องกันการที่ 532 00:26:39,670 --> 00:26:43,480 หากผู้ใช้ไม่ได้ให้เราบางสิ่งบางอย่าง อย่างใดสิ่งที่เรากำลังจะทำอย่างไร 533 00:26:43,480 --> 00:26:46,080 ดีเราก็จะพูดสิ่งที่ พวกเขาไม่ได้ให้เรา 534 00:26:46,080 --> 00:26:47,705 เรากำลังจะเสียบแทน 10 535 00:26:47,705 --> 00:26:52,030 ดังนั้นหากพวกเขาไม่ได้ให้เราค่า เพียงแค่ใช้ 10 โดยค่าเริ่มต้น และอื่น ๆ ที่นี่ 536 00:26:52,030 --> 00:26:53,940 สังเกตเห็นว่าฉันทำ โทรไป hard_square, 537 00:26:53,940 --> 00:26:55,980 แต่มีพร้อมรับคำไม่มี ให้กับผู้ใช้ใช่มั้ย? 538 00:26:55,980 --> 00:26:57,540 ฉันแค่โทรที่ว่างเปล่า 539 00:26:57,540 --> 00:27:00,860 >> แต่ฟังก์ชั่นของฉัน hard_square คาดว่าพารามิเตอร์ 540 00:27:00,860 --> 00:27:02,222 นี่คือสิ่งที่จะพิมพ์ออกมา? 541 00:27:02,222 --> 00:27:03,680 มันจะพิมพ์ออกมา 100 ใช่มั้ย? 542 00:27:03,680 --> 00:27:05,720 เพราะผู้ใช้ไม่ได้ ให้ฉันอะไร 543 00:27:05,720 --> 00:27:08,970 และเพื่อให้ฉันแค่จะถือว่า ที่ 10-- 10 เป็นค่าเริ่มต้น 544 00:27:08,970 --> 00:27:13,760 และเพื่อให้เรื่องนี้จะพิมพ์ ออก 100 ในสายของตัวเอง 545 00:27:13,760 --> 00:27:16,390 >> ไฟล์ PHP ไม่ต้อง เป็นเพียงไฟล์เดียว 546 00:27:16,390 --> 00:27:19,480 คุณสามารถรวมไฟล์หลาย ๆ ไฟล์เข้าด้วยกัน เช่นเดียวกับที่คุณสามารถในซีทาง 547 00:27:19,480 --> 00:27:24,330 เราไม่ว่าใน C โดยทั่วไปแล้วจะทำ #include ที่จะได้รับไฟล์ส่วนหัวดึง 548 00:27:24,330 --> 00:27:26,180 เราไม่ได้ทำอย่างนั้นใน PHP 549 00:27:26,180 --> 00:27:29,110 เราทำสิ่งที่เรียกว่า require_once 550 00:27:29,110 --> 00:27:33,360 แล้วมีทั้งนี้ สิ่งที่สิ่งที่ __dir__ นี้หรือไม่? 551 00:27:33,360 --> 00:27:36,510 นั่นเป็นเพียงพิเศษ ตัวแปรหรือพิเศษอย่างต่อเนื่อง 552 00:27:36,510 --> 00:27:39,030 จริงๆที่ระบุว่า ไดเรกทอรีปัจจุบันของคุณคือ 553 00:27:39,030 --> 00:27:41,320 และดังนั้นจึงจะไปดู ในไดเรกทอรีปัจจุบันของคุณ 554 00:27:41,320 --> 00:27:44,900 สำหรับไฟล์ที่เรียกว่า cs50.php ในตัวอย่างนี้ที่นี่ 555 00:27:44,900 --> 00:27:50,490 และก็จะไปติดแฟ้มที่ ที่ด้านบนของโปรแกรม PHP ของคุณ 556 00:27:50,490 --> 00:27:56,980 สมมติว่าคุณต้องใส่ ครั้งหนึ่งเคยเป็นสายที่ด้านบนของไฟล์ PHP ของคุณ 557 00:27:56,980 --> 00:28:01,474 >> ดังนั้น PHP ถูกนำมาใช้เป็นหลัก แต่ไม่ได้ใช้เฉพาะ 558 00:28:01,474 --> 00:28:03,140 เป็นภาษาสำหรับการเขียนโปรแกรม Web-based 559 00:28:03,140 --> 00:28:05,270 ที่จริงวิธีการที่จะมาเป็น 560 00:28:05,270 --> 00:28:06,980 แต่มันเป็นเต็มรูปแบบ ภาษาที่เราเคยเห็น 561 00:28:06,980 --> 00:28:10,105 เราได้เห็นสวยมากทุกสิ่ง ว่ามันสามารถทำเช่นนั้นมีความคล้ายคลึงกับซี 562 00:28:10,105 --> 00:28:13,290 และมันสามารถทำ heck ของ มากขึ้นกว่าที่ 563 00:28:13,290 --> 00:28:16,950 >> แต่เพราะมันเป็นภาษาที่เต็มรูปแบบและเรา สามารถทำโปรแกรมบรรทัดคำสั่งในนั้น 564 00:28:16,950 --> 00:28:18,630 เราสามารถเรียกใช้โปรแกรมบรรทัดคำสั่ง 565 00:28:18,630 --> 00:28:22,580 ทั้งหมดที่จำเป็นในการใช้คำสั่ง โปรแกรมบรรทัดที่เขียนใน PHP 566 00:28:22,580 --> 00:28:24,260 คือการที่คุณมีล่ามของ PHP 567 00:28:24,260 --> 00:28:27,460 ดังนั้นจึงเป็นที่จัดเรียงของคล้ายกับ มีคอมไพเลอร์ในระบบของคุณ 568 00:28:27,460 --> 00:28:31,100 ถ้าคุณต้องการที่จะรวบรวมรหัส C ของคุณ ที่จะเปิดเป็นแฟ้มที่ปฏิบัติการ 569 00:28:31,100 --> 00:28:33,810 คุณจำเป็นต้องมีล่ามของ PHP ที่มีอยู่ในระบบของคุณ 570 00:28:33,810 --> 00:28:37,330 เพื่อให้คุณสามารถแปลไฟล์ PHP 571 00:28:37,330 --> 00:28:40,370 >> สมมติว่าคุณทำและมักจะ ล่ามนี้เรียกว่า PHP, 572 00:28:40,370 --> 00:28:44,300 และก็มักจะมีการรวมมากที่สุด ดาวน์โหลดหรือติดตั้ง PHP 573 00:28:44,300 --> 00:28:47,430 ที่คุณสามารถได้รับออนไลน์และแน่นอน ชื่อของล่าม PHP ที่ 574 00:28:47,430 --> 00:28:49,550 ที่เรามีใน CS50, IDE 575 00:28:49,550 --> 00:28:51,819 สิ่งที่คุณทำคือไฟล์ PHP ประเภท 576 00:28:51,819 --> 00:28:53,610 และสิ่งที่โปรแกรมของคุณ จะทำมันเป็นเรื่อง 577 00:28:53,610 --> 00:28:55,360 จะวิ่งผ่าน ล่ามก็ 578 00:28:55,360 --> 00:28:58,040 จะไม่สนใจทุกอย่างที่ ไม่ได้อยู่ในระหว่างคำถาม mark-- 579 00:28:58,040 --> 00:29:03,160 หรือวงเล็บมุมเครื่องหมายคำถาม PHP, ตัวคั่น PHP และพิมพ์ออกมา 580 00:29:03,160 --> 00:29:07,660 และมันจะตีความและดำเนินการ รหัสภายในของตัวคั่น PHP ของคุณ 581 00:29:07,660 --> 00:29:12,850 >> ดังนั้นขอ pop ไป IDE และ CS50 มีลักษณะที่คู่ของไฟล์ PHP ที่ 582 00:29:12,850 --> 00:29:19,850 ทำงานคู่ของไฟล์ PHP ใน อินเตอร์เฟซบรรทัดคำสั่งของ CS50 IDE 583 00:29:19,850 --> 00:29:22,100 ดังนั้นที่นี่เราอยู่ใน IDE CS50, และฉันเอาเสรีภาพ 584 00:29:22,100 --> 00:29:25,800 การเปิดไฟล์ที่เรียกว่า hello1.php 585 00:29:25,800 --> 00:29:29,920 และเห็นได้ชัดเนื้อหาของเรื่องนี้ ไฟล์ที่เป็นเพียงตัวคั่น PHP มี 586 00:29:29,920 --> 00:29:32,220 และในระหว่างก้อง ("สวัสดีโลก") 587 00:29:32,220 --> 00:29:34,710 นี้เป็นโปรแกรม PHP ง่ายสวย 588 00:29:34,710 --> 00:29:37,670 ฉันแค่จะเลื่อนลง เพื่อหน้าต่าง terminal ของฉันที่นี่ 589 00:29:37,670 --> 00:29:44,320 และฉันจะพิมพ์เป็น PHP hello1.php, กด 590 00:29:44,320 --> 00:29:44,950 สวัสดีชาวโลก. 591 00:29:44,950 --> 00:29:48,110 นั่นอาจเป็นสิ่งที่เราเป็น คาดหวังว่ามันจะทำใช่มั้ย? 592 00:29:48,110 --> 00:29:51,140 >> ลองขึ้นไปและใช้เวลา ดูที่โปรแกรมอื่น 593 00:29:51,140 --> 00:29:52,924 hello2.php 594 00:29:52,924 --> 00:29:55,090 สวยมากในสิ่งเดียวกัน ไม่มากเกิดขึ้นที่นี่ 595 00:29:55,090 --> 00:29:57,190 เวลานี้แม้ว่าผมจะแจ้งให้ ผู้ใช้ที่จะให้ฉันชื่อของพวกเขา 596 00:29:57,190 --> 00:29:59,290 ฉันใช้ฟังก์ชั่นที่ที่ ReadLine อีกครั้ง 597 00:29:59,290 --> 00:30:01,340 $ = ชื่อที่ ReadLine 598 00:30:01,340 --> 00:30:03,070 นั่นคือพรอมต์ "คุณชื่ออะไร?" 599 00:30:03,070 --> 00:30:04,880 >> เห็นได้ชัดว่าผมพิมพ์ มันอยู่บนเส้นของตัวเอง 600 00:30:04,880 --> 00:30:07,220 และแล้วดังนั้นบรรทัดด้านล่าง ที่จะเป็นพรอมต์ 601 00:30:07,220 --> 00:30:08,750 ที่ผู้ใช้สามารถป้อนชื่อของพวกเขา 602 00:30:08,750 --> 00:30:12,030 และจากนั้นฉันใช้นิด ๆ หน่อย ๆ interpellation ตัวแปรที่นี่ในบรรทัดที่ 3 603 00:30:12,030 --> 00:30:14,780 จะพิมพ์ออกมา "ฮัลโหล" และ สิ่งที่ผู้ใช้ชนิด 604 00:30:14,780 --> 00:30:22,040 ดังนั้นนี่คือคล้ายกับว่าสวัสดี จุลภาค% s ถ้าเราได้ใช้ printf ใน C. 605 00:30:22,040 --> 00:30:24,910 >> ดังนั้นขอไปและตีความโปรแกรมนี้ 606 00:30:24,910 --> 00:30:27,400 ดังนั้นอีกครั้งฉันจะเลื่อนลง เพื่อหน้าต่าง terminal ของฉัน 607 00:30:27,400 --> 00:30:29,070 PHP การ hello2.php 608 00:30:29,070 --> 00:30:31,920 609 00:30:31,920 --> 00:30:33,820 คุณชื่ออะไร? 610 00:30:33,820 --> 00:30:35,490 ดั๊ก 611 00:30:35,490 --> 00:30:36,526 สวัสดีดั๊ก 612 00:30:36,526 --> 00:30:39,440 ฉันยังมีอีก ไฟล์ที่เรียกว่า hello3.php 613 00:30:39,440 --> 00:30:42,850 ฉันจะล้างของฉัน หน้าจอที่มีการควบคุมลิตร 614 00:30:42,850 --> 00:30:46,210 และฉันจะดำเนินการที่ 615 00:30:46,210 --> 00:30:47,640 คุณชื่ออะไร? 616 00:30:47,640 --> 00:30:49,020 ดั๊ก 617 00:30:49,020 --> 00:30:49,780 สวัสดีดั๊ก 618 00:30:49,780 --> 00:30:56,540 ดังนั้นพฤติกรรมที่เป็นเหมือน hello2.php แต่ทำไมมัน hello3.php? 619 00:30:56,540 --> 00:30:58,040 >> ดีนี่คือความแตกต่าง 620 00:30:58,040 --> 00:31:00,620 ในกรณีนี้แจ้งให้ทราบล่วงหน้า ในบรรทัดที่ 1 ที่นี่ 621 00:31:00,620 --> 00:31:04,270 ฉันมีบางสิ่งบางอย่างที่ไม่ได้ ในระหว่างคั่น PHP 622 00:31:04,270 --> 00:31:07,760 ฉันแค่พิมพ์ out-- หรือฉัน พิมพ์เพียง "คุณชื่ออะไร?" 623 00:31:07,760 --> 00:31:12,060 เมื่อล่าม PHP เห็นนี้มัน มีความคิดวิธีการตีความมัน PHP, 624 00:31:12,060 --> 00:31:15,060 และอื่น ๆ แทนการล้มเหลว มันเป็นเพียงแค่จะคายออก 625 00:31:15,060 --> 00:31:19,010 >> ดังนั้นสังเกตเห็นในบรรทัดที่ 3 ตอนนี้เรียกร้องให้ฉัน ที่ ReadLine ไม่มีอีกต่อไปพร้อมรับคำ 626 00:31:19,010 --> 00:31:21,750 ฉันแค่จริงที่เกิดขึ้นเมื่อ to-- ล่าม PHP เห็นนี้ 627 00:31:21,750 --> 00:31:23,400 ก็จะพิมพ์ออกมา "คุณชื่ออะไร?" 628 00:31:23,400 --> 00:31:25,941 จากนั้นก็จะเห็นโอ้ตกลง here's-- ทุกสิ่งทุกอย่างที่เป็นไปได้ 629 00:31:25,941 --> 00:31:29,970 ตีความว่าเป็น PHP ดังนั้น ที่ว่าทำไมงานนี้ 630 00:31:29,970 --> 00:31:34,990 ผมไม่จำเป็นต้องแจ้งให้ ผู้ใช้ to-- ภายในที่ ReadLine, 631 00:31:34,990 --> 00:31:37,490 ฉันสามารถมีมันนอก ของตัวคั่น PHP 632 00:31:37,490 --> 00:31:41,490 และอนุญาตให้ล่าม เพียงแค่พิมพ์ออกมาสำหรับผม 633 00:31:41,490 --> 00:31:45,364 >> ดังนั้นคุณจึงไม่จริงมีเพียง ที่จะมีหนึ่งชุดของตัวคั่น PHP 634 00:31:45,364 --> 00:31:46,030 ในโปรแกรมของคุณ 635 00:31:46,030 --> 00:31:49,887 จริงๆคุณสามารถมีหลายของพวกเขา, เปิดและปิดได้ตามต้องการ 636 00:31:49,887 --> 00:31:51,720 ดังนั้นลองมาดู ที่คู่ของโปรแกรม 637 00:31:51,720 --> 00:31:55,070 ใน IDE CS50 ที่เรา แสดงให้เห็นถึงความคิดของการมีนี้ 638 00:31:55,070 --> 00:31:58,376 หลายชุดที่คั่นด้วย PHP 639 00:31:58,376 --> 00:32:02,010 >> ตกลงดังนั้นฉันได้เปิดไฟล์ นี่เรียกว่า add1.php 640 00:32:02,010 --> 00:32:03,390 และแจ้งให้ทราบว่าสิ่งที่เกิดขึ้นที่นี่ 641 00:32:03,390 --> 00:32:08,077 เช่นเดียวกับก่อนที่ฉันมี ชุด PHP เดียวของตัวคั่น 642 00:32:08,077 --> 00:32:10,660 ฉันจะพิมพ์ ข้อความ "โปรดให้ฉันเป็นจำนวนมาก." 643 00:32:10,660 --> 00:32:13,394 แล้วฉันจะอ่านบรรทัดและ เก็บไว้ในตัวแปร $ num1 644 00:32:13,394 --> 00:32:14,810 แล้วฉันจะพิมพ์ออกมาอีกครั้ง 645 00:32:14,810 --> 00:32:16,310 ให้ฉันเป็นจำนวนสอง 646 00:32:16,310 --> 00:32:20,450 อ่านบรรทัดจากผู้ใช้จัดเก็บ สิ่งที่พวกเขาพิมพ์ใน $ num2 647 00:32:20,450 --> 00:32:23,980 เพิ่มพวกเขาร่วมกันและจัดเก็บที่ ส่งผลให้ในตัวแปรที่เรียกว่าผลรวม $, 648 00:32:23,980 --> 00:32:26,180 แล้วพิมพ์ออกมาว่า " ผลรวมของทั้งสองหมายเลข 649 00:32:26,180 --> 00:32:29,254 คือ "แล้ว interpellate มีผลรวมตัวแปร $ 650 00:32:29,254 --> 00:32:31,170 เพื่อให้เพียงทำงานนี้ ผ่านล่าม 651 00:32:31,170 --> 00:32:33,720 เพื่อยืนยันว่านี่คือสิ่งที่เราคาดหวัง 652 00:32:33,720 --> 00:32:37,540 PHP การ add1.php 653 00:32:37,540 --> 00:32:38,665 กรุณาให้หมายเลข 3 654 00:32:38,665 --> 00:32:40,410 โปรดให้ฉันเป็นจำนวนสอง 4 655 00:32:40,410 --> 00:32:43,370 ผลรวมของทั้งสองตัวเลขคือ 7 656 00:32:43,370 --> 00:32:45,030 นั่นคือ 3 บวก 4 657 00:32:45,030 --> 00:32:45,530 ตกลง? 658 00:32:45,530 --> 00:32:47,770 ดังนั้นไม่มีอะไรมากมีแฟนซี 659 00:32:47,770 --> 00:32:51,080 >> และตอนนี้เรามาเปิด add2.php 660 00:32:51,080 --> 00:32:54,460 ที่นี่ผมได้มีคู่ของของ PHP ที่คั่นชุดมีใช่มั้ย? 661 00:32:54,460 --> 00:32:59,107 สาย 1, 3-- เส้นที่ 1 และ 3 ไม่มีตัวคั่น PHP 662 00:32:59,107 --> 00:33:00,940 ดังนั้นเมื่อล่าม เห็นพวกเขาเป็นเพียง 663 00:33:00,940 --> 00:33:03,220 จะคายออกว่า สิ่งที่ฉันได้มีพิมพ์ 664 00:33:03,220 --> 00:33:05,011 ดังนั้นนั่นคือสิ่งที่ฉัน ทำทุกอย่างที่ฉันกระตุ้น 665 00:33:05,011 --> 00:33:11,220 บนเส้นที่ 2 และ 4 เราจะเห็นมาก คุ้นเคย $? php การจัดเรียงของตัวคั่น 666 00:33:11,220 --> 00:33:15,210 เพื่อให้ทั้งสองเส้น จะดำเนินการเป็น PHP 667 00:33:15,210 --> 00:33:18,270 และจากนั้นในบรรทัด 5 ผมมีนี้ สิ่งที่แปลกขวาที่นี่ใช่มั้ย? 668 00:33:18,270 --> 00:33:20,480 วงเล็บมุมนี้ เครื่องหมายคำถามเครื่องหมายเท่ากับ 669 00:33:20,480 --> 00:33:22,660 ฉันก็จะซูมเข้านิด ๆ หน่อย ๆ ต่อไป 670 00:33:22,660 --> 00:33:29,270 คุณสามารถดูนี้คือสิ่งที่ฉัน พูดคุยเกี่ยวกับที่นั่น $ นี้หรือไม่? = 671 00:33:29,270 --> 00:33:33,420 >> แต่กลับกลายเป็นว่าเป็นเรื่องปกติเพื่อให้ เหตุผลที่เราเปิดขึ้นชุดของ PHP 672 00:33:33,420 --> 00:33:36,055 เป็นตัวคั่นที่จะพิมพ์ออกค่า 673 00:33:36,055 --> 00:33:37,430 และนั่นคือสิ่งที่เรากำลังจะทำ 674 00:33:37,430 --> 00:33:39,220 แต่มีแม้กระทั่งการที่ชวเลข 675 00:33:39,220 --> 00:33:46,490 $? = คือชวเลข PHP พูด สิ่งที่ต้องการ $? php echo รวม 676 00:33:46,490 --> 00:33:48,350 ของ num1 และ num2 677 00:33:48,350 --> 00:33:51,900 ดังนั้นนี่เป็นเพียงอีกหนึ่ง ชวเลขที่ 678 00:33:51,900 --> 00:33:55,550 >> ดังนั้นถ้าผมเรียกใช้โปรแกรมนี้, PHP add2.php 679 00:33:55,550 --> 00:33:57,530 ฉันจะซูมลงเล็กน้อย 680 00:33:57,530 --> 00:33:59,000 โปรดให้ฉันหมายเลข 4 681 00:33:59,000 --> 00:34:00,350 โปรดให้ฉันเป็นจำนวนสอง 682 00:34:00,350 --> 00:34:04,650 และเนื่องจากผมไม่ได้จริงๆดูแลเกี่ยวกับ ชนิดข้อมูลใน PHP ผมสามารถพูดได้ 4.8 683 00:34:04,650 --> 00:34:07,160 ผลรวมของทั้งสองจำนวนคือ 8.8 684 00:34:07,160 --> 00:34:10,179 ฟังก์ชั่นที่มีลักษณะการทำงานที่สวยมาก ตรงเช่นเดียวกับที่เราคาดหวัง 685 00:34:10,179 --> 00:34:10,989 ได้เป็นอย่างดี 686 00:34:10,989 --> 00:34:13,114 และฉันมีหนึ่งเปิดมากขึ้น ขึ้นเรียกว่าที่นี่ dice.php 687 00:34:13,114 --> 00:34:25,625 688 00:34:25,625 --> 00:34:26,250 ลองนี้อีกครั้ง 689 00:34:26,250 --> 00:34:29,429 690 00:34:29,429 --> 00:34:33,280 ฉันมีอีกหนึ่งที่เรียกว่าที่นี่ dice1.php ซึ่งยังเห็น 691 00:34:33,280 --> 00:34:37,440 มีคำถามว่าวงเล็บมุม ทำเครื่องหมายสัญกรณ์เครื่องหมายเท่ากับในนั้น 692 00:34:37,440 --> 00:34:40,659 แต่แจ้งให้ทราบว่าในกรณีนี้ผม การเรียกฟังก์ชั่นแรนด์ซึ่งเป็นคุณ 693 00:34:40,659 --> 00:34:42,790 อาจคาดหวังสร้างตัวเลขสุ่ม 694 00:34:42,790 --> 00:34:46,889 "คุณรีด" และมันเป็นไป คำนวณบางจำนวนสุ่ม mod + 6 695 00:34:46,889 --> 00:34:47,389 1 696 00:34:47,389 --> 00:34:49,989 เพื่อที่จะให้ฉันหมายเลข อยู่ในช่วง 1 ถึง 6 697 00:34:49,989 --> 00:34:53,040 >> โปรดจำไว้ว่าสมัยที่ 6 จะให้ฉัน ตัวเลขในช่วง 0-5 ที่ 698 00:34:53,040 --> 00:34:56,630 แต่ถ้าฉันเลียนแบบม้วนลูกเต๋า ซึ่งเป็นสิ่งที่ผมกำลังทำอะไรที่นี่ 699 00:34:56,630 --> 00:35:00,040 ฉันไม่ต้องการลูกเต๋าเหล่านี้จะไปจาก 0 5 ผมต้องการลูกเต๋าที่ไป 1-6 700 00:35:00,040 --> 00:35:02,800 ดังนั้นนี้เป็นวิธีการที่จะได้รับ ผมอยู่ในช่วง 1 ถึง 6 701 00:35:02,800 --> 00:35:04,720 ฉันทำเช่นนี้เป็นครั้งที่สอง 702 00:35:04,720 --> 00:35:08,630 ดังนั้นเห็นได้ชัดว่าฉันกำลังกลิ้ง สองลูกเต๋าในโปรแกรมนี้ 703 00:35:08,630 --> 00:35:15,210 >> ดังนั้นผมจะล้างหน้าจอของฉัน และฉันจะทำ php ที่ dice1.php 704 00:35:15,210 --> 00:35:16,640 คุณรีด 4 และ 2 705 00:35:16,640 --> 00:35:19,156 และถ้าผมเรียกใช้โปรแกรม อีกครั้งคุณรีด 5 และ 5 706 00:35:19,156 --> 00:35:21,780 ดังนั้นทุกครั้งที่ผมเรียกใช้โปรแกรมทุก ฉันได้รับตัวเลขที่แตกต่างกัน 707 00:35:21,780 --> 00:35:24,280 เพราะทุกครั้งที่ผมทำทุก ดังนั้นก็เริ่มต้น 708 00:35:24,280 --> 00:35:27,250 มันจะสร้างใหม่ ชุดของตัวเลขสุ่มสำหรับฉัน 709 00:35:27,250 --> 00:35:29,790 >> ดังนั้นหากเรากำลังใช้ในการ ใช้โปรแกรมจากซี 710 00:35:29,790 --> 00:35:32,520 เรากำลังใช้ในการพิมพ์ ./ ชื่อของโปรแกรมใช่ไหม? 711 00:35:32,520 --> 00:35:35,090 นั่นคือวิธีการที่เราได้ทำทุก โปรแกรมของเราใน C เพื่อให้ห่างไกล 712 00:35:35,090 --> 00:35:37,555 เราสามารถทำเช่นนี้ใน PHP ได้เป็นอย่างดี โดยการเพิ่มสิ่งที่เรียกว่า 713 00:35:37,555 --> 00:35:40,026 shebang ไปด้านบนของไฟล์ PHP ของเรา 714 00:35:40,026 --> 00:35:41,400 ฉันรู้ว่ามันเป็นชนิดของคำโง่ 715 00:35:41,400 --> 00:35:44,540 มันสั้นปังกัญชา 716 00:35:44,540 --> 00:35:46,300 นั่นเป็นครั้งแรกที่ตัวละครทั้งสองมี 717 00:35:46,300 --> 00:35:50,030 โปรดจำไว้ว่าเราเรียกเครื่องหมายอัศเจรีย์ บ่อยปังวิทยาการคอมพิวเตอร์ 718 00:35:50,030 --> 00:35:51,690 นอกจากนี้ยังอาจจะมีสำหรับบางที่คมชัด 719 00:35:51,690 --> 00:35:53,273 มีสองวิธีที่จะตีความมันเป็น 720 00:35:53,273 --> 00:35:57,320 แต่มันเป็นพื้นจัดเรียงพิเศษ คำสั่งที่ล่าม PHP 721 00:35:57,320 --> 00:36:00,160 เข้าใจเป็นโอ้ฉันต้องการ คุณสามารถรันโปรแกรมนี้ 722 00:36:00,160 --> 00:36:05,250 ซึ่งเป็นที่เห็นได้ชัด / ผู้ใช้ / bin / PHP, ซึ่ง เป็นจริงที่ล่าม PHP 723 00:36:05,250 --> 00:36:08,590 โดยเฉพาะอาศัยอยู่บนระบบของเรา 724 00:36:08,590 --> 00:36:12,530 ดังนั้นสิ่งที่เกิดขึ้น it's-- ที่นี่ก็คือ ล่ามเข้าใจโอ้ 725 00:36:12,530 --> 00:36:17,270 ฉันควรเห็นได้ชัดที่จะใช้ ในโปรแกรมนี้ในการเรียกใช้แฟ้มนี้ 726 00:36:17,270 --> 00:36:20,010 และดังนั้นจึงช่วยให้คุณ จะข้ามขั้นตอน 727 00:36:20,010 --> 00:36:22,979 ต้องบอกว่าเป็น PHP something.php 728 00:36:22,979 --> 00:36:25,020 มีการจับเป็นอีกคนหนึ่ง ที่นี่ซึ่งก็คือว่าถ้าเรา 729 00:36:25,020 --> 00:36:27,320 ต้องการโปรแกรมของเราไป ทำงานตามที่คาดเรา 730 00:36:27,320 --> 00:36:30,220 ต้องทำสิ่งที่เรียกว่า การเปลี่ยนแปลงสิทธิ์ในแฟ้ม 731 00:36:30,220 --> 00:36:33,380 และเราจะ go-- และเราพูดคุยเล็ก ๆ น้อย ๆ อีกเล็กน้อยเกี่ยวกับการเปลี่ยนแปลงสิทธิ์ในแฟ้ม 732 00:36:33,380 --> 00:36:37,550 ในวิดีโอของเราใน MVC แต่พอไป บอกว่านี่คือสิ่งที่คุณต้องทำ 733 00:36:37,550 --> 00:36:42,760 เพื่อที่จะทำให้คุณ .php ไฟล์ปฏิบัติการ 734 00:36:42,760 --> 00:36:49,330 ดังนั้นลองมาดูที่นี้เป็น ตัวอย่างสุดท้ายของเรามากกว่าใน CS50 IDE 735 00:36:49,330 --> 00:36:53,910 >> ดังนั้นที่นี่ใน IDE ฉันมีสองไฟล์ในนี้ PHP ไดเรกทอรีที่ปรากฏไม่ได้ที่จะ 736 00:36:53,910 --> 00:36:55,310 เรียกว่า .php 737 00:36:55,310 --> 00:36:58,170 ฉันมีฟังก์ชั่นที่เรียกว่า add-- ฉันมีไฟล์ที่เรียกว่า add3 738 00:36:58,170 --> 00:37:00,650 และไฟล์ที่เรียกว่า dice2 739 00:37:00,650 --> 00:37:03,680 ดังนั้นลองมาอย่างรวดเร็ว ดูและเปิด add3 740 00:37:03,680 --> 00:37:08,300 และในขณะที่คุณสามารถดูที่จุดเริ่มต้น ของไฟล์ของฉันฉันมี shebang นี้ใช่มั้ย? 741 00:37:08,300 --> 00:37:11,420 กัญชาเครื่องหมายอัศเจรีย์นี้ 742 00:37:11,420 --> 00:37:15,115 ตอนนี้คุณอาจจะยัง แจ้งให้ทราบว่าด้วยเหตุผลบางอย่าง 743 00:37:15,115 --> 00:37:16,990 ฉันไม่ได้มีไวยากรณ์ใด ๆ ไฮไลต์อีกต่อไป 744 00:37:16,990 --> 00:37:20,198 และนี่คือสิ่งที่ฉันพูดพาดพิงถึงก่อนหน้านี้ ซึ่งเป็นว่าถ้าผมไม่ได้ตั้งชื่อไฟล์ของฉัน 745 00:37:20,198 --> 00:37:23,040 .php, ฉั​​นไม่ได้มีผลประโยชน์ ของการเน้นไวยากรณ์อีกต่อไป 746 00:37:23,040 --> 00:37:26,220 ไฟล์นี้จะเรียกว่าเพียงแค่ add3 747 00:37:26,220 --> 00:37:30,960 เพื่อที่จะสามารถทำงานได้ในภายหลัง กับ add3 ./ และไม่ ./ add3.php 748 00:37:30,960 --> 00:37:33,680 >> ดังนั้น reason-- ก็ยังคง ดีก็ยังคงถูกต้อง PHP, 749 00:37:33,680 --> 00:37:37,000 แต่ไม่ได้เน้นไวยากรณ์เพราะ ไฟล์นี้ไม่ได้เรียกว่า something.php 750 00:37:37,000 --> 00:37:41,580 นั่นคือความแตกต่างที่แท้จริงเพียงอย่างเดียว ที่นี่บวก shebang 751 00:37:41,580 --> 00:37:45,170 ดังนั้นเรามาดูสิ่งที่เกิดขึ้นเมื่อ ฉันพยายามเรียกใช้โปรแกรมนี้ 752 00:37:45,170 --> 00:37:50,780 ./ add3 เช่นเดียวกับฉันจะมีซีทุบตี 753 00:37:50,780 --> 00:37:53,190 ./ รับอนุญาต add3 ปฏิเสธ 754 00:37:53,190 --> 00:37:55,390 นี่คือสิ่งที่คุณกำลังจะ เพื่อดูว่าคุณลืม 755 00:37:55,390 --> 00:37:59,280 ที่จะใช้คำสั่ง chmod เพื่อเปลี่ยน สิทธิ์ของไฟล์ 756 00:37:59,280 --> 00:38:03,845 >> มันจะเปิดออก, PHP ปกติ ไฟล์ก็ไม่สามารถที่จะดำเนินการ 757 00:38:03,845 --> 00:38:06,970 พวกเขาสามารถตีความได้ แต่เรา ทำสิ่งที่แตกต่างกันเล็กน้อยที่นี่ 758 00:38:06,970 --> 00:38:07,761 เรากำลังดำเนินการมัน 759 00:38:07,761 --> 00:38:12,970 และดังนั้นผมจึงจำเป็นต้องเพิ่มได้รับอนุญาต ของการดำเนินการ chmod A + x เพื่อ add3 760 00:38:12,970 --> 00:38:15,680 แล้วฉันสามารถพูดได้ add3 ./ 761 00:38:15,680 --> 00:38:16,860 โปรดให้ฉันเป็นจำนวนมาก 762 00:38:16,860 --> 00:38:18,060 5, 6 763 00:38:18,060 --> 00:38:20,490 ผลรวมของทั้งสองจำนวนคือ 11 764 00:38:20,490 --> 00:38:26,530 >> ในทำนองเดียวกันผมได้ chmoded แล้ว dice2 ดังนั้นฉันสามารถเพียงพิมพ์ ./ dice2, 765 00:38:26,530 --> 00:38:31,260 คุณรีด 1 และ 1 คุณ รีด 5 และ 4 และอื่น ๆ 766 00:38:31,260 --> 00:38:33,680 >> ดังนั้นที่สวยมาก ความคิดของไวยากรณ์ PHP ใช่มั้ย? 767 00:38:33,680 --> 00:38:35,221 มีจำนวนมากที่จะเป็นได้รับผ่านฉันรู้ว่า 768 00:38:35,221 --> 00:38:39,160 แต่หวังว่าคุณเคยเห็นในขณะนี้ว่า PHP ไม่ได้จริงๆที่แตกต่างจาก C 769 00:38:39,160 --> 00:38:43,670 และจริงๆทำให้เราสามารถ ที่จะใช้สิ่งขึ้นรอยหรือสอง 770 00:38:43,670 --> 00:38:48,230 เราไม่ได้จริงๆต้องกังวล มากเกินไป about-- ที่เราทำไม่ได้จริงๆ 771 00:38:48,230 --> 00:38:51,605 ต้องกังวลมากเกินไปเกี่ยวกับ รายละเอียดในระดับต่ำเรา 772 00:38:51,605 --> 00:38:52,980 จะต้องกังวลเกี่ยวกับ C ใช่มั้ย? 773 00:38:52,980 --> 00:38:56,170 เราสามารถมุ่งเน้นไปที่สูงขึ้น สิ่งที่ทุกระดับ 774 00:38:56,170 --> 00:39:01,090 ช่วยให้เราสามารถที่จะทำและจะใช้สำหรับการ รับว่ามันจะทำงานให้เรา 775 00:39:01,090 --> 00:39:04,350 ดังนั้นจึงช่วยให้เรามีความสามารถในตอนนี้ เปลี่ยนจาก C ถึง PHP, 776 00:39:04,350 --> 00:39:08,280 เพื่อให้โปรแกรมที่มีมากขึ้น และบางทีอาจจะซับซ้อนมากที่แข็งแกร่งมากขึ้น 777 00:39:08,280 --> 00:39:13,070 >> ดังนั้นผมจึงหวังว่าคุณมีการทำงานที่สนุก ด้วย PHP และฉันลอยด์ดั๊ก 778 00:39:13,070 --> 00:39:15,050 นี่คือ CS50 779 00:39:15,050 --> 00:39:17,637