1 00:00:00,000 --> 00:00:02,916 2 00:00:02,916 --> 00:00:04,860 >> [เล่นเพลง] 3 00:00:04,860 --> 00:00:10,210 4 00:00:10,210 --> 00:00:13,350 >> DAVID ลัน: นี่คือ CS50 และ นี้คือจุดเริ่มต้นของสัปดาห์แปด 5 00:00:13,350 --> 00:00:17,510 และเรารู้สึกตื่นเต้นมากที่จะต้อนรับ กลับประหลาดใจใหญ่รามอน CS50 ของตัวเอง 6 00:00:17,510 --> 00:00:22,160 Galvan, อาวุโสที่ได้รับเพิ่มขึ้น ใช้เวลาหลายเดือนที่ผ่าน 7 00:00:22,160 --> 00:00:26,190 ตั้งแต่เดือนกรกฎาคมในแอลเอในฮอลลีวู้ด แท้จริงทำงานในแบรนด์ทีวีใหม่ 8 00:00:26,190 --> 00:00:31,930 การแสดงที่เรียกว่าอาณานิคมผู้สร้างที่ เป็นจริงสารส้มฮาร์วาร์ตัวเอง 9 00:00:31,930 --> 00:00:36,610 และเพื่อให้เรารู้สึกตื่นเต้นมากที่เห็นนี้ เปิดตัวบนเครือข่ายสหรัฐอเมริกามกราคมนี้ 10 00:00:36,610 --> 00:00:40,370 ดังนั้นติดตามความคืบหน้าการที่และ รามอนมากขึ้นสำหรับสัปดาห์ที่ผ่านมา 11 00:00:40,370 --> 00:00:42,550 >> รู้ว่าตอนนี้ว่าปลายอยู่ใกล้ 12 00:00:42,550 --> 00:00:47,400 และสิ่งนี้หมายความว่ามีไม่ ทุกสิ่งที่ซ้ายมาก CS50 เศร้าที่จะพูด 13 00:00:47,400 --> 00:00:49,400 เรามีเพียงสามปัญหา ชุด left-- มี 14 00:00:49,400 --> 00:00:52,510 ปัญหาตั้ง six-- ที่อยู่ใน มือของคุณตอนนี้หรือเร็ว ๆ นี้จะเป็น 15 00:00:52,510 --> 00:00:56,080 เนื่องจาก week-- ภายหลังนี้จะหมายถึงการเชื่อมโยง โลกของเราในบรรทัดคำสั่งที่ 16 00:00:56,080 --> 00:00:59,450 เราได้ใช้เวลาส่วนใหญ่ของเราโดยใช้ C และโลกของการเขียนโปรแกรมเว็บ 17 00:00:59,450 --> 00:01:02,350 ดีที่คุณจะพบมากของความคิด ที่ยืมมาจากการทำงานของบรรทัดคำสั่ง 18 00:01:02,350 --> 00:01:04,560 แต่ยังมีจำนวนมากของใหม่ และความคิดที่น่าสนใจ 19 00:01:04,560 --> 00:01:07,929 ที่ยังไปได้ใกล้ชิดสำหรับ การใช้งานโทรศัพท์มือถือและเทคโนโลยี 20 00:01:07,929 --> 00:01:10,470 มากขึ้นโดยทั่วไปด้วยซึ่งคุณ ผู้ชายทุกคนคุ้นเคยในปัจจุบัน 21 00:01:10,470 --> 00:01:12,090 แล็ปท็อปและโทรศัพท์และไม่ชอบ 22 00:01:12,090 --> 00:01:15,220 >> ดังนั้นคุณจะไม่ได้ดำเนินการ หน้าเว็บหรือเว็บไซต์ 23 00:01:15,220 --> 00:01:17,620 ต่อ se แต่เว็บเซิร์ฟเวอร์ที่เกิดขึ้นจริง 24 00:01:17,620 --> 00:01:21,590 คุณจะเขียนส่วนที่เหลือของเว็บเซิร์ฟเวอร์ เขียนใน C ซึ่งมีจุดมุ่งหมายในชีวิต 25 00:01:21,590 --> 00:01:25,410 คือการได้รับการร้องขอ HTTP, ผู้ ซองจดหมายเสมือนเราให้การพูดคุย 26 00:01:25,410 --> 00:01:29,780 เกี่ยวกับและจริงทั้งที่มีการตอบสนอง บาง content-- คงเหมือนจุด HTML 27 00:01:29,780 --> 00:01:32,310 ไฟล์หรือจุด JPEG หรือ จำนวนใด ๆ อื่น ๆ ของไฟล์ 28 00:01:32,310 --> 00:01:37,070 หรือแม้กระทั่งไฟล์ PHP โดยเว็บของคุณ เซิร์ฟเวอร์จะไปตีความ PHP ที่ 29 00:01:37,070 --> 00:01:38,332 รหัสและคายออกผล 30 00:01:38,332 --> 00:01:40,540 ตอนนี้เราได้ให้กับคุณ ไม่น้อยของกรอบ 31 00:01:40,540 --> 00:01:43,100 สำหรับ it-- แน่นอน รหัสสำหรับปัญหาการจัดจำหน่าย 32 00:01:43,100 --> 00:01:47,496 ตั้งหกมีมากกว่า 1,000 สายยาว จำนวนมากซึ่งเป็นความเห็นที่จะเป็น fair-- 33 00:01:47,496 --> 00:01:49,370 แต่นี่คือความหมายจริงๆ จะเป็นโอกาสที่ 34 00:01:49,370 --> 00:01:52,570 ที่จะได้รับในมือของคุณดำน้ำสกปรก เป็นโครงการขนาดใหญ่พอสมควร 35 00:01:52,570 --> 00:01:55,570 ที่เราได้มากโดยเฉพาะ แกะสลักจากชิ้นส่วนของสำหรับคุณ 36 00:01:55,570 --> 00:01:59,046 เพื่อที่ว่าจริงๆเมื่อคุณออกจาก CS50 และ เข้าสู่โลกแห่งความจริงของการเขียนโปรแกรม 37 00:01:59,046 --> 00:02:00,920 และต้องการที่จะตะลุยใน จำนวนโครงการใด ๆ 38 00:02:00,920 --> 00:02:03,253 คุณจะมีมากขึ้น ความสะดวกสบายในการดาวน์โหลดซอร์สบาง 39 00:02:03,253 --> 00:02:05,020 รหัสบางโอเพนซอร์ส โครงการบนเว็บ 40 00:02:05,020 --> 00:02:08,174 และดำน้ำในและทำให้ การเปลี่ยนแปลงที่คุณเห็นพอดี 41 00:02:08,174 --> 00:02:11,340 ปัญหาตั้งเจ็ดเป็นไปได้เกี่ยวกับ ทำให้โปรแกรมประยุกต์บนเว็บของคุณเอง 42 00:02:11,340 --> 00:02:14,140 ที่ใช้เวลาการป้อนข้อมูลแบบไดนามิกและ ผลิตออกแบบไดนามิกในรูปแบบ 43 00:02:14,140 --> 00:02:16,920 ของเว็บไซต์ etrade.com เหมือน 44 00:02:16,920 --> 00:02:20,800 และปัญหาการตั้งแปดจะมุ่งเน้นไปยัง ภาษาอื่นที่รู้จักกันเป็น JavaScript 45 00:02:20,800 --> 00:02:24,170 >> ในขณะเดียวกันในขั้นตอนสุดท้าย โครงการอยู่บนขอบฟ้า 46 00:02:24,170 --> 00:02:26,800 ที่เรียกว่าข้อเสนอก่อน เป็นเพราะสัปดาห์จากวันนี้ 47 00:02:26,800 --> 00:02:29,930 Pre-proposal-- ต่อสเปค ซึ่งอยู่บน website-- CS50 ของ 48 00:02:29,930 --> 00:02:33,260 เป็นโอกาสที่สบาย ๆ สวยสำหรับ คุณสามารถส่งอีเมลสั้นสวย 49 00:02:33,260 --> 00:02:35,170 เพื่อนของคุณการเรียนการสอน เพียงเพื่อบอกเขา 50 00:02:35,170 --> 00:02:38,250 หรือเธอในสิ่งที่คุณกำลังคิดที่จะ ใช้เขาหรือเธอเป็นคณะกรรมการการทำให้เกิดเสียง 51 00:02:38,250 --> 00:02:40,980 และมีสติ check-- ไม่ว่าคุณกำลังคิด 52 00:02:40,980 --> 00:02:43,210 เกี่ยวกับการกัดออกมากเกินไป มากหรืออาจจะน้อยเกินไป 53 00:02:43,210 --> 00:02:46,480 หรือบางทีคุณอาจมีความคิดใด ๆ และต้องการที่จะมีส่วนร่วมในการสนทนา 54 00:02:46,480 --> 00:02:48,480 >> หลังจากนั้นเป็นข้อเสนอ และรายงานสถานะ 55 00:02:48,480 --> 00:02:51,860 ที่เรียกว่า CS50 Hackathon ที่นี่ใน เคมบริดจ์สำหรับนักศึกษาฮาร์วาร์และเยล 56 00:02:51,860 --> 00:02:52,362 เหมือนกัน 57 00:02:52,362 --> 00:02:54,320 โครงการสุดท้ายของ การดำเนินงานเป็นแล้วเนื่องจาก 58 00:02:54,320 --> 00:02:59,290 และจากนั้นก็เป็นธรรม CS50 นี่ในเคมบริดจ์ เช่นเดียวกับอีกในนิวเฮเวน 59 00:02:59,290 --> 00:03:02,500 ดังนั้นข้อเสนอที่จะดูที่ เว็บไซต์สำหรับรายการเหล่านั้น 60 00:03:02,500 --> 00:03:06,530 >> แต่ที่โลดโผนเกินไปเป็น โอกาสที่จะได้รับในมือของคุณสกปรก 61 00:03:06,530 --> 00:03:09,350 และความคิดของคุณเปิดให้ทั้งหมด พวงของหัวข้อและเครื่องมือ 62 00:03:09,350 --> 00:03:12,920 และเทคนิคที่มีเสริม หลักสูตรหลักในการเรียนการสอนของ 63 00:03:12,920 --> 00:03:14,810 แต่อย่างไรก็ตามที่เกี่ยวข้อง 64 00:03:14,810 --> 00:03:18,400 และยังก้าวหินที่ยอดเยี่ยมเพื่อ การทำโครงการสุดท้ายที่เย็นจริงๆ 65 00:03:18,400 --> 00:03:22,020 ไปได้ดีเกินวัสดุที่เราได้ครอบคลุม อย่างเป็นทางการในชุดปัญหาหรือในการบรรยาย 66 00:03:22,020 --> 00:03:24,446 ดังนั้นไปที่เว็บไซต์ CS50 สำหรับ บัญชีรายชื่อทั้งหมดของการสัมมนา 67 00:03:24,446 --> 00:03:26,070 หากคุณไม่ได้ลงทะเบียนยังที่ดี 68 00:03:26,070 --> 00:03:29,860 ไปข้างหน้าและยังคงลงทะเบียนและเราจะ ตามด้วยการสตรีมมิ่งการเชื่อมโยงสด 69 00:03:29,860 --> 00:03:31,844 วันและเวลาที่อยู่บนเว็บไซต์ 70 00:03:31,844 --> 00:03:33,760 และทุกอย่างจะ บันทึกและนำออนไลน์ 71 00:03:33,760 --> 00:03:35,800 ถ้าคุณไม่สามารถทำให้ โดยเฉพาะอย่างยิ่งวันที่และเวลา 72 00:03:35,800 --> 00:03:39,380 >> เป็นสิ่งที่อยู่ข้างหน้า thereafter-- ดี แน่นอนว่ายังมีเป็น CS50 Hackathon 73 00:03:39,380 --> 00:03:43,560 ภาพนี้เรียกคืนจากศูนย์สัปดาห์นำ รอบ 04:00 ในเย็นวันหนึ่งในปีที่ผ่านมา 74 00:03:43,560 --> 00:03:46,900 ยุติธรรม CS50 อีกครั้งซึ่ง จะเกิดขึ้นในเมืองทั้งสอง 75 00:03:46,900 --> 00:03:49,760 และจากนั้นก็เพียงเพื่อปลูก เมล็ดแม้ว่าเราจะยังคง 76 00:03:49,760 --> 00:03:54,080 มีเดือนบวกด้านซ้ายของภาคการศึกษาถ้า คุณต้องการที่จะเข้าร่วมการเรียนการสอนของตัวเอง CS50 77 00:03:54,080 --> 00:03:56,770 พนักงานและคุณต้องการที่จะเริ่มต้น คิดเกี่ยวกับการเป็น CA, 78 00:03:56,770 --> 00:03:59,550 การเรียนการสอนหรือเพื่อนรู้ว่า เราจะเริ่มพูดคุยเกี่ยวกับที่อื่น ๆ 79 00:03:59,550 --> 00:04:00,630 ภาคการศึกษานี้ในภายหลัง 80 00:04:00,630 --> 00:04:03,470 แต่เป็นภาพที่นี่ มากที่สุดของทีมในปีนี้ 81 00:04:03,470 --> 00:04:06,950 >> ดังนั้น PHP-- และฉันก็เศร้ามาก สัปดาห์ที่แล้วว่า [? Allyse?] กรุณา 82 00:04:06,950 --> 00:04:09,370 ไปกับความพยายามในการได้รับ เราประกอบฉากยอดเยี่ยมเหล่านี้ 83 00:04:09,370 --> 00:04:11,720 ว่าผมไม่ได้จบลงด้วยการใช้จึง จริงๆเพียงแค่มองชนิดของโง่ 84 00:04:11,720 --> 00:04:15,160 ที่เรามีพลั่วนั่งอยู่ที่นี่ทั้งหมด วันสุดท้ายวันพุธและช้อนเล็ก ๆ น้อย ๆ 85 00:04:15,160 --> 00:04:17,709 แต่นี่เป็นของฉันเปรียบเปรย วิธีการพยายามที่จะวาด 86 00:04:17,709 --> 00:04:21,600 ภาพของเหตุผลที่เรากำลังก้าว จาก C ไปภาษาเช่น PHP 87 00:04:21,600 --> 00:04:25,480 และเดียวกันอาจจะกล่าวใด ๆ จำนวน languages​​-- Java, Python, Ruby 88 00:04:25,480 --> 00:04:31,270 หรือที่อัดแน่นของ others-- แต่ในขณะที่ C เช่นการเขียนโปรแกรมในเซลเซียส 89 00:04:31,270 --> 00:04:34,050 โดยทั่วไปอาจจะชอบ การช้อนเช่นนี้ 90 00:04:34,050 --> 00:04:36,770 และขุดหลุมในที่ ดินทรายหรือสิ่งสกปรก 91 00:04:36,770 --> 00:04:39,770 PHP ช่วยให้คุณสามารถใช้เวลามาก กัดที่ใหญ่กว่าจากปัญหาที่เกิดขึ้น 92 00:04:39,770 --> 00:04:42,842 เขียนโค้ดน้อย โดยใช้เครื่องมือที่มีขนาดเล็กห่างไกล 93 00:04:42,842 --> 00:04:45,050 เพราะมีมากขึ้น ฟังก์ชั่นในการปะติดปะต่อ 94 00:04:45,050 --> 00:04:47,633 >> ตอนนี้ถ้าเราเป็นอย่างมากจริงๆ เราจะมีสิ่งที่จะขุด 95 00:04:47,633 --> 00:04:48,760 ที่นี่ แต่ช่างมันเถอะ 96 00:04:48,760 --> 00:04:51,370 ในขณะที่คนอื่น ๆ อุปมาเรามาด้วย 97 00:04:51,370 --> 00:04:53,770 เป็นของหลักสูตรที่คุณสามารถทำได้ ใช้สิ่งที่ต้องการประแจ 98 00:04:53,770 --> 00:04:56,610 ค้อนในสิ่งที่ต้องการเล็บ 99 00:04:56,610 --> 00:04:58,980 แต่แน่นอนที่เหมาะสม เครื่องมือในการใช้งานเป็นไป 100 00:04:58,980 --> 00:05:01,360 จะเป็นไม่มาก ภาษาที่เรียกว่า C-- 101 00:05:01,360 --> 00:05:03,590 และตอนนี้ผมก็แค่รำคาญ [? แซนเดอ?] อาจ 102 00:05:03,590 --> 00:05:07,890 เราจะแก้ไขปัญหาที่ later-- ดังนั้น เครื่องมือที่เหมาะสมในการใช้งานบ่อยครั้ง 103 00:05:07,890 --> 00:05:09,640 จะไม่เป็น เครื่องมือระดับต่ำสุด 104 00:05:09,640 --> 00:05:13,720 และแน่นอน, C ไม่ใช่ภาษาที่ ส่วนใหญ่ของคุณเคยไปใช้ 105 00:05:13,720 --> 00:05:15,590 หรือจำเป็นต้องควรใช้อีกครั้ง 106 00:05:15,590 --> 00:05:18,350 >> และในความเป็นจริงเล็กน้อย secret-- เพียงครั้งเดียว 107 00:05:18,350 --> 00:05:23,160 ผมใช้ C ตัวเองสวยมากระหว่าง กันยายนและธันวาคมของทุกฤดูใบไม้ร่วง 108 00:05:23,160 --> 00:05:23,870 เทอม 109 00:05:23,870 --> 00:05:25,790 และนั่นเป็นเพราะเรา ใช้มันเป็นโอกาสที่ 110 00:05:25,790 --> 00:05:27,852 ที่จะสอนพื้นฐาน ในการเขียนโปรแกรม 111 00:05:27,852 --> 00:05:29,810 และด้วยคอมพิวเตอร์ ปัจจัยพื้นฐานวิทยาศาสตร์ข้อมูล 112 00:05:29,810 --> 00:05:32,435 โครงสร้างและขั้นตอนวิธี like-- แต่อย่างรวดเร็วคุณจะ 113 00:05:32,435 --> 00:05:35,010 เห็นว่าตอนนี้ไวยากรณ์ และความคิดพื้นฐาน C 114 00:05:35,010 --> 00:05:37,530 จึงเป็นที่น่าพิศวง โอนไปยังทันสมัย​​มากขึ้น 115 00:05:37,530 --> 00:05:41,130 ภาษาระดับสูงเช่น PHP และ Python และ Perl และ Java 116 00:05:41,130 --> 00:05:46,750 และวัตถุประสงค์ C-- จริงไม่มาก วัตถุประสงค์ C-- แต่สวิฟท์เหล่านี้ใหม่ 117 00:05:46,750 --> 00:05:50,010 ภาษาที่หลายท่านจะ แล้วตะลุยกับคุณโครงการสุดท้าย 118 00:05:50,010 --> 00:05:55,070 >> โดยไม่ต้องกังวลใจต่อให้ของจริง ใช้ PHP ในการแก้ปัญหาบางอย่าง 119 00:05:55,070 --> 00:06:00,230 จำได้ว่าในช่วงต้นที่ผ่านมา สัปดาห์เราก็ใช้ CS50 IDE, 120 00:06:00,230 --> 00:06:02,990 เราเขียนโปรแกรมเล็ก ๆ Dinky ที่เพียงแค่พูดว่า "สวัสดีชาวโลก." 121 00:06:02,990 --> 00:06:05,680 และจากนั้นผมบันทึกไว้ใน ไฟล์ที่เรียกว่า hello.php 122 00:06:05,680 --> 00:06:07,280 แล้วฉันวิ่งคำสั่งนี้ 123 00:06:07,280 --> 00:06:08,080 >> และทำไม? 124 00:06:08,080 --> 00:06:09,900 ในภาษาอังกฤษ, สิ่งที่เกิดขึ้นที่นี่? 125 00:06:09,900 --> 00:06:12,760 อะไรคือสิ่งที่ผมทำเมื่อ ฉันวิ่งคำสั่งนี้หรือไม่? 126 00:06:12,760 --> 00:06:13,405 >> ใช่? 127 00:06:13,405 --> 00:06:16,572 >> ผู้ชม: มีฟังก์ชัน PHP เป็นบางส่วน ที่อ่านสิ่งที่ in-- เข้าใจว่า 128 00:06:16,572 --> 00:06:19,696 DAVID ลัน: ดีมีฟังก์ชั่นบางอย่าง PHP-- และแจ้งให้เราเฉพาะเจาะจงมากขึ้น 129 00:06:19,696 --> 00:06:21,810 มีโปรแกรมที่เรียกว่า PHP เป็น a.k.a. 130 00:06:21,810 --> 00:06:25,872 ล่ามที่เข้าใจ เนื้อหาของ hello.php, 131 00:06:25,872 --> 00:06:27,830 และตีความมันบนลง ด้านล่างซ้ายไปขวา 132 00:06:27,830 --> 00:06:29,590 และไม่ว่าคำสั่งดังกล่าวบอกว่า 133 00:06:29,590 --> 00:06:33,320 คำสั่งใน hello.php แน่นอน เป็นเพียงแหล่งที่มาฟังก์ชั่น code-- 134 00:06:33,320 --> 00:06:35,750 และตัวแปรและลูปและ เหมือนที่เราเอง 135 00:06:35,750 --> 00:06:37,460 ได้เริ่มต้นการเขียนใน PHP 136 00:06:37,460 --> 00:06:40,240 >> แต่แตกต่างจากซีซึ่งเป็น ภาษาที่รวบรวม 137 00:06:40,240 --> 00:06:42,810 PHP คุณเพียงแค่เขียนมันและใช้มัน 138 00:06:42,810 --> 00:06:46,420 คุณข้ามขั้นตอนของพ่อค้าคนกลางที่ การแปลงไปยังศูนย์และคน, 139 00:06:46,420 --> 00:06:47,790 แล้วใช้มัน 140 00:06:47,790 --> 00:06:50,510 และเพื่อให้สิ่งที่เป็นอัพไซด์จากนี้หรือไม่ 141 00:06:50,510 --> 00:06:52,690 เหตุผลที่เราจะข้ามขั้นตอนหรือไม่ 142 00:06:52,690 --> 00:06:55,238 ทำไมภาษาที่ทันสมัย​​มากขึ้น มีแนวโน้มที่จะข้ามขั้นตอนนี้? 143 00:06:55,238 --> 00:06:58,880 144 00:06:58,880 --> 00:07:01,220 สิ่งที่เป็นประโยชน์หรือไม่ 145 00:07:01,220 --> 00:07:02,080 >> หรือเพียงแค่สังหรณ์ใจ? 146 00:07:02,080 --> 00:07:04,200 แม้ว่าเราจะไม่ได้ เขียน PHP มากก่อน 147 00:07:04,200 --> 00:07:07,210 สิ่งที่เป็นประโยชน์เกี่ยวกับการไม่ รวบรวมรหัสของคุณคุณคิดว่า? 148 00:07:07,210 --> 00:07:08,520 ไม่ได้หรือไม่ 149 00:07:08,520 --> 00:07:09,610 ไม่กระทำ? 150 00:07:09,610 --> 00:07:11,350 เกาหัวของคุณ? 151 00:07:11,350 --> 00:07:12,614 ใช่ 152 00:07:12,614 --> 00:07:13,600 >> ผู้ชม: แบบไดนามิกเพิ่มเติม 153 00:07:13,600 --> 00:07:14,683 >> DAVID ลัน: แบบไดนามิกมากขึ้น? 154 00:07:14,683 --> 00:07:16,032 คุณหมายความว่าอะไร? 155 00:07:16,032 --> 00:07:17,000 >> ผู้ชม: [ไม่ได้ยิน] 156 00:07:17,000 --> 00:07:20,349 157 00:07:20,349 --> 00:07:22,390 DAVID ลัน: ตกลงที่ดีดังนั้น ขึ้นอยู่กับการป้อนข้อมูล 158 00:07:22,390 --> 00:07:23,470 คุณไม่ได้มีการรวบรวมทุกครั้ง 159 00:07:23,470 --> 00:07:24,990 และมันคือเรื่องจริงเป็น ง่ายๆเป็นสิ่งที่ that-- 160 00:07:24,990 --> 00:07:26,990 เป็นจุดของการอย่างต่อเนื่อง เพื่อรวบรวมรหัสของคุณ? 161 00:07:26,990 --> 00:07:29,480 นี่เป็นเพียงขั้นตอนที่ making-- นี้เป็นที่ต้องการ, 162 00:07:29,480 --> 00:07:31,900 สำหรับที่ผ่านมาหลาย ๆ สัปดาห์ที่ผ่านมาขั้นตอนที่สองเท่า 163 00:07:31,900 --> 00:07:33,820 เป็นเพียงการเรียกใช้โปรแกรมของคุณ 164 00:07:33,820 --> 00:07:36,940 จะได้รับประโยชน์ในการดูว่าคุณ เห็นบางข้อความผิดพลาดและอื่น ๆ 165 00:07:36,940 --> 00:07:38,720 แต่มันก็ยังคงเป็นเพียงขั้นตอนที่น่ารำคาญ 166 00:07:38,720 --> 00:07:41,810 >> และเพื่อให้ตระหนักถึงการเขียนโปรแกรม ในช่วงเวลาที่ว่าทำไมเราไม่ 167 00:07:41,810 --> 00:07:45,327 เริ่มต้นการเขียนภาษาที่ทำไม่ได้ ขั้นตอนที่ต้องกลอย่างเป็นธรรม 168 00:07:45,327 --> 00:07:47,160 เพื่อให้สามารถเขียน รหัสของคุณและเรียกใช้ 169 00:07:47,160 --> 00:07:48,920 แต่สิ่งที่ราคา ที่เราเห็นเราจ่าย 170 00:07:48,920 --> 00:07:50,910 สัปดาห์ที่ผ่านมามีตัวอย่างหนึ่งโดยเฉพาะ? 171 00:07:50,910 --> 00:07:51,650 ใช่? 172 00:07:51,650 --> 00:07:52,370 >> ความเร็ว 173 00:07:52,370 --> 00:07:54,690 ดังนั้น [? สิ่งที่?] ล่าม ช้าลงเล็กน้อย 174 00:07:54,690 --> 00:07:57,330 ในการที่ศูนย์และคนที่มี ที่ดีและรวดเร็วสำหรับคอมพิวเตอร์ 175 00:07:57,330 --> 00:08:00,070 ที่จะเข้าใจเพราะ Intel CPU หรืออะไรก็ตามที่มันเป็น 176 00:08:00,070 --> 00:08:03,070 เพียงแค่มีความเข้าใจในสิ่งที่เกิดขึ้น กับรูปแบบของบิตเหล่านั้น 177 00:08:03,070 --> 00:08:05,370 ในขณะที่ล่าม เป็นโปรแกรมที่จริงๆ 178 00:08:05,370 --> 00:08:07,980 มีการอ่านแหล่ง Ascii รหัสที่คุณได้เขียน 179 00:08:07,980 --> 00:08:12,700 และแปลงเป็นเพื่อที่จะพูดหรือ คิดออกว่าจะแปลงในท้ายที่สุด 180 00:08:12,700 --> 00:08:13,525 ไปศูนย์และคน 181 00:08:13,525 --> 00:08:15,650 ดังนั้นจึงใช้เวลาเพียงเล็กน้อย บิตของการตี 182 00:08:15,650 --> 00:08:16,858 ดังนั้นจึงเป็นบิตของการค้าปิด 183 00:08:16,858 --> 00:08:21,570 ตอนนี้ถ้าเราทำเช่นนี้มากกว่าที่นี่ให้ฉัน ไปข้างหน้าและทำตัวอย่างดังต่อไปนี้ 184 00:08:21,570 --> 00:08:26,610 ถ้าฉันไปในที่นี่ไฟล์ใหม่ฉันจะ เพื่อประหยัดนี้อีกครั้งเป็น hello.php 185 00:08:26,610 --> 00:08:31,450 และตอนนี้ฉันจะไปข้างหน้า และพูดว่า "สวัสดีพิมพ์โลก" - 186 00:08:31,450 --> 00:08:35,130 และจำได้ว่าฉันสามารถใช้พิมพ์ฉันทำไม่ได้ ต้องใช้การพิมพ์-F และตอนนี้ลงที่นี่ 187 00:08:35,130 --> 00:08:42,039 ถ้าฉันทำของ PHP hello.php, huh-- ฉัน ดูเหมือนจะไม่ได้ตีความมัน 188 00:08:42,039 --> 00:08:43,412 ฉันทำผิดอะไร? 189 00:08:43,412 --> 00:08:44,710 >> ผู้ชม: กำไลมุม 190 00:08:44,710 --> 00:08:47,015 >> DAVID ลัน: ใช่คุณจะต้อง ที่วงเล็บมุมด้านบนขึ้น 191 00:08:47,015 --> 00:08:49,390 ดังนั้นจึงเป็นชนิดที่น่ารำคาญ แต่ คุณได้รับใช้มันได้อย่างรวดเร็ว 192 00:08:49,390 --> 00:08:53,500 ถ้าผมต้องเขียนโค้ด PHP ผม โดยทั่วไปจำเป็นต้องบอกโปรแกรม 193 00:08:53,500 --> 00:08:56,950 หรือบอกล่ามเดี๋ยวก่อน PHP นี่มาบางโค้ด PHP 194 00:08:56,950 --> 00:09:00,440 และแล้วการวัดที่ดีผมจะ ไม่ปิดนี้กับเรื่องนี้ แต่ 195 00:09:00,440 --> 00:09:03,740 กับคำถามเพียงมุมเครื่องหมาย วงเล็บเพื่อที่ว่าในขณะนี้ลงที่นี่ 196 00:09:03,740 --> 00:09:06,840 ถ้าผมทำงานนี้อีกครั้งในขณะนี้ ฉันจะได้รับผลลัพธ์ที่ต้องการ 197 00:09:06,840 --> 00:09:09,820 >> ตอนนี้ขอทำเพิ่มประสิทธิภาพของเล็กน้อย เพียงเพื่อให้คุณได้เห็นมันมาก่อน 198 00:09:09,820 --> 00:09:14,040 นี้เป็นชนิดที่น่ารำคาญที่ฉัน ต้องใช้พื้นที่ hello.php PHP, 199 00:09:14,040 --> 00:09:16,060 เพราะในอดีตที่ผ่านมาที่ผม ก็สามารถเขียนทับจุด 200 00:09:16,060 --> 00:09:17,560 ชื่อโปรแกรมซึ่งเป็นชนิดของความสุข 201 00:09:17,560 --> 00:09:19,420 เป็นชนิดของประสบการณ์การใช้งานที่ดีขึ้น 202 00:09:19,420 --> 00:09:24,160 >> ดังนั้นมันจะเปิดออกที่คุณสามารถทำเช่นนี้ ใน PHP กับฉัน following-- 203 00:09:24,160 --> 00:09:28,780 สามารถใช้ความลับนี้อย่างเป็นธรรม คาถาที่ด้านบนที่นี่ 204 00:09:28,780 --> 00:09:31,740 ซึ่งเรียกโดยทั่วไป shebang, เหตุนี้เป็นสัญลักษณ์ที่คมชัด 205 00:09:31,740 --> 00:09:34,270 เพื่อที่จะพูดนี้เป็นปัง หรือเครื่องหมายอัศเจรีย์ 206 00:09:34,270 --> 00:09:38,490 และตอนนี้เป็นเส้นทางไปยังโปรแกรม บนระบบลินุกซ์ทั่วไปที่ 207 00:09:38,490 --> 00:09:41,500 ที่เรียกว่าสภาพแวดล้อมหรือ env 208 00:09:41,500 --> 00:09:43,920 และนี่ line-- เรื่องยาว สาย short-- เพียงหนึ่ง 209 00:09:43,920 --> 00:09:48,710 กล่าวว่าเดี๋ยวก่อนคอมพิวเตอร์หาของ PHP ล่ามสำหรับฉันในสภาพแวดล้อมที่ 210 00:09:48,710 --> 00:09:50,610 พบว่าในหน่วยความจำของคุณเพื่อที่จะพูด 211 00:09:50,610 --> 00:09:54,130 >> และสิ่งที่ดีในขณะนี้คือ ว่าถ้าผมไปลงที่นี่ 212 00:09:54,130 --> 00:09:57,750 ที่ฉันสามารถทำได้เฉือนจุด สวัสดี PHP การจุด or-- อืม 213 00:09:57,750 --> 00:09:59,000 อนุญาต 214 00:09:59,000 --> 00:10:02,350 ดีที่คุณจะเห็นมากยิ่งขึ้นในเรื่องนี้ ที่มีปัญหาตั้งเจ็ดถ้าคุณ 215 00:10:02,350 --> 00:10:04,060 ยังไม่ได้มีการอนุญาต 216 00:10:04,060 --> 00:10:06,510 ปรากฎว่าที่ฉันต้องการ ที่จะดำเนินการคำสั่งนี้ 217 00:10:06,510 --> 00:10:10,779 เรียกว่า [? chamod?] สำหรับการเปลี่ยนแปลง mode-- บวก x hello.php 218 00:10:10,779 --> 00:10:13,820 ฉันต้อง [ไม่ได้ยิน] นี้อีกหนึ่ง ขั้นตอนที่จะบอกคอมพิวเตอร์ของฉัน 219 00:10:13,820 --> 00:10:16,400 ทำให้ปฏิบัติการ hello.php 220 00:10:16,400 --> 00:10:21,310 และตอนนี้ดูสิ่งที่ happens-- จุด เฉือน hello.php ก็แค่ทำงาน 221 00:10:21,310 --> 00:10:23,310 ผมไม่จำเป็นต้องระบุ ล่ามอีกต่อไป 222 00:10:23,310 --> 00:10:26,680 และผมสามารถทำให้มันยิ่งสวย ยังถ้าผมเปลี่ยนชื่อสิ่งนี้ 223 00:10:26,680 --> 00:10:30,570 ถ้าผมย้าย hello.php เพียง Hello-- เพื่อแจ้งให้ทราบในด้านบนซ้าย, 224 00:10:30,570 --> 00:10:32,860 ชื่อของโปรแกรมคือ แน่นอนตอนนี้ก็สวัสดี 225 00:10:32,860 --> 00:10:37,300 ตอนนี้ผมสามารถทำให้มันมีลักษณะเหมือนโปรแกรม C, แม้ว่ามันจะเขียนใน PHP-- 226 00:10:37,300 --> 00:10:39,210 ตรงไปตรงมาหรือหมายเลขใด ภาษาอื่น ๆ 227 00:10:39,210 --> 00:10:41,480 >> ดังนั้นการเพิ่มประสิทธิภาพร่อแร่ การทำงานไม่แตกต่างกัน 228 00:10:41,480 --> 00:10:44,460 แต่มันก็เป็นเพียงเล็ก ๆ น้อย ๆ อยากรู้อยากเห็น ตอนนี้เพื่อให้คุณสามารถเขียนโปรแกรม 229 00:10:44,460 --> 00:10:48,989 ในภาษาใด ๆ และผู้ใช้ไม่ได้ ต้องรู้หรือสนใจสิ่งเหล่านั้น 230 00:10:48,989 --> 00:10:51,030 ดีให้ดูที่มากขึ้น ตัวอย่างที่น่าสนใจในขณะนี้ 231 00:10:51,030 --> 00:10:52,850 ที่ผมวิปปิ้งขึ้นล่วงหน้า 232 00:10:52,850 --> 00:10:54,955 และนี่คือที่เรียกว่า quote.php 233 00:10:54,955 --> 00:10:56,740 และก็พร้อมใช้งานออนไลน์ 234 00:10:56,740 --> 00:11:00,299 และแจ้งให้ทราบว่ามันเป็น short-- สวย แต่มันเป็นโปรแกรมที่บรรทัดคำสั่งที่ 235 00:11:00,299 --> 00:11:02,840 จะไปดูราคาหุ้นขึ้น สำหรับผมซึ่งเป็นจริงที่เกิดขึ้น 236 00:11:02,840 --> 00:11:04,230 จะเป็นใกล้ชิดกับปัญหาการตั้งเจ็ด 237 00:11:04,230 --> 00:11:05,396 >> ดังนั้นเรามาดูสิ่งที่ฉันทำ 238 00:11:05,396 --> 00:11:08,640 ที่ด้านบนมากฉันมี วงเล็บเปิดเครื่องหมายคำถาม PHP 239 00:11:08,640 --> 00:11:13,372 จากนั้นผมได้มีบรรทัดนี้โดยผม ต้องมีไฟล์ที่เรียกว่า functions.php-- 240 00:11:13,372 --> 00:11:15,080 เรากำลังจะไปดู เพิ่มเติมเกี่ยวกับเรื่องนี้ในบิต 241 00:11:15,080 --> 00:11:17,340 แต่นี้เป็นเช่น C ของ รุ่นของคมชัด ได้แก่ 242 00:11:17,340 --> 00:11:19,090 ที่ที่คุณต้องการไป รวมถึงไฟล์อื่น 243 00:11:19,090 --> 00:11:23,720 PHP เรียกมันต้องแม้ว่ามันจะ นอกจากนี้ยังมีฟังก์ชั่นรวม 244 00:11:23,720 --> 00:11:26,861 และปรากฎว่าเป็น function.php เพียงแค่สิ่งที่ผมเขียนก่อนที่ชั้น 245 00:11:26,861 --> 00:11:29,860 ผมวางไว้ในไดเรกทอรีเดียวกันเพราะ ผมอยากที่จะเป็นปัจจัยออกรหัสบางอย่าง 246 00:11:29,860 --> 00:11:31,800 ที่เราอาจต้องการใช้ที่อื่น 247 00:11:31,800 --> 00:11:34,560 >> ในขณะที่คุณอาจจะสามารถ สรุปสิ่งที่เกิดขึ้นที่นี่ 248 00:11:34,560 --> 00:11:39,200 นี้เป็นเพียงเล็กน้อยที่แตกต่างจาก แต่ C-- ทำในสิ่งที่ผมหมายถึงให้แน่ใจว่าการใช้งานที่เหมาะสม? 249 00:11:39,200 --> 00:11:41,180 แปลนี้มากขึ้นในทางเทคนิค 250 00:11:41,180 --> 00:11:45,950 ภายใต้สถานการณ์ที่ฉัน am เลิกโปรแกรมหรือออก? 251 00:11:45,950 --> 00:11:47,074 ใช่? 252 00:11:47,074 --> 00:11:47,990 >> ผู้ชม: เมื่อคุณไม่ได้ สองอาร์กิวเมนต์บรรทัดคำสั่ง 253 00:11:47,990 --> 00:11:49,480 >> DAVID ลัน: เมื่อฉันไม่ได้มี คำสั่งอาร์กิวเมนต์บรรทัด 254 00:11:49,480 --> 00:11:52,396 และจำไว้ว่าหนึ่งในบรรดา ข้อโต้แย้งที่เป็นชื่อของโปรแกรมของตัวเอง 255 00:11:52,396 --> 00:11:55,340 และครั้งที่สองเป็นไปได้ คำอื่นฉันพิมพ์หลังจากที่พรอมต์ 256 00:11:55,340 --> 00:11:57,460 ดังนั้นเพียงแค่เช่น C นี้ เป็นวิธีการของฉันตรวจสอบ 257 00:11:57,460 --> 00:12:00,022 ผู้ใช้ไม่ให้ความร่วมมือและ เรียกใช้โปรแกรมที่ผมตั้งใจ? 258 00:12:00,022 --> 00:12:01,730 ขณะนี้มีบางสิ่งบางอย่าง เล็ก ๆ น้อย ๆ ที่แตกต่างกัน 259 00:12:01,730 --> 00:12:04,020 กับ C-- แรกของทั้งหมดที่เรา มีเครื่องหมายดอลลาร์นี้ 260 00:12:04,020 --> 00:12:07,710 และสิ่งที่เงินดอลลาร์ เข้าสู่ระบบแสดงใน PHP? 261 00:12:07,710 --> 00:12:08,440 เพียงแค่ตัวแปร 262 00:12:08,440 --> 00:12:11,731 นั่นเป็นเพียง all-- ตัวแปรตามมาด้วย สิ่งที่คุณต้องการที่จะเรียกมันจริง 263 00:12:11,731 --> 00:12:14,000 ขอให้สังเกตว่ามีบางสิ่ง หายไปจากโปรแกรม PHP ของฉัน 264 00:12:14,000 --> 00:12:18,210 เช่นเดียวกับที่มันหายไปที่ผ่านมา สัปดาห์เมื่อเทียบกับซีซึ่งคืออะไร? 265 00:12:18,210 --> 00:12:21,620 >> ชนิด แต่ยังมีอย่างอื่น 266 00:12:21,620 --> 00:12:26,409 มีบางอย่างที่ไม่เป็น function-- หน้าที่หลัก 267 00:12:26,409 --> 00:12:27,450 ไม่มีหน้าที่หลักคือ 268 00:12:27,450 --> 00:12:29,680 คุณเพียงแค่เริ่มต้นการเขียน รหัสของคุณได้โดยไม่ต้อง 269 00:12:29,680 --> 00:12:32,790 กังวลเกี่ยวกับพลธรรม การประชุมเริ่มต้นของการตั้งชื่อบางส่วน 270 00:12:32,790 --> 00:12:33,880 ฟังก์ชั่นหลัก 271 00:12:33,880 --> 00:12:36,720 ดังนั้นหาเรื่องซีเป็นเพียงจริงๆ ตัวแปรทั่วโลก 272 00:12:36,720 --> 00:12:39,049 ที่ล่าม ทำให้มีให้ฉัน 273 00:12:39,049 --> 00:12:40,090 ตอนนี้เป็นที่น่าสนใจ 274 00:12:40,090 --> 00:12:41,140 ดังนั้นสิ่งที่มองขึ้น 275 00:12:41,140 --> 00:12:43,370 หุ้นเครื่องหมายดอลลาร์อยู่ที่ ทิ้งไว้ที่ตัวแปรของฉัน 276 00:12:43,370 --> 00:12:45,120 ในด้านขวามือ เห็นได้ชัดว่ามี 277 00:12:45,120 --> 00:12:50,270 ฟังก์ชั่นใน PHP ที่เรียกว่าการค้นหาว่า ฉันผ่านบรรทัดคำสั่งล่าสุดของฉัน 278 00:12:50,270 --> 00:12:51,902 โต้แย้งสิ่งที่ to-- คำว่า 279 00:12:51,902 --> 00:12:53,610 และเราจะเห็นวิธีการนี​​้ การทำงานในช่วงเวลาที่ 280 00:12:53,610 --> 00:12:55,380 >> และแล้วในที่สุดฉันรายงานราคา 281 00:12:55,380 --> 00:12:58,650 ผมพิมพ์ออกหนึ่ง ส่วนแบ่งดังกล่าวและเช่น 282 00:12:58,650 --> 00:13:02,082 และจำไว้ว่านี้เป็น วิธีการในการ PHP-- วิธี PHP-- 283 00:13:02,082 --> 00:13:04,290 ที่คุณไม่ต้องทำ เครื่องหมายดอลลาร์ S อีกต่อไป 284 00:13:04,290 --> 00:13:06,782 คุณก็สามารถใช้วงเล็บปีกกา และเสียบในตัวแปรบาง 285 00:13:06,782 --> 00:13:09,240 คุณไม่ต้องกังวลเกี่ยวกับ ใช้ printf ในทางเดียวกัน 286 00:13:09,240 --> 00:13:13,530 >> และเป็นกันเมื่อคุณใส่ตัวแปร ภายในเครื่องหมายคำพูดเช่นนี้ 287 00:13:13,530 --> 00:13:17,370 คุณกำลังใช้เทคนิคแฟนซี ที่เรียกว่าการแก้ไขตัวแปร 288 00:13:17,370 --> 00:13:20,380 มันก็หมายความว่าเสียบตัวแปรที่นี่ 289 00:13:20,380 --> 00:13:23,760 และเป็นกันบางท่านที่เข้ามา จากภูมิหลังที่การเขียนโปรแกรมอื่น ๆ 290 00:13:23,760 --> 00:13:26,960 คุณไม่สามารถใช้ราคาเดียว รอบสตริงจะทำเช่นนี้ 291 00:13:26,960 --> 00:13:30,290 คุณต้องใช้คำพูดสองสำหรับ การแก้ไขตัวแปรในการทำงาน 292 00:13:30,290 --> 00:13:32,740 มิฉะนั้นคุณจะแท้จริง เห็นวงเล็บปีกกาเหล่านั้น 293 00:13:32,740 --> 00:13:34,500 >> ดังนั้นสุดท้ายขอไปข้างหน้าและทำงานนี้ 294 00:13:34,500 --> 00:13:36,690 ผมขอให้ขั้วของฉันที่ใหญ่กว่าเล็กน้อย 295 00:13:36,690 --> 00:13:41,940 ให้ฉันไปข้างหน้าและทำงาน ภายในของไดเรกทอรีอ้างของฉัน 296 00:13:41,940 --> 00:13:46,950 [? CDsource?] [? AM?] [? อ้าง?] PHP อ้างจุด PHP, 297 00:13:46,950 --> 00:13:50,290 และฉันจะค้นหาบางสิ่งบางอย่าง เช่น GOOG ซึ่งเป็นสัญลักษณ์ของ 298 00:13:50,290 --> 00:13:55,510 และเป็นหนึ่งในหุ้นที่มีชื่อใหม่ ตัวอักษร Inc, ค่าใช้จ่าย $ 717 ณ วันนี้ 299 00:13:55,510 --> 00:13:58,680 ขวาทั้งหมดถ้าเราต้องการ ทำงานนี้อีกครั้งทุกคน 300 00:13:58,680 --> 00:14:02,600 มีราคาหุ้นอีก พวกเขาต้องการที่จะดูได้อย่างไร 301 00:14:02,600 --> 00:14:06,770 >> ไมโครซอฟท์ผมคิดว่าเป็น คนนี้ MSFT-- $ 53 302 00:14:06,770 --> 00:14:09,720 ผมคิดว่าอาจจะเป็นของ Yahoo ที่ 303 00:14:09,720 --> 00:14:12,130 และ Facebook ก็คือว่า 304 00:14:12,130 --> 00:14:13,740 >> ดังนั้นสิ่งที่เป็นโปรแกรมการทำเช่นนี้? 305 00:14:13,740 --> 00:14:16,306 มายากลที่ดูเหมือนว่าจะได้รับการฝังตัว ในฟังก์ชั่นการค้นหาที่ 306 00:14:16,306 --> 00:14:17,430 ดังนั้นลองมาดูอย่างรวดเร็ว 307 00:14:17,430 --> 00:14:21,815 >> มันจะเปิดออกที่ไม่ได้มา กับ PHP ก็อยู่ใน functions.php 308 00:14:21,815 --> 00:14:23,690 และเราจะไม่ผ่านไป ในรายละเอียดที่ดี 309 00:14:23,690 --> 00:14:28,040 แต่สังเกตเห็นคำผ่าตัดที่นี่ ในบรรทัดที่หก functions.php-- 310 00:14:28,040 --> 00:14:29,440 แท้จริงฉันบอกว่าฟังก์ชั่น 311 00:14:29,440 --> 00:14:31,050 ผมระบุชื่อของฟังก์ชั่นของฉัน 312 00:14:31,050 --> 00:14:34,330 จากนั้นผมก็ระบุใด ๆ ข้อโต้แย้งหรือพารามิเตอร์ 313 00:14:34,330 --> 00:14:36,480 ฉันต้องการที่ฟังก์ชั่น take-- ชนิดไม่มี 314 00:14:36,480 --> 00:14:37,580 แล้วฉันจะใช้มัน 315 00:14:37,580 --> 00:14:39,240 >> และฉันจะโบกมือของฉัน ในการดำเนินการ 316 00:14:39,240 --> 00:14:42,115 เพราะมันเป็นสิทธิค่อนข้างสูง ตอนนี้ แต่เราจะเห็นมันอีกครั้งจริง 317 00:14:42,115 --> 00:14:44,700 ในสัปดาห์ปัญหาตั้งเจ็ด 318 00:14:44,700 --> 00:14:47,490 แต่ผมสามารถทำความสะอาดนี้ด้วย 319 00:14:47,490 --> 00:14:49,590 ฉันยังรวมอยู่ใน รหัสของวันนี้รุ่น 320 00:14:49,590 --> 00:14:52,340 ของใบเสนอราคาซึ่งมีไฟล์ PHP จุดไม่มี 321 00:14:52,340 --> 00:14:57,270 เพราะสิ่งที่เป็นสมมุติที่ ด้านบนของโปรแกรมที่เรียกว่าเพียงแค่พูด? 322 00:14:57,270 --> 00:15:00,140 ที่เรียกว่า shebang-- คาถาลับที่เป็นธรรม 323 00:15:00,140 --> 00:15:04,590 ที่บอกว่าหา PHP แล้ว เรียกใช้รหัสของฉันที่นี่ 324 00:15:04,590 --> 00:15:07,360 >> สิทธิทั้งหมดเพื่อที่จะนำ เราไปที่ที่เราทิ้งไป 325 00:15:07,360 --> 00:15:09,560 time-- ที่ผ่านมาแม้จะมี ตัวอย่างบางส่วนที่สูงขึ้น 326 00:15:09,560 --> 00:15:13,980 คำถามใด ๆ เกี่ยวกับป่านนี้ PHP หรือสิ่งที่เรากำลังทำอะไรอยู่? 327 00:15:13,980 --> 00:15:15,570 No-- สิ่งที่ถูกต้อง 328 00:15:15,570 --> 00:15:16,180 ใช่? 329 00:15:16,180 --> 00:15:19,610 >> ผู้ชม: ภายใน ไฟล์ HTML ทำ you-- 330 00:15:19,610 --> 00:15:22,226 [? คุณจะทำอย่างไร] [? เพียงแค่เรียกว่า?] a [ไม่ได้ยิน] ไฟล์ PHP? 331 00:15:22,226 --> 00:15:23,350 DAVID ลัน: เป็นคำถามที่ดี 332 00:15:23,350 --> 00:15:26,070 ในบริบทเว็บที่เรากำลัง แท้จริงเกี่ยวกับการที่จะเปลี่ยนไป 333 00:15:26,070 --> 00:15:28,028 คุณไม่ได้ใช้สิ่งที่เรียกว่า shebang ที่ด้านบน 334 00:15:28,028 --> 00:15:31,980 เพราะ server-- เว็บมักจะเป็น โปรแกรมที่เรียกว่าอาปาเช่หรือ Microsoft 335 00:15:31,980 --> 00:15:37,470 IIS, เซิร์ฟเวอร์ข้อมูลทางอินเทอร์เน็ตหรือ จำนวนซอฟต์แวร์เว็บเซิร์ฟเวอร์อื่น ๆ 336 00:15:37,470 --> 00:15:40,636 รู้ว่าเมื่อเห็น ไฟล์ PHP จุดว่ามัน 337 00:15:40,636 --> 00:15:42,010 ควรใช้ล่ามในนั้น 338 00:15:42,010 --> 00:15:43,468 มันไม่ได้ดูที่บรรทัดแรก 339 00:15:43,468 --> 00:15:45,580 ดังนั้นเคล็ดลับบรรทัดแรกนี้ เป็นเพียงเมื่อคุณอยู่ 340 00:15:45,580 --> 00:15:48,330 เขียนบรรทัดคำสั่ง programs-- ซึ่งเราจะไม่ทำซุปเปอร์บ่อย 341 00:15:48,330 --> 00:15:52,510 แต่มันเป็นวิธีการของเราแก้ ตัวอย่าง C ของเราตอนนี้ PHP ของเรา 342 00:15:52,510 --> 00:16:00,680 >> ถ้าอย่างนั้นเราแน่นอนสะพานเชื่อมโลกนี้ จากโลกบรรทัดคำสั่งไปยังเว็บ 343 00:16:00,680 --> 00:16:02,230 โดยการทำดังต่อไปนี้ 344 00:16:02,230 --> 00:16:05,090 ให้ฉันไปข้างหน้าและวาด มากกว่าที่นี่เพื่อรอสักครู่ 345 00:16:05,090 --> 00:16:09,940 ดังนั้นถ้าเรามีเว็บเซิร์ฟเวอร์หรือมากกว่า ถ้าเรามีแล็ปท็อปของฉันมากกว่าที่นี่ 346 00:16:09,940 --> 00:16:11,280 ซึ่งผมจะวาดเช่นนี้ 347 00:16:11,280 --> 00:16:14,250 และที่นี่เรามี อินเทอร์เน็ตในรูปแบบบาง 348 00:16:14,250 --> 00:16:18,210 และแล้วที่นี่เรามี เซิร์ฟเวอร์ใน building-- 349 00:16:18,210 --> 00:16:20,760 นี้เป็นวิธีที่อินเทอร์เน็ต works-- และที่นี่ 350 00:16:20,760 --> 00:16:23,120 เป็นเซิร์ฟเวอร์ที่มีไฟบางส่วนอาจจะเป็น 351 00:16:23,120 --> 00:16:27,530 สิ่งที่จริงที่เกิดขึ้น ระหว่างทั้งสองเชื่อมต่อ? 352 00:16:27,530 --> 00:16:29,240 >> ดังนั้นในอาคารหลังนี้เป็นเว็บเซิร์ฟเวอร์ 353 00:16:29,240 --> 00:16:31,420 นั่นเป็นเพียงเครื่องคอมพิวเตอร์ ที่ทำงานในการดำเนินงานบางส่วน 354 00:16:31,420 --> 00:16:34,561 system-- อาจจะเป็นซอฟแวร์ฟรีที่เรียกว่า Apache ซึ่ง CS50 IDE กำลังทำงานอยู่ 355 00:16:34,561 --> 00:16:36,310 ดังนั้นคุณสามารถจริง คิดว่าของอาคารหลังนี้ 356 00:16:36,310 --> 00:16:38,579 ในฐานะที่เป็นอาคารใน ซึ่ง CSt0 IDE จะถูกเก็บไว้ 357 00:16:38,579 --> 00:16:40,870 นั่นคือสิ่งที่ทุกท่านมี บัญชีที่ทุกท่าน 358 00:16:40,870 --> 00:16:43,130 มีเซิร์ฟเวอร์เว็บของคุณเอง ทำงานทุกท่าน 359 00:16:43,130 --> 00:16:45,730 มี URL ที่ไม่ซ้ำกันของคุณเอง ในขณะที่เราเริ่มที่จะหารือ 360 00:16:45,730 --> 00:16:47,280 และคุณจะเห็นมากขึ้นในการพีตั้งหก 361 00:16:47,280 --> 00:16:49,450 >> ต่อไปนี้เป็นแล็ปท็อปของฉันอยู่ที่ไหนสักแห่ง อื่นบนอินเทอร์เน็ต 362 00:16:49,450 --> 00:16:54,550 และดังนั้นเมื่อผมเข้าเยี่ยมชม URL ที่เป็น ให้ฉันการจราจรทางอินเทอร์เน็ตที่เป็นไป 363 00:16:54,550 --> 00:16:58,360 ไปยังเซิร์ฟเวอร์ของเซิร์ฟเวอร์ ได้รับ HTTP request-- 364 00:16:58,360 --> 00:17:02,900 เหมือนได้รับ index.html และก็ ตอบกลับไปยังหน้าเว็บที่ 365 00:17:02,900 --> 00:17:04,280 เพื่อให้เป็นกระบวนทัศน์ทั่วไป 366 00:17:04,280 --> 00:17:07,089 ในขณะที่ทุกอย่างขึ้น จนถึงขณะนี้วันนี้ทุกอย่าง 367 00:17:07,089 --> 00:17:09,660 ที่เกิดขึ้นเฉพาะใน ขอบเขตของอาคารหลังนี้ 368 00:17:09,660 --> 00:17:12,910 ผมใช้แล็ปท็อปของฉัน แต่ ผมได้รับการเชื่อมต่อกับ CS50 IDE, 369 00:17:12,910 --> 00:17:17,369 เพื่อให้ทุกโปรแกรมที่ผมทำงาน เป็นภายในของเซิร์ฟเวอร์ที่ตัวเอง 370 00:17:17,369 --> 00:17:22,660 >> แต่ตอนนี้ขอเริ่มต้นการนำ PHP ในการเขียนโปรแกรมบางอย่างที่เกิดขึ้นจริง 371 00:17:22,660 --> 00:17:24,230 จะได้รับเพิ่มขึ้นจากเว็บเซิร์ฟเวอร์ 372 00:17:24,230 --> 00:17:30,320 และการทำเช่นนี้ฉันจะไป เป็นทั้งกลุ่มตัวอย่าง 373 00:17:30,320 --> 00:17:33,710 ที่แนะนำความคิดนี้ที่นี่ 374 00:17:33,710 --> 00:17:38,500 ดังนั้นนี้เป็นชนิดของวิธีที่จินตนาการของ อธิบายกระบวนทัศน์การเขียนโปรแกรม 375 00:17:38,500 --> 00:17:41,540 >> และในความเป็นจริงในขณะที่คุณออกจาก CS50 หรือทำงานในโครงการสุดท้าย 376 00:17:41,540 --> 00:17:43,520 หรือใช้เวลาบางส่วนตาม ในชั้นเรียนคุณจะเริ่มต้น 377 00:17:43,520 --> 00:17:45,740 จะเห็นว่า world-- โดยเฉพาะอย่างยิ่งมีการเติบโตขึ้น 378 00:17:45,740 --> 00:17:48,300 กับภาษาเช่น C ที่มี level-- ต่ำสุด 379 00:17:48,300 --> 00:17:51,290 ทราบว่ามีดีกว่า วิธีการเขียนซอฟแวร์ 380 00:17:51,290 --> 00:17:53,290 มีบางอย่างที่ รูปแบบที่คุณสามารถปฏิบัติตาม 381 00:17:53,290 --> 00:17:57,640 วิธีการบางอย่างในการจัดการไฟล์ของคุณ และวิธีการของการตั้งชื่อฟังก์ชั่นของคุณ 382 00:17:57,640 --> 00:18:00,300 เพื่อให้เรื่องยาวสั้น โลกได้เกิดขึ้น 383 00:18:00,300 --> 00:18:04,340 มีทั้งกลุ่มของคำย่อ และชื่อหาวิธีการในการเขียนโปรแกรม 384 00:18:04,340 --> 00:18:06,260 เหล่านี้เป็นเพียงเทคนิคที่คุณอาจจะใช้ 385 00:18:06,260 --> 00:18:09,660 >> และหนึ่งในนั้นเรียกว่า MVC, สำหรับรุ่นดูควบคุม 386 00:18:09,660 --> 00:18:12,270 และนี่เป็นเพียงสำหรับ ในขณะนี้มีความซับซ้อนมากเกินไป 387 00:18:12,270 --> 00:18:18,960 วิธีที่บอกว่าคุณควรจะออกวาง เว็บไซต์ PHP ที่ใช้ในกรณีของเรา 388 00:18:18,960 --> 00:18:22,140 คุณจะทำอย่างไรในการจัดระเบียบไฟล์ของคุณ วิธีที่คุณจัดระเบียบตรรกะของคุณ 389 00:18:22,140 --> 00:18:26,220 ในทางที่ทำให้มันง่ายขึ้นไป เขียนเว็บไซต์ที่มีความซับซ้อนมากขึ้น? 390 00:18:26,220 --> 00:18:28,550 และแน่นอนเราจะได้อย่างรวดเร็ว ได้รับมีกับพีตั้งเจ็ด 391 00:18:28,550 --> 00:18:32,020 >> ดังนั้นในโลกของ MVC ที่คุณกำลังจะ จะเห็นว่าเราสามารถรหัสทั่วไป 392 00:18:32,020 --> 00:18:38,290 จะมีลักษณะเป็นรูปแบบรหัสอย่างใดอย่างหนึ่ง หรือรหัสควบคุมหรือรหัสมุมมอง 393 00:18:38,290 --> 00:18:40,200 และฉันกำลังจะไป oversimplify เป็น follows-- 394 00:18:40,200 --> 00:18:42,074 ตัวควบคุมเป็น สมองของโปรแกรมของคุณ 395 00:18:42,074 --> 00:18:44,100 มันคือสิ่งที่ทุก ตรรกะที่น่าสนใจเกิดขึ้น 396 00:18:44,100 --> 00:18:46,110 ดังนั้นทุกสิ่งที่เราได้รับ เขียนป่านนี้ในชั้นเรียน 397 00:18:46,110 --> 00:18:48,210 เป็นชนิดเช่นตัวควบคุม code-- มันควบคุม 398 00:18:48,210 --> 00:18:50,585 โปรแกรมของคุณลูปของคุณของคุณ เงื่อนไขการทำงานของคุณ 399 00:18:50,585 --> 00:18:52,100 และตัวแปรและสิ่งที่ 400 00:18:52,100 --> 00:18:56,160 >> ชมตอนนี้เป็นไปได้น้อย ที่เห็นได้ชัดมากขึ้นในโลกของเว็บ 401 00:18:56,160 --> 00:18:59,360 มุมมองเป็นความสวยงาม ของเว็บไซต์ของคุณ 402 00:18:59,360 --> 00:19:04,080 มันเป็นสิ่งที่ผู้ใช้ sees-- ภาพ ตาราง HTM​​L, แท็กและทั้งหมด 403 00:19:04,080 --> 00:19:08,220 การที่ทั้งหมดของความงามนุ่ม สิ่งที่ไม่ยากที่จะเขียน 404 00:19:08,220 --> 00:19:11,380 แต่เป็นเพียงสิ่งที่คุณกำลังสร้าง, เป็นมุมมองที่เรียกว่าความสวยงาม 405 00:19:11,380 --> 00:19:13,880 และรูปแบบในที่สุดที่เกิดขึ้น จะเป็นฐานข้อมูลที่ stuff-- 406 00:19:13,880 --> 00:19:16,510 เราจะเริ่มต้นการดำน้ำในทุก มากกว่าพุธนี้ 407 00:19:16,510 --> 00:19:19,740 ดังนั้นการควบคุมเป็นตรรกะ มุมมองเป็นสิ่งที่สวยงาม 408 00:19:19,740 --> 00:19:23,500 และรูปแบบที่เป็นไปได้ที่ เราจัดเก็บข้อมูลที่แท้จริงของเรา 409 00:19:23,500 --> 00:19:26,410 >> ดังนั้นเรามาดูที่นี้เป็นรูปธรรมมากขึ้น กับตัวอย่างต่อไปนี้ 410 00:19:26,410 --> 00:19:34,700 ฉันจะไปลงในไดเรกทอรีของฉันที่นี่ แหล่งที่มาของวันนี้ code-- ทั้งหมดที่ 411 00:19:34,700 --> 00:19:35,770 พร้อมใช้งานออนไลน์ 412 00:19:35,770 --> 00:19:37,800 และฉันจะไปเป็นรุ่นที่เป็นศูนย์ 413 00:19:37,800 --> 00:19:41,500 และนี่ is-- ขอเรียกมันว่า รุ่นที่เป็นศูนย์ของเว็บไซต์ของ CS50 414 00:19:41,500 --> 00:19:43,010 มีไม่มากที่นี่เลย 415 00:19:43,010 --> 00:19:46,810 มันเป็นหน้าเว็บที่ง่ายมากที่ อาจจะใช้สิ่งที่ HTML tags-- เพียง 416 00:19:46,810 --> 00:19:48,970 คาดเดาจากตัวอย่างที่ผ่านมา? 417 00:19:48,970 --> 00:19:49,890 >> นั่นอะไร? 418 00:19:49,890 --> 00:19:53,920 H1-- อาจจะใหญ่หนา ชื่อที่โลโก้ด้านบนขึ้น CS50 419 00:19:53,920 --> 00:19:55,080 และสิ่งอื่นที่เล่น? 420 00:19:55,080 --> 00:19:55,799 ใช่? 421 00:19:55,799 --> 00:19:56,840 ผู้ชม: รายชื่อเรียงลำดับ 422 00:19:56,840 --> 00:19:59,990 DAVID ลัน: เรียงลำดับ list-- ดังนั้น แท็ก UL และบางทีคู่ของแท็ก LI 423 00:19:59,990 --> 00:20:01,840 และถ้าคุณจำไม่ได้เหล่านี้ มันตรงไปตรงมาไม่ได้เรื่อง 424 00:20:01,840 --> 00:20:04,170 เหล่านี้มีการจัดเรียงของปุย รายละเอียดการดำเนินงานของ HTM​​L 425 00:20:04,170 --> 00:20:06,378 ที่คุณได้อย่างรวดเร็วมองขึ้น และคุณกลับมาในแบบของคุณ 426 00:20:06,378 --> 00:20:10,040 เราจะมุ่งเน้นที่การเขียนโปรแกรม ความคิดที่มีชิ้น juicier 427 00:20:10,040 --> 00:20:12,890 >> ดังนั้นขอเพียงแค่ใช้เวลาที่รวดเร็ว ดู HTML-- และแน่นอน 428 00:20:12,890 --> 00:20:16,880 ถ้าผมเปิดมุมมองที่มาที่นี่ yup, นั่นคือสิ่งที่เกิดขึ้นที่นี่ 429 00:20:16,880 --> 00:20:18,440 มีแท็ก UL 430 00:20:18,440 --> 00:20:20,630 ที่ซ้อนกันอยู่ภายในที่จะแท็ก LI 431 00:20:20,630 --> 00:20:24,470 แล้วฉันยืม URL ไป ของหลักสูตรที่เกิดขึ้นจริงที่นี่ 432 00:20:24,470 --> 00:20:27,570 >> จากนั้นใน lectures.php เห็นได้ชัดคือ 433 00:20:27,570 --> 00:20:31,640 หน้าอื่นที่สร้างแบบไดนามิก ที่จะต้องขอ see-- อา 434 00:20:31,640 --> 00:20:33,170 สองสัปดาห์แรกของการบรรยาย 435 00:20:33,170 --> 00:20:36,600 ดังนั้นสัปดาห์ที่ศูนย์และหนึ่งสัปดาห์ให้ของ ดู this-- ถ้าผมดูแหล่งที่มาหน้า 436 00:20:36,600 --> 00:20:38,120 นอกจากนี้ยังง่ายสุด 437 00:20:38,120 --> 00:20:42,430 เหล่านี้จะนำไปสู่​​สองหน้า เรียกว่า week0.php และ week1.php 438 00:20:42,430 --> 00:20:44,040 เพื่อพิจารณาในขณะนี้สิ่งที่เกิดขึ้น 439 00:20:44,040 --> 00:20:50,630 >> เมื่อฉันคลิกที่ week0.php แล็ปท็อปของฉัน คือการทำให้การขอ week0.php 440 00:20:50,630 --> 00:20:53,700 441 00:20:53,700 --> 00:20:58,110 เว็บเซิร์ฟเวอร์ a.k.a. , CS50 IDE, ได้รับซองจดหมายที่เสมือน 442 00:20:58,110 --> 00:21:01,040 มันเห็นข้อความ เหมือนได้รับ week0.php 443 00:21:01,040 --> 00:21:05,060 มันก็จะตีความแฟ้มด้านบน ลงล่างซ้ายไป right-- ไฟล์ 444 00:21:05,060 --> 00:21:07,720 เรียกว่า week0.php-- และ คายออกผล 445 00:21:07,720 --> 00:21:10,510 ดังนั้นภายในของไฟล์นี้, week0.php ต้อง 446 00:21:10,510 --> 00:21:15,410 ตรรกะควบคุมที่มีการสร้าง HTML นี้และเราจะเห็นทันทีว่า 447 00:21:15,410 --> 00:21:19,340 >> แต่ตอนนี้ให้ฉันคลิกที่สัปดาห์ที่ศูนย์ และตอนนี้เรามีในวันพุธและวันศุกร์ 448 00:21:19,340 --> 00:21:25,260 และตอนนี้เรามีภาพนิ่ง อย่างช้า ๆ จากสัปดาห์ที่ศูนย์ 449 00:21:25,260 --> 00:21:27,400 และคุณอาจจะจำได้ จากทางกลับเมื่อ 450 00:21:27,400 --> 00:21:29,340 ดังนั้นนั่นคือทั้งหมดที่เว็บไซต์นี้จะทำ 451 00:21:29,340 --> 00:21:31,120 >> ดังนั้นขอพิจารณาวิธีการที่จะทำเช่นนี้ 452 00:21:31,120 --> 00:21:34,290 ฉันจะไปกลับเข้ามาใน รหัสแหล่งที่มาที่นี่ใน CS50 IDE, 453 00:21:34,290 --> 00:21:36,660 และฉันจะเปิด index.php 454 00:21:36,660 --> 00:21:38,910 ที่ด้านบนของไฟล์นี้ เป็นพวงของการแสดงความคิดเห็น 455 00:21:38,910 --> 00:21:43,000 และจากนั้นในช่วงกลางของไฟล์นี้, มัน จะเปิดออกจะไม่มีโค้ด PHP ใด ๆ 456 00:21:43,000 --> 00:21:47,380 เพราะถ้าคุณไม่ได้มีการใด ๆ วงเล็บเปิดเครื่องหมายคำถามแท็ก PHP, 457 00:21:47,380 --> 00:21:49,180 คุณมีอิสระที่จะเพียงแค่ใส่ HTML 458 00:21:49,180 --> 00:21:51,480 >> เพราะสิ่งที่ของ PHP ควรจะทำล่าม 459 00:21:51,480 --> 00:21:53,938 คือเมื่อมันอ่าน file-- นี้ บนลงล่างซ้ายไป right-- 460 00:21:53,938 --> 00:21:59,100 มันตีความรหัสที่เห็นระหว่าง วงเล็บมุมบรรดาเครื่องหมายคำถาม 461 00:21:59,100 --> 00:22:02,380 และสิ่งอื่นที่มันไม่ได้ จำได้ว่าเป็น PHP, มันก็ถ่มน้ำลายออกมา 462 00:22:02,380 --> 00:22:05,080 และ HTML เป็นหนึ่งในสิ่งที่ มันก็จะคายออก 463 00:22:05,080 --> 00:22:09,090 >> ดังนั้นไฟล์นี้อาจจะมี ถูกเรียกว่า index.html, 464 00:22:09,090 --> 00:22:11,690 แต่ฉันตั้งชื่อทุกอย่าง จุด PHP เป็นหินก้าว 465 00:22:11,690 --> 00:22:15,960 Lectures.php-- ในทำนองเดียวกัน underwhelming ก็เพียงบาง HTM​​L 466 00:22:15,960 --> 00:22:19,840 Week0.php คล้าย HTML เพียงบางส่วน 467 00:22:19,840 --> 00:22:22,300 >> แต่ตอนนี้ขอใส่บน หมวกวิศวกรรมสุภาษิต 468 00:22:22,300 --> 00:22:24,400 และพิจารณาวิธีการที่เราสามารถปรับปรุงนี้ 469 00:22:24,400 --> 00:22:28,541 มันไม่ยากที่จะทำเช่นนี้ แต่ผมชนิด ของเงินทองเข้ามาคัดลอกและวาง 470 00:22:28,541 --> 00:22:31,540 และในความเป็นจริงถ้าผมทำสองสัปดาห์คุณ รู้ว่าสิ่งที่ฉันอาจจะทำอย่างไร 471 00:22:31,540 --> 00:22:34,940 ฉันจะไป week1.php ผม จะเน้นทุกอย่าง 472 00:22:34,940 --> 00:22:39,110 ฉันจะคัดลอกวาง เป็นไฟล์ใหม่ที่เรียกว่า week2.php, 473 00:22:39,110 --> 00:22:42,440 ปรับแต่ง URL ที่บางและจะอยู่ในทางของฉัน 474 00:22:42,440 --> 00:22:45,240 >> ดังนั้นขึ้นอยู่กับสิ่งที่เราได้ เห็นใน C แล้ว 475 00:22:45,240 --> 00:22:46,860 นี้ไม่ได้รู้สึกขวาหวังว่า 476 00:22:46,860 --> 00:22:49,610 คัดลอกวางไม่ค่อยโซลูชั่นที่เหมาะสม 477 00:22:49,610 --> 00:22:51,429 ดังนั้นสิ่งที่เราสามารถเริ่มต้น จะทำอย่างไรที่จะปรับปรุงนี้หรือไม่? 478 00:22:51,429 --> 00:22:53,345 โอกาสอยู่ที่ไหน สำหรับการออกแบบที่ดีขึ้นหรือไม่ 479 00:22:53,345 --> 00:22:56,890 480 00:22:56,890 --> 00:22:58,760 >> โดยทุกครั้งที่ผมได้รับการ แปดสัปดาห์ก็จะ 481 00:22:58,760 --> 00:23:00,910 จะเป็นที่น่ารำคาญจริงๆ ถ้าผมต้องการที่จะเปลี่ยน 482 00:23:00,910 --> 00:23:03,930 ตัวอักษรของทุกคน หน้าเว็บของฉันหรือถ้าฉันต้องการ 483 00:23:03,930 --> 00:23:06,522 การเปลี่ยนแปลงโครงสร้างของรูปแบบที่ 484 00:23:06,522 --> 00:23:08,396 ดังนั้นเป็นโอกาสที่ สำหรับการออกแบบที่ดีขึ้นหรือไม่ 485 00:23:08,396 --> 00:23:11,990 486 00:23:11,990 --> 00:23:15,160 ดีขอพิจารณาสิ่งที่เป็น ที่ใช้ร่วมกันในทุกไฟล์เหล่านี้ 487 00:23:15,160 --> 00:23:21,696 >> นี่คือหนึ่งสัปดาห์นี่เป็นสัปดาห์ ศูนย์นี่ lectures.php, 488 00:23:21,696 --> 00:23:25,790 นี่คือสิ่งที่เป็น index.php-- เดียวกันและ สิ่งที่แตกต่างกันประมาณพูด 489 00:23:25,790 --> 00:23:26,760 ในแต่ละไฟล์เหล่านี้หรือไม่ 490 00:23:26,760 --> 00:23:30,560 491 00:23:30,560 --> 00:23:32,060 ใช่? 492 00:23:32,060 --> 00:23:34,560 >> ผู้ชม: [ไม่ได้ยิน] 493 00:23:34,560 --> 00:23:41,244 494 00:23:41,244 --> 00:23:42,160 DAVID ลัน: ตกลงที่ดี 495 00:23:42,160 --> 00:23:46,115 เพื่อให้มีรูปแบบที่แน่นอนโดย ทุกครั้งที่ฉันเลือกฉันบรรยาย 496 00:23:46,115 --> 00:23:48,250 ฉันควรจะสร้าง มองหน้าคล้ายกันมาก 497 00:23:48,250 --> 00:23:50,375 ดังนั้นบางทีฉันสามารถใช้ประโยชน์จาก ความจริงที่ว่าจริงๆ 498 00:23:50,375 --> 00:23:53,060 เราจงใจตัวเลข จัดทำดัชนี lectures-- ของเรา 499 00:23:53,060 --> 00:23:55,290 ถ้าฉันสามารถใส่ได้มากยิ่งขึ้น คำในคำตอบของคุณ 500 00:23:55,290 --> 00:23:59,984 และสิ่งที่เป็นสิ่งเดียวจริงๆ ที่เปลี่ยนแปลงระหว่างสัปดาห์ one-- 501 00:23:59,984 --> 00:24:02,400 และแจ้งให้เราเลื่อนลงมาจึงเป็น ประมาณในกิจกรรมดังนั้นเล็กน้อยเดียวกัน 502 00:24:02,400 --> 00:24:05,480 ดังนั้นนี่คือสัปดาห์ที่ศูนย์ ประมาณที่ด้านบน 503 00:24:05,480 --> 00:24:12,370 นี่คือหนึ่งสัปดาห์สัปดาห์ ศูนย์สัปดาห์หนึ่งสัปดาห์เป็นศูนย์ 504 00:24:12,370 --> 00:24:14,370 ตกลงแท้จริงถ้าคุณรู้ว่า ไม่มีโปรแกรมใด ๆ 505 00:24:14,370 --> 00:24:16,286 ตอนนี้เหมือนเป็นเพียงแค่ รูปแบบเกมจับคู่ 506 00:24:16,286 --> 00:24:17,200 ดังนั้นสิ่งที่แตกต่างกันอย่างไร 507 00:24:17,200 --> 00:24:18,765 ใช่? 508 00:24:18,765 --> 00:24:19,777 >> ผู้ชม: [ไม่ได้ยิน] 509 00:24:19,777 --> 00:24:22,360 DAVID ลัน: ดีดังนั้นชื่อ มีการเปลี่ยนแปลงเคยดังนั้นเล็กน้อย 510 00:24:22,360 --> 00:24:24,010 ศูนย์เป็นไปของหลักสูตรอย่างใดอย่างหนึ่ง 511 00:24:24,010 --> 00:24:25,570 สิ่งเดียวกันที่เกิดขึ้นในแท็ก H1 512 00:24:25,570 --> 00:24:28,790 และเราไม่ได้ค่อนข้างเห็นว่ามันเป็นได้อย่างง่ายดาย เพราะ URL ที่เป็นเพียงเล็กน้อยยาว 513 00:24:28,790 --> 00:24:30,670 แต่ URL เหล่านั้นมีการเปลี่ยนแปลงเล็กน้อย 514 00:24:30,670 --> 00:24:34,490 >> แต่สิ่งที่ไม่เปลี่ยนคือผมกล้า บอกว่าส่วนใหญ่ของเนื้อหาของ Page-- ที่ 515 00:24:34,490 --> 00:24:38,530 แท็กเหมือนกันหัวเป็น เดียวกันชื่อที่เกือบจะเหมือนกัน 516 00:24:38,530 --> 00:24:40,659 ร่างกายจะเหมือนกันและ เกือบทุกอย่างอื่น 517 00:24:40,659 --> 00:24:42,450 จะเหมือนกันยกเว้น ผู้ปรับแต่งเล็ก ๆ น้อย ๆ 518 00:24:42,450 --> 00:24:45,310 ดังนั้นวิธีที่เราสามารถไปเกี่ยวกับ แฟบางส่วนของเรื่องนี้หรือ 519 00:24:45,310 --> 00:24:48,740 >> ดีให้ฉันเสนอว่า ที่ในรุ่นถัดไป 520 00:24:48,740 --> 00:24:53,890 ดังนั้นที่นี่เป็นหนึ่งในรุ่นผมมีแน่นอน ไฟล์เดียวกันรวมทั้งคู่ของคนอื่น ๆ 521 00:24:53,890 --> 00:24:59,730 นี่คือ index.php-- และแม้ว่า คุณไม่เคยเห็นมาก่อน PHP, 522 00:24:59,730 --> 00:25:05,511 สิ่งที่ฉันอาจจะทำเพื่อแก้ปัญหานี้ problem-- ขึ้นอยู่กับสิ่งที่คุณเห็นที่นี่? 523 00:25:05,511 --> 00:25:11,300 524 00:25:11,300 --> 00:25:12,760 ใช่ก็คือค​​วามมุ่งมั่นเล็กน้อย? 525 00:25:12,760 --> 00:25:13,450 ไม่ได้หรือไม่ 526 00:25:13,450 --> 00:25:16,020 ใช่ไปใน 527 00:25:16,020 --> 00:25:17,380 >> ผู้ชม: [ไม่ได้ยิน] 528 00:25:17,380 --> 00:25:18,380 >> DAVID ลัน: อ๋อ 529 00:25:18,380 --> 00:25:20,380 >> ผู้ชม: [ไม่ได้ยิน] 530 00:25:20,380 --> 00:25:26,090 531 00:25:26,090 --> 00:25:28,669 >> DAVID ลัน: ฉันต้องการให้คุณ พูดเพียงเล็ก ๆ น้อย ๆ ดัง 532 00:25:28,669 --> 00:25:31,084 >> ผู้ชม: [ไม่ได้ยิน] 533 00:25:31,084 --> 00:25:35,744 534 00:25:35,744 --> 00:25:36,660 DAVID ลัน: ตกลงที่ดี 535 00:25:36,660 --> 00:25:38,620 และผมว่ามันเป็น think-- ยากที่จะได้ยิน you-- แต่ฉัน 536 00:25:38,620 --> 00:25:42,690 คิดว่าสิ่งที่คุณจะได้รับที่เป็นที่ แท็กที่เป็นเรื่องปกติขึ้นด้านบน 537 00:25:42,690 --> 00:25:47,710 และแท็กที่เป็นเรื่องปกติท​​ี่ ด้านล่างขณะนี้ได้มีปัจจัยออก 538 00:25:47,710 --> 00:25:51,140 หรือผลักไสให้สิ่งที่ไฟล์? 539 00:25:51,140 --> 00:25:53,476 header.php และ footer.php-- และเรากำลังจะ 540 00:25:53,476 --> 00:25:55,600 ที่จะทำให้การปรับแต่งบางอย่างเพื่อ ความห่วงใยที่คุณเพิ่ง 541 00:25:55,600 --> 00:25:59,370 ยกขึ้นเกี่ยวกับการเปลี่ยนแปลงตัวเลขสำหรับ ตัวอย่างเช่นถ้าผมได้ยินคุณได้อย่างถูกต้อง 542 00:25:59,370 --> 00:26:02,060 >> แต่ที่น่าจะเป็นส่วนสำคัญของมัน 543 00:26:02,060 --> 00:26:04,820 ถ้ามีเป็นจำนวนมาก ซ้ำซ้อนที่ด้านบนของหน้า 544 00:26:04,820 --> 00:26:06,736 และเป็นจำนวนมาก ซ้ำซ้อนที่ด้านล่าง 545 00:26:06,736 --> 00:26:09,280 ขอเพียงแค่ไฮไลท์ที่แท้จริง และตัดเนื้อหาที่ออก 546 00:26:09,280 --> 00:26:13,270 วางไว้ใน file-- แยกต่างหากเช่นเดียวกับ ความคิดของ CSS ที่เราเอาเรื่องออก 547 00:26:13,270 --> 00:26:16,710 ความงามที่คล้ายกันมากใส่ ในไฟล์ PHP จุดที่แยกจากกัน 548 00:26:16,710 --> 00:26:20,340 ต้องใช้ mechanism-- ที่ เป็นเช่น C include-- ที่คมชัด 549 00:26:20,340 --> 00:26:23,570 เป็นหลักเหมือนว่าไป คว้าเนื้อหาของ header.php ที่ 550 00:26:23,570 --> 00:26:25,370 คัดลอกและวางพวกเขาที่นี่ 551 00:26:25,370 --> 00:26:29,490 >> แต่สิ่งนี้หมายความว่าในขณะนี้ index.php ผมมีทั้งสองเส้น 552 00:26:29,490 --> 00:26:32,130 ใน lectures.php ฉันยัง มีทั้งสองเส้น 553 00:26:32,130 --> 00:26:35,230 ใน week0.php ฉันยัง มีทั้งสองเส้น 554 00:26:35,230 --> 00:26:38,380 >> ดังนั้นตอนนี้ถ้าผมต้องการที่จะเปลี่ยน ชื่อของทุกหน้าของฉัน 555 00:26:38,380 --> 00:26:40,530 หรือฉันต้องการที่จะเปลี่ยน โครงสร้างพื้นฐาน 556 00:26:40,530 --> 00:26:44,380 ฉันสามารถเปลี่ยนได้ในขณะนี้เพียงที่เดียว หรือสองส่วนหัวและส่วนท้าย places--, 557 00:26:44,380 --> 00:26:45,429 ตามลำดับ 558 00:26:45,429 --> 00:26:47,970 ตอนนี้เริ่มต้นของรหัสที่จะมอง เล็ก ๆ น้อย ๆ ที่เป็นความลับมากขึ้นใช่มั้ย? 559 00:26:47,970 --> 00:26:53,590 แต่ถ้าคุณคิดเกี่ยวกับสิ่งที่หน้า เป็น doing-- ถ้าฉันขอ week0.php, 560 00:26:53,590 --> 00:26:59,880 เช่นเดียวกับในการวาดภาพมากกว่า here-- week0.php เมื่อมีการร้องขอ 561 00:26:59,880 --> 00:27:00,960 นั่นหมายความว่าอย่างไร? 562 00:27:00,960 --> 00:27:04,410 >> แท้จริงแฟ้มนี้อยู่ การร้องขอจากเบราว์เซอร์ 563 00:27:04,410 --> 00:27:06,240 เว็บ server-- a.k.a. 564 00:27:06,240 --> 00:27:09,250 CS50 ID-- คว้านี้ ไฟล์ week0.php และอ่าน 565 00:27:09,250 --> 00:27:10,780 มันบนลงล่างซ้ายไปขวา 566 00:27:10,780 --> 00:27:15,400 On line ที่หนึ่งก็พบทันที วงเล็บเปิดเครื่องหมายคำถาม PHP ต้อง 567 00:27:15,400 --> 00:27:17,872 ส่วนหัวจุด PHP, และอื่น ๆ สิ่งที่ล่าม PHP 568 00:27:17,872 --> 00:27:20,580 does-- ที่สร้างขึ้นในเว็บ เซิร์ฟเวอร์เพราะเรากำหนดไว้ล่วงหน้า 569 00:27:20,580 --> 00:27:24,580 มัน you-- ไปโดยอัตโนมัติ เข้า header.php สำเนาเนื้อหา 570 00:27:24,580 --> 00:27:25,640 วางพวกเขาที่นี่ 571 00:27:25,640 --> 00:27:28,790 >> แต่แล้วการเผชิญหน้าล่​​าม เครื่องหมายคำถามวงเล็บปิด 572 00:27:28,790 --> 00:27:30,320 จึงทำทุกอย่างที่คิด 573 00:27:30,320 --> 00:27:33,400 ตอนนี้ก็เพียงสุ่มสี่สุ่มห้าถ่มน้ำลาย ออกเส้นสองผ่านเจ็ด 574 00:27:33,400 --> 00:27:35,240 เพราะมันเป็นเพียง HTM​​L ดิบ 575 00:27:35,240 --> 00:27:38,470 ได้รับสายแปดและไม่ว่า มายากลเดียวกัน again-- เปิดแฟ้ม 576 00:27:38,470 --> 00:27:41,460 โลภเนื้อหาและ ต้องใช้พวกเขาหรือพวกเขาวาง 577 00:27:41,460 --> 00:27:42,480 ถูกต้องแล้วหรือมี 578 00:27:42,480 --> 00:27:44,210 >> แต่ฉันก็พูดพาดพิงถึงข้อผิดพลาด 579 00:27:44,210 --> 00:27:48,610 นี้เป็นขั้นตอนบางส่วนย้อนกลับ เพราะถ้าเรามองใน header.php, 580 00:27:48,610 --> 00:27:50,850 ผมเคยตัดชนิดของมุม 581 00:27:50,850 --> 00:27:56,250 คุณลักษณะสิ่งที่ฉันไม่ยอมแพ้ในการสั่งซื้อ จะได้รับการพิสูจน์การออกแบบที่ดีขึ้นหรือไม่ 582 00:27:56,250 --> 00:27:57,305 ใช่? 583 00:27:57,305 --> 00:27:58,180 ผู้ชม: [ไม่ได้ยิน] 584 00:27:58,180 --> 00:28:00,570 DAVID ลัน: ใช่ฉันชนิด การตัดมุมขี้ปะติ๋ว 585 00:28:00,570 --> 00:28:04,489 คุณชี้ให้เห็นว่าสิ่งที่เปลี่ยนแปลง เป็นชื่อที่ตัวเลขในชื่อ 586 00:28:04,489 --> 00:28:05,530 และจำนวนในของ H1 587 00:28:05,530 --> 00:28:08,170 ดังนั้นวิธีการแก้ปัญหาของผมก็คือตกลง ขอเพียงแค่เปลี่ยนชื่อหน้า 588 00:28:08,170 --> 00:28:10,080 และไม่ได้จัดการกับที่ ปัญหาใด ๆ 589 00:28:10,080 --> 00:28:12,130 เพื่อให้เป็นบางส่วน ก้าวไปข้างหลังเพื่อตรวจสอบว่า 590 00:28:12,130 --> 00:28:14,300 >> แต่สิ่งที่เป็นที่น่าสังเกตที่นี่ คือสิ่งที่ฉันได้ทำ 591 00:28:14,300 --> 00:28:17,200 เป็นปัจจัยอย่างอื่น ออกจากทุกสิ่งที่พบบ่อย 592 00:28:17,200 --> 00:28:21,520 และใน footer.php แจ้งให้ทราบผมเอาเรื่อง จากทุกที่แม้จะน้อยกว่า 593 00:28:21,520 --> 00:28:22,790 สิ่งที่พบบ่อย 594 00:28:22,790 --> 00:28:26,070 ดังนั้นผมจึงจำเป็นต้องอย่างใดขณะนี้จะสามารถ ใช้ขั้นตอนไปข้างหน้าอีกและแก้ไข 595 00:28:26,070 --> 00:28:27,160 ว่าปัญหาชื่อ 596 00:28:27,160 --> 00:28:28,180 ดังนั้นขอให้ทำอย่างนั้น 597 00:28:28,180 --> 00:28:35,060 >> ให้ฉันไปเป็นรุ่นที่สองของฉัน ที่นี่ซึ่งอีกครั้งมีไฟล์เดียวกัน 598 00:28:35,060 --> 00:28:36,825 ยกเว้นหนึ่งนอกจากนี้ใหม่ 599 00:28:36,825 --> 00:28:38,950 และมันก็เล็ก ๆ น้อย ๆ อย่างละเอียด แต่ให้ดูว่าเรา 600 00:28:38,950 --> 00:28:40,550 สามารถหยอกล้อออกจากกันสิ่งที่เกิดขึ้นที่นี่ 601 00:28:40,550 --> 00:28:45,370 ดังนั้นแทนที่จะต้อง header.php และ footer.php, 602 00:28:45,370 --> 00:28:50,180 ฉันดูเหมือนจะถูกต้องเพียงอย่างใดอย่างหนึ่ง เรียกว่า file-- แน่นอน helpers.php 603 00:28:50,180 --> 00:28:52,560 และแจ้งให้เรากำหนดในขณะนี้ สิ่งที่อยู่ภายในของ helpers.php 604 00:28:52,560 --> 00:28:55,330 เป็นเพียงพวงของฟังก์ชั่น ที่ผมเขียนเช่นเดียวกับก่อนที่จะ 605 00:28:55,330 --> 00:28:57,550 แต่ผมเรียกมันว่า helpers.php 606 00:28:57,550 --> 00:29:00,370 >> ตอนนี้เห็นได้ชัดว่าใน สายสามและ 10 ผม 607 00:29:00,370 --> 00:29:02,840 เรียกสอง functions-- ทำให้ส่วนหัวทำให้ส่วนท้าย 608 00:29:02,840 --> 00:29:05,040 ผู้ที่ไม่ได้มาด้วย PHP ผมเขียนเหล่านั้นด้วยตัวเอง 609 00:29:05,040 --> 00:29:07,880 และผมใส่ไว้ใน helpers.php 610 00:29:07,880 --> 00:29:11,210 >> ตอนนี้เราได้เห็นเพียงรูปแบบนี้ ครั้งเดียวและมันเป็นช่วงสั้น ๆ สุด 611 00:29:11,210 --> 00:29:15,330 แต่ตอนนี้เห็นได้ชัดคือการโต้แย้ง ที่จะทำให้ส่วนหัวของฟังก์ชั่น 612 00:29:15,330 --> 00:29:16,450 ฉันจะรู้ว่าทำไม? 613 00:29:16,450 --> 00:29:18,522 ดีที่นี่เป็นวงเล็บปิด ที่นี่เป็นวงเล็บเปิด 614 00:29:18,522 --> 00:29:21,230 และแน่นอนเช่นเดียวกับในซี อะไรระหว่างวงเล็บเหล่านั้น 615 00:29:21,230 --> 00:29:23,350 เป็น input-- หรือ อาร์กิวเมนต์ฟังก์ชั่น 616 00:29:23,350 --> 00:29:26,710 >> เป็นชนิดข้อมูลอะไรของการโต้แย้งนี้ ขึ้นอยู่กับสิ่งที่ฉันได้เน้น? 617 00:29:26,710 --> 00:29:30,820 ทำอะไรวงเล็บเหล่านั้น ระบุขึ้นอยู่กับสัปดาห์ที่ผ่านมา? 618 00:29:30,820 --> 00:29:33,390 ใช่มัน array-- โดยเฉพาะอาเรย์ 619 00:29:33,390 --> 00:29:35,700 และรูปแบบนี้เป็นที่ยอมรับ เป็นขี้ขลาดน้อย 620 00:29:35,700 --> 00:29:38,860 แต่นี่เป็นเพียงการส่งผ่าน ในคู่ค่าที่สำคัญอย่างหนึ่ง 621 00:29:38,860 --> 00:29:43,530 ที่สำคัญคือการอ้างนำมาอ้าง ชื่อและค่าเป็น CS50 622 00:29:43,530 --> 00:29:46,220 >> ถ้าเราได้ทำนี้ ใน C ก็อาจแทน 623 00:29:46,220 --> 00:29:49,400 ลักษณะเช่นนี้ เพียงแค่นำมาอ้างคำพูด CS50-- 624 00:29:49,400 --> 00:29:52,460 หรือที่จริงมันจะหยิก วงเล็บหรือสิ่งที่ต้องการใน C, 625 00:29:52,460 --> 00:29:55,580 ที่สำคัญคือศูนย์ และความคุ้มค่าเป็น CS50 626 00:29:55,580 --> 00:29:59,840 แต่อีกครั้งใน PHP แม้ว่า ไวยากรณ์คืออีกเล็ก ๆ น้อย ๆ ที่แปลก 627 00:29:59,840 --> 00:30:02,860 จะช่วยให้คุณผ่านใน คำแทนตัวเลข 628 00:30:02,860 --> 00:30:05,120 กุญแจที่จะเชื่อมโยงที่มีค่า 629 00:30:05,120 --> 00:30:06,390 >> ดังนั้นสิ่งที่จะทั้งหมดนี้หมายความว่าอย่างไร 630 00:30:06,390 --> 00:30:09,750 ถ้าฉันไปเป็น helpers.php, ให้ดูที่ฟังก์ชั่นนี้ 631 00:30:09,750 --> 00:30:13,620 renderHeader.php ค่อนข้าง renderHeader เป็นหน้าที่ของฉัน 632 00:30:13,620 --> 00:30:16,220 และฉันรู้ว่าเพราะฉันเห็น คำหลักที่ฟังก์ชั่นที่นี่ 633 00:30:16,220 --> 00:30:19,450 นี่คือใหม่จาก C-- มันเห็นได้ชัดว่า ใช้อาร์กิวเมนต์เรียก data-- 634 00:30:19,450 --> 00:30:22,400 แต่ฉันจะได้นี้เรียกว่า อะไร แต่ผมเรียกมันว่าข้อมูล 635 00:30:22,400 --> 00:30:25,090 เพียงเพื่อจะเป็น clean-- น้อยและ ใช้เวลาเพียงแค่การคาดเดาโดยเฉพาะอย่างยิ่ง 636 00:30:25,090 --> 00:30:28,173 ถ้าคุณได้ในโปรแกรมอื่น ๆ ภาษาระดับที่สูงขึ้นก่อนที่จะมีอะไรบางอย่าง 637 00:30:28,173 --> 00:30:29,820 ดังกล่าวข้างต้นซีแนวคิด 638 00:30:29,820 --> 00:30:33,820 >> อะไรวงเล็บเปิดเท่ากัน วงเล็บเหลี่ยมอาจจะหมายความว่าอย่างไร 639 00:30:33,820 --> 00:30:35,540 หรือสิ่งที่มันอาจหมายถึงอะไร? 640 00:30:35,540 --> 00:30:39,660 เราไม่เคยเห็นนี้ใน C. ใช่? 641 00:30:39,660 --> 00:30:40,480 >> อาร์เรย์ที่ว่างเปล่า 642 00:30:40,480 --> 00:30:45,440 โดยเฉพาะอย่างนี้หมายความว่าหาก ผู้ใช้ไม่ได้เรียก renderHeader 643 00:30:45,440 --> 00:30:49,340 มีการโต้เถียงฉันยังคง ที่จะมีการโต้แย้งข้อมูลที่เรียกว่าเป็น 644 00:30:49,340 --> 00:30:52,327 แต่ค่าเริ่มต้นของมันคือ จะเป็นอาร์เรย์ที่ว่างเปล่า 645 00:30:52,327 --> 00:30:53,660 ดังนั้นมันจึงเป็นเพียงความสะดวกสบายที่ดี 646 00:30:53,660 --> 00:30:56,493 ฉันจะได้ไม่ต้องตะโกนใส่หน้าผู้ใช้ หรือว่าคุณใช้ฟังก์ชั่นของฉันที่ไม่ถูกต้อง 647 00:30:56,493 --> 00:30:59,849 ฉันก็สามารถให้ผู้ใช้เริ่มต้น ค่าถ้าฉันไม่สนใจโดยเฉพาะอย่างยิ่ง 648 00:30:59,849 --> 00:31:01,890 ตอนนี้ฟังก์ชั่นนี้ผม ไปคลื่นมือของฉันที่ 649 00:31:01,890 --> 00:31:07,620 แต่ฟังก์ชั่นนี้จะช่วยให้สารสกัดจาก เราจะผ่านตัวแปรเหล่านี้ในข้อมูล 650 00:31:07,620 --> 00:31:10,360 เข้า header.php ในทางต่อไป 651 00:31:10,360 --> 00:31:13,100 และเป็นชิ้นส่วนที่ผ่านมา ผมคิดว่าของไวยากรณ์ขี้ขลาด 652 00:31:13,100 --> 00:31:15,860 นี่เป็นรุ่นใหม่ของฉัน header.php-- ของมัน 653 00:31:15,860 --> 00:31:20,140 ใช้ในการพูดอย่างแท้จริงเปิด ชื่อวงเล็บ CS50 และที่มัน 654 00:31:20,140 --> 00:31:21,766 และสิ่งเดียวกันของ H1 655 00:31:21,766 --> 00:31:24,310 >> ตอนนี้ก็เห็นได้ชัดว่า บางสิ่งบางอย่างขี้ขลาดสวย 656 00:31:24,310 --> 00:31:28,030 และแจ้งให้เราลดความซับซ้อนนี้ สำหรับช่วงเวลาดังต่อไปนี้ 657 00:31:28,030 --> 00:31:31,020 นี่คือสิ่งที่ฉันได้ เปลี่ยนชื่อของฉันจะ 658 00:31:31,020 --> 00:31:35,140 แต่ก็เริ่มเล็ก ๆ น้อย ๆ ที่น่าเกลียด วงเล็บเปิดอย่างต่อเนื่องกับ PHP, 659 00:31:35,140 --> 00:31:36,610 แล้วใช้ฟังก์ชั่นการพิมพ์ 660 00:31:36,610 --> 00:31:40,810 แต่กลับกลายเป็นว่า PHP มีจดชวเลข สัญกรณ์นี้ซึ่งเป็นเพียง 661 00:31:40,810 --> 00:31:45,050 เครื่องหมายเท่ากับซึ​​่งเป็นเทคนิค ฟังก์ชั่นที่เรียกว่าสะท้อนแทนการพิมพ์ 662 00:31:45,050 --> 00:31:46,800 แต่มันก็เป็นสิ่งเดียวกันได้อย่างมีประสิทธิภาพ 663 00:31:46,800 --> 00:31:48,440 >> ที่เพียงแค่ดูดีกว่า 664 00:31:48,440 --> 00:31:50,510 มันเป็นเพียงประโยค น้ำตาลถ้าคุณจะ 665 00:31:50,510 --> 00:31:52,260 ที่ทำให้รหัสของฉันดูดีขึ้นเล็กน้อย 666 00:31:52,260 --> 00:31:54,010 แต่มันจะเปิดออกและ เราจะเห็นนี้อีกครั้ง 667 00:31:54,010 --> 00:31:57,420 อีกไม่นานเราจะต้องเรียกสิ่งนี้ annoyingly ฟังก์ชั่นที่เรียกว่ายาว 668 00:31:57,420 --> 00:32:00,582 ตัวอักษรพิเศษ HTML ใน PHP, เพราะมันจะเปิดออก 669 00:32:00,582 --> 00:32:02,790 มีปัจจัยการผลิตบางอย่าง ว่าผู้ใช้อาจจะให้เรา 670 00:32:02,790 --> 00:32:05,160 หรือที่ผู้ใช้อาจให้เรา ที่กำลังจะทำลายเว็บไซต์ของเรา 671 00:32:05,160 --> 00:32:07,035 แต่เราจะเห็นว่าต่อไป สัปดาห์ด้วย JavaScript 672 00:32:07,035 --> 00:32:10,740 แต่ตอนนี้เพิ่งรู้ว่า แฟ้มนี้ headers.php เพียง 673 00:32:10,740 --> 00:32:13,040 ใช้ชื่อที่ ฉันผ่านมันทำให้ 674 00:32:13,040 --> 00:32:17,380 แน่ใจว่ามันปลอดภัยที่จะได้รับการฉีดเข้าไปในเว็บ หน้าและมันคายมันออกมาเป็นชื่อของฉัน 675 00:32:17,380 --> 00:32:18,640 และ H1 ของฉัน 676 00:32:18,640 --> 00:32:24,440 ดังนั้นถ้าผมไปลงในรุ่นนี้ตอนนี้ แจ้งให้ทราบว่ามีการบรรยายชื่อกลับ 677 00:32:24,440 --> 00:32:28,630 สัปดาห์ที่ศูนย์มีชื่อกลับมาและ แน่นอน, HTML ที่ฉันสร้าง 678 00:32:28,630 --> 00:32:32,110 เป็นเหมือนสิ่งที่รุ่นแรกของฉัน was-- ยกเว้นช่องว่างของฉัน 679 00:32:32,110 --> 00:32:35,150 เพราะผมได้เริ่มต้นการจัดรูปแบบ รหัสของฉันแตกต่างกันเล็กน้อย 680 00:32:35,150 --> 00:32:38,082 แต่ฉันสร้างขึ้นทั้งหมด รหัสฉันดูแลเกี่ยวกับ 681 00:32:38,082 --> 00:32:39,790 เพื่อให้ฉันหยุด เพียงแค่ช่วงเวลาและดู 682 00:32:39,790 --> 00:32:42,200 หากมีคำถามใด ๆ หรือความสับสนเราได้สร้าง 683 00:32:42,200 --> 00:32:44,970 684 00:32:44,970 --> 00:32:48,150 สิทธิทั้งหมดเพื่อให้บิด ยากเล็ก ๆ น้อย ๆ ที่นี่ 685 00:32:48,150 --> 00:32:51,500 เพื่อดูว่ามีการ โอกาสในการปรับปรุง 686 00:32:51,500 --> 00:32:56,130 Helpers.php นี้ยังมี ฟังก์ชั่นที่เรียกว่า renderFooter 687 00:32:56,130 --> 00:32:59,652 และสิ่งที่น่าสังเกตเกี่ยวกับ renderHeader และ renderFooter? 688 00:32:59,652 --> 00:33:02,610 และอีกครั้งสำหรับวัตถุประสงค์ของว​​ันนี้รู้ว่า สารสกัดจากฟังก์ชั่นที่เป็นเพียง 689 00:33:02,610 --> 00:33:08,280 ทางของฉันของการขัดแย้งผ่าน เข้า header.php และ footer.php 690 00:33:08,280 --> 00:33:10,900 691 00:33:10,900 --> 00:33:11,780 >> ขออภัย? 692 00:33:11,780 --> 00:33:13,056 >> ผู้ชม: [ไม่ได้ยิน] 693 00:33:13,056 --> 00:33:15,180 DAVID ลัน: ใช่ฉันเท่านั้น ต้องเปลี่ยนสาย 694 00:33:15,180 --> 00:33:19,410 ดังนั้นแท้จริงเราได้มุ่งมั่นบาป การคัดลอกและวางอีกครั้ง 695 00:33:19,410 --> 00:33:21,920 มันไม่ได้เป็นจำนวนมาก ของสาย แต่มา on-- 696 00:33:21,920 --> 00:33:25,220 ถ้าฉันคัดลอกและวางทุกอย่าง เพียงแค่มีการเปลี่ยนแปลงเล็ก ๆ น้อย ๆ คำหนึ่ง 697 00:33:25,220 --> 00:33:28,610 และหนึ่งคำเล็ก ๆ ที่อลันชี้ ออกเป็นส่วนท้ายของที่นี่เมื่อเทียบกับส่วนหัวที่นี่ 698 00:33:28,610 --> 00:33:30,670 มิฉะนั้นทุกอย่าง เหมือนกันยกเว้นสำหรับ 699 00:33:30,670 --> 00:33:32,180 แน่นอนชื่อของฟังก์ชั่น 700 00:33:32,180 --> 00:33:33,690 ดังนั้นสิ่งที่เราสามารถทำดีกว่า? 701 00:33:33,690 --> 00:33:39,810 >> ดีให้ฉันเปิดรุ่นนี้ ที่นี่โดยใน helpers.php, 702 00:33:39,810 --> 00:33:42,300 ทำไมฉันจึงไม่เพียงได้รับ เล็ก ๆ น้อย ๆ อย่างชาญฉลาดเกี่ยวกับเรื่องนี้? 703 00:33:42,300 --> 00:33:46,410 เขียนเล็กน้อยที่ซับซ้อนมากขึ้น รหัส แต่เรียกว่าทำให้? 704 00:33:46,410 --> 00:33:48,470 ดังนั้นสิ่งที่เราได้เปลี่ยนแปลงพื้นฐาน? 705 00:33:48,470 --> 00:33:51,770 >> มันต้องใช้เวลาโต้เถียง now-- สองข้อโต้แย้งข้อมูลที่ยังคง 706 00:33:51,770 --> 00:33:54,444 และแล้วสิ่งที่เป็นครั้งแรก ชื่ออาจจะถูกนำมาใช้สำหรับ 707 00:33:54,444 --> 00:33:55,860 ขึ้นอยู่กับสิ่งที่คุณกำลังอ่านที่นี่? 708 00:33:55,860 --> 00:33:58,452 แม้ว่าบางส่วนของไวยากรณ์ยังใหม่ 709 00:33:58,452 --> 00:33:59,660 ดอลล่าคืออะไรแม่แบบการเข้าสู่ระบบ? 710 00:33:59,660 --> 00:34:02,400 711 00:34:02,400 --> 00:34:03,016 >> ขออภัย? 712 00:34:03,016 --> 00:34:03,710 >> ผู้ชม: ส่วนหัวหรือส่วนท้าย 713 00:34:03,710 --> 00:34:04,510 >> DAVID ลัน: ส่วนหัวหรือส่วนท้าย 714 00:34:04,510 --> 00:34:07,134 ดังนั้นเห็นได้ชัดว่าผมตัดสินใจว่าถ้า สิ่งเดียวที่มีการเปลี่ยนแปลง 715 00:34:07,134 --> 00:34:10,159 คือสิ่งที่แม่แบบที่ฉันต้องการ เพื่อ print-- และแม่แบบ 716 00:34:10,159 --> 00:34:13,100 ผมหมายถึงนี้เป็นพิมพ์เขียวสำหรับ รหัสที่ฉันต้องการที่จะส่งออก 717 00:34:13,100 --> 00:34:16,350 แต่ฉันต้องการที่จะเสียบในบาง values​​-- ดังนั้นถ้ามันส่วนหัวเท่านั้น 718 00:34:16,350 --> 00:34:20,440 หรือส่วนท้ายทำไมฉันจึงไม่ parameterize และเรียกว่าอาร์กิวเมนต์ดอลลาร์เข้าสู่ระบบ 719 00:34:20,440 --> 00:34:21,409 แม่แบบ? 720 00:34:21,409 --> 00:34:26,250 และแล้วนี้ไวยากรณ์ขี้ขลาดช่วยให้ฉัน เพื่อสร้างเส้นทางในตัวแปรที่นี่ 721 00:34:26,250 --> 00:34:28,030 >> ดังนั้นเงินดอลลาร์เส้นทางการเข้าสู่ระบบเป็นตัวแปร 722 00:34:28,030 --> 00:34:31,120 อะไรรูปแบบนี้ ทำถ้าคุณคุ้นเคย? 723 00:34:31,120 --> 00:34:32,512 ใช่? 724 00:34:32,512 --> 00:34:34,065 >> ผู้ชม: [ไม่ได้ยิน] 725 00:34:34,065 --> 00:34:34,940 DAVID ลัน: แน่นอน 726 00:34:34,940 --> 00:34:37,600 ถ้าแม่แบบอ้างนำมาอ้าง, ส่วนหัวหรือถ้าแม่แบบคือ 727 00:34:37,600 --> 00:34:41,170 อ้างนำมาอ้างท้ายบรรทัดมีที่ ที่ผมได้เน้นสายแปด 728 00:34:41,170 --> 00:34:46,330 เป็นเพียงการใช้ชื่อว่าเหมือนหัว และเชื่อมโยงกับ PHP จุด 729 00:34:46,330 --> 00:34:49,750 ดังนั้นเราจึงไม่ได้มีการดำเนินการนี​​้ ผู้ประกอบการใน C. จุดนี้เป็น 730 00:34:49,750 --> 00:34:54,520 สิ่งที่น่าตื่นตาตื่นใจใน PHP-- ถ้าคุณ คุ้นเคยกับ JavaScript หรือ Java 731 00:34:54,520 --> 00:34:56,949 คุณสามารถใช้บวก เข้าสู่ระบบที่จะทำเรียงต่อกัน 732 00:34:56,949 --> 00:34:59,974 >> ใน C มันเป็นความเจ็บปวดใน neck-- ที่ และฉันขอโทษดังนั้นในพีตั้งหก 733 00:34:59,974 --> 00:35:02,390 คุณกำลังจะต้องทำ this-- มันเป็นอาการปวดคอ 734 00:35:02,390 --> 00:35:03,930 เพื่อเชื่อมสาย 735 00:35:03,930 --> 00:35:04,670 ทำไม? 736 00:35:04,670 --> 00:35:06,580 ดีเพราะถ้าคุณได้มี สตริงที่นี้ยาว 737 00:35:06,580 --> 00:35:09,538 และสตริงที่ยาวนี้อีก คุณไม่สามารถเพียงแค่เสียบเข้าด้วยกัน 738 00:35:09,538 --> 00:35:11,070 อะไรคือสิ่งที่คุณแทนต้องทำใน C? 739 00:35:11,070 --> 00:35:11,680 ใช่? 740 00:35:11,680 --> 00:35:12,380 >> ผู้ชม: [ไม่ได้ยิน] 741 00:35:12,380 --> 00:35:15,090 >> DAVID ลัน: คุณต้อง malloc หน่วยความจำหรือใช้อาร์เรย์ในกอง 742 00:35:15,090 --> 00:35:17,214 และคุณจริงต้อง ทำให้อาร์เรย์ที่ใหญ่พอ 743 00:35:17,214 --> 00:35:20,940 เพื่อให้พอดีกับนี้บวกนี้ เครื่องหมายบวกเป็นศูนย์ 744 00:35:20,940 --> 00:35:24,994 แล้วเชื่อมเข้าด้วยกันโดยใช้ ผัดแมวหรือด้วยตนเองสำหรับห่วง 745 00:35:24,994 --> 00:35:26,160 หรือจำนวนของเทคนิคใด ๆ 746 00:35:26,160 --> 00:35:27,760 และเราจะแสดงคู่ในพีตั้งหก 747 00:35:27,760 --> 00:35:29,080 >> มันเจ็บคอ 748 00:35:29,080 --> 00:35:34,190 และนี่คือสิ่งที่ฉันอย่างแท้จริงหมายถึงเกี่ยวกับ นี้เมื่อเทียบกับ this-- เช่น C เมื่อเทียบกับ PHP 749 00:35:34,190 --> 00:35:36,870 คุณเพียงแค่ได้รับมากขึ้น ฟังก์ชั่นฟรี 750 00:35:36,870 --> 00:35:39,030 เพื่อให้คุณสามารถมุ่งเน้น นึกคิดสนุก 751 00:35:39,030 --> 00:35:41,190 เป็นส่วนหนึ่งของการเข้ารหัสที่ โครงการที่คุณต้องการที่จะแก้ปัญหา 752 00:35:41,190 --> 00:35:43,190 มากกว่าข้อปลีกย่อยในระดับต่ำ 753 00:35:43,190 --> 00:35:49,840 >> ดังนั้นเพียงแค่นี้หรือสร้าง header.php footer.php ขึ้นอยู่กับที่หนึ่งที่ผมเรียกว่า 754 00:35:49,840 --> 00:35:52,280 และแน่นอนถ้าฉันไป เข้า index.php แจ้งให้ทราบล่วงหน้า 755 00:35:52,280 --> 00:35:56,230 ทั้งหมดที่ changed-- แทน โทรทำให้หัวหรือทำให้ส่วนท้าย 756 00:35:56,230 --> 00:36:00,230 ฉันโทรทำให้ตามด้วย ชื่อของแม่แบบที่ฉันต้องการจะทำ 757 00:36:00,230 --> 00:36:02,370 และคุณจะเห็นนี้มากเกินไป ปัญหาตั้งเจ็ด 758 00:36:02,370 --> 00:36:05,530 โดยเราช่วยให้คุณสามารถใช้ ฟังก์ชั่นเดียวกันเพื่อให้อัดแน่น 759 00:36:05,530 --> 00:36:07,550 และอัดแน่นของหน้าเว็บที่แตกต่างกัน 760 00:36:07,550 --> 00:36:10,570 >> ดังนั้นแทนที่จะอาศัยอยู่มากเกินไป มากขึ้นใน details-- เหล่านั้น 761 00:36:10,570 --> 00:36:13,210 ซึ่งคุณจะเห็นอีกครั้งใน ชุดปัญหา seven-- ให้ดู 762 00:36:13,210 --> 00:36:16,850 ที่ตอนนี้จุดเริ่มต้นของการแก้ปัญหา เป็นปัญหาที่น่าสนใจมากขึ้น 763 00:36:16,850 --> 00:36:19,310 ป่านนี้ไม่มีอะไรเราได้ ทำมีการบันทึกข้อมูล 764 00:36:19,310 --> 00:36:22,920 ในความเป็นจริงเป็นครั้งเดียวที่เราเคยได้บันทึกไว้ บางสิ่งบางอย่างที่เราเคยทำในชั้นนี้ 765 00:36:22,920 --> 00:36:31,030 คือเมื่อเรามีการสาธิตง่ายมากสักครู่ กลับมาโดยที่เราใช้ไฟล์ IO ใน C, 766 00:36:31,030 --> 00:36:34,520 และฉันคิดว่าฉันพิมพ์ในนามของเราและ ชื่อฮันนาห์และชื่อมาเรีย 767 00:36:34,520 --> 00:36:37,610 หรืออาจจะเป็นชื่อของแอนดี้และ แล้วเราบันทึกไว้ file-- CSV 768 00:36:37,610 --> 00:36:39,430 คั่นด้วยเครื่องหมายจุลภาคยื่นค่า 769 00:36:39,430 --> 00:36:43,530 >> และเราใช้ fopen-- ผมคิดว่า เราใช้ fprintf เท่าที่ผมจำได้ 770 00:36:43,530 --> 00:36:44,910 และเราบันทึกไฟล์ 771 00:36:44,910 --> 00:36:46,920 ตอนนี้ที่เป็นที่ง่ายที่สุด รูปแบบของฐานข้อมูล 772 00:36:46,920 --> 00:36:50,230 ถ้าคุณต้องการที่จะทำให้เว็บไซต์ที่ frosh โปรแกรมสนทนาโดยนักศึกษา 773 00:36:50,230 --> 00:36:53,390 สามารถลงทะเบียนสำหรับการเล่นกีฬาที่คุณนึกคิด ต้องการที่จะทำบางสิ่งบางอย่างที่มีข้อมูลว่า 774 00:36:53,390 --> 00:36:55,370 สัปดาห์ที่แล้วเราไม่ได้ทำอะไร กับ data-- ที่เราเพิ่งกล่าวว่า 775 00:36:55,370 --> 00:36:56,661 คุณลงทะเบียนไม่ได้จริงๆ 776 00:36:56,661 --> 00:36:58,950 หรือบางทีผมส่งทางอีเมล ทนายและที่มัน 777 00:36:58,950 --> 00:37:02,110 >> แต่มันจะดีถ้าฉันสามารถทำได้ ให้สอบว่าไฟล์ CSV 778 00:37:02,110 --> 00:37:03,340 เช่นแฟ้ม Excel 779 00:37:03,340 --> 00:37:05,090 หรือดีกว่ายังมันจะ จะดีถ้าฉันสามารถทำได้ 780 00:37:05,090 --> 00:37:08,830 ใส่ชื่อผู้ใช้และ หอพักชื่อและทุกที่ 781 00:37:08,830 --> 00:37:11,740 ลงในฐานข้อมูลที่ เพียงแค่มีชีวิตอยู่ตลอดไป 782 00:37:11,740 --> 00:37:13,530 จนกว่าฉันเลือกที่จะลบข้อมูล 783 00:37:13,530 --> 00:37:15,645 ฐานข้อมูลที่ช่วยให้ ฉันไปสอบถามข้อมูล 784 00:37:15,645 --> 00:37:18,070 และแน่นอนว่าเป็นสิ่งที่เป็นฐานข้อมูล 785 00:37:18,070 --> 00:37:20,470 >> เราแนะนำในวันนี้และ ในสัปดาห์หน้าเช่นกันเทคโนโลยี 786 00:37:20,470 --> 00:37:25,020 เรียกว่า SQL-- แบบสอบถามที่มีโครงสร้าง ภาษาซึ่งเป็นภาษาอื่น 787 00:37:25,020 --> 00:37:28,750 มันเป็นหลักการเขียนโปรแกรม ภาษา แต่สำหรับฐานข้อมูล 788 00:37:28,750 --> 00:37:31,760 และฐานข้อมูลสำหรับตอนนี้เพียง คิดว่าเป็นรุ่นแฟนซีสุด 789 00:37:31,760 --> 00:37:35,710 ของ Microsoft Excel, หรือ Google Spreadsheets หรือหมายเลขแอปเปิ้ล 790 00:37:35,710 --> 00:37:39,950 โดยทั่วไปโปรแกรมที่ช่วยให้ คุณสามารถจัดเก็บทั้งกลุ่มของข้อมูล 791 00:37:39,950 --> 00:37:43,960 ในแถวและคอลัมน์ค่อนข้าง เช่นคุณอาจจะใน Excel 792 00:37:43,960 --> 00:37:47,100 >> แต่สิ่งที่ดีโดยเฉพาะอย่างยิ่งถ้า เราไม่ได้ซุปเปอร์คุ้นเคยกับ Excel, 793 00:37:47,100 --> 00:37:52,040 สิ่งที่ SQL ช่วยให้คุณทำคือแบบสอบถามนี้ ข้อมูลโดยการเขียนบรรทัดของรหัส 794 00:37:52,040 --> 00:37:55,220 ที่คุณสามารถแม้ว่าคุณ ฐานข้อมูลมีล้านแถวในนั้น 795 00:37:55,220 --> 00:37:57,190 คุณสามารถหาสิ่งที่เร็วสุด 796 00:37:57,190 --> 00:37:59,950 ในความเป็นจริงโดยเฉพาะอย่างยิ่ง Excel เป็น ที่ไม่ดีที่ชุดข้อมูลขนาดใหญ่ 797 00:37:59,950 --> 00:38:02,460 และในความเป็นจริงถึงไม่กี่ ปีที่ผ่านมาเปิดออก 798 00:38:02,460 --> 00:38:08,890 Excel เท่านั้นที่จะช่วยให้คุณสามารถจัดเก็บ ได้ถึง 65,535 แถวของ data-- ที่ 799 00:38:08,890 --> 00:38:12,020 เสียงเหมือนมาก แต่ที่ ทุกครั้งที่ผมเป็นนักเรียนที่จบ 800 00:38:12,020 --> 00:38:14,920 และผมจำได้ว่าสะดุด นี้เพราะผมได้รับการสร้าง 801 00:38:14,920 --> 00:38:17,900 ไฟล์ CSV สำหรับการวิจัยของฉันและฉัน ต้องการที่จะวิเคราะห์ได้อย่างรวดเร็ว 802 00:38:17,900 --> 00:38:19,530 โดยเพียงแค่เปิดขึ้นใน Excel 803 00:38:19,530 --> 00:38:23,730 แน่นอนว่าเครื่องคอมพิวเตอร์ของฉันเพียงแค่ตรวจค้น เพราะผมมีมากกว่า 65,000 แถว 804 00:38:23,730 --> 00:38:27,210 >> แต่ที่ไม่ 65,535 มาจากไหน? 805 00:38:27,210 --> 00:38:29,670 อะไรคือสิ่งที่ไมโครซอฟท์ทำสันนิษฐาน? 806 00:38:29,670 --> 00:38:32,430 หากคุณดีกับอำนาจของคุณสอง? 807 00:38:32,430 --> 00:38:37,160 ใช่พวกเขาใช้ 16 บิต มูลค่าให้แทนจำนวนแถว 808 00:38:37,160 --> 00:38:41,310 และสองถึง 16 65,536-- หนึ่งลบเพราะถ้าคุณ 809 00:38:41,310 --> 00:38:45,414 ศูนย์ดัชนีหมายความว่าเป็น จำนวนมากที่สุดของแถวฉันสามารถมี 810 00:38:45,414 --> 00:38:46,830 และมันก็เป็นเพียงแค่การตัดสินใจการออกแบบ 811 00:38:46,830 --> 00:38:52,760 โดยการบันทึก 16 บิตพวกเขา จำกัด ฉัน 16,000 แถวแทน 4 พันล้าน 812 00:38:52,760 --> 00:38:54,322 ซึ่งผมจะได้มีความนึกคิด 813 00:38:54,322 --> 00:38:57,030 แต่ตอนนี้เรากำลังจะไป แนะนำเพิ่มเติมนี้ในบริบทเว็บ 814 00:38:57,030 --> 00:39:00,390 และสิ่งที่ดีเกี่ยวกับ SQL คือว่าแม้ แม้ว่ามันจะสวยสวยที่มีประสิทธิภาพและ 815 00:39:00,390 --> 00:39:04,050 ที่มีความซับซ้อนจริงๆมันเดือด ลงไปที่สี่การดำเนินงานที่สำคัญสี่ 816 00:39:04,050 --> 00:39:08,060 ฟังก์ชั่นที่สำคัญถ้าคุณ will-- เลือก สำหรับการดึงข้อมูลที่ค้นหา 817 00:39:08,060 --> 00:39:12,510 สำหรับข้อมูล ลบหรือลบข้อมูล ใส่สำหรับการเพิ่มแถวไปยังฐานข้อมูล; 818 00:39:12,510 --> 00:39:13,410 และการปรับปรุง 819 00:39:13,410 --> 00:39:17,010 ดังนั้นถ้าคุณเคยใช้ Google Spreadsheets, เบอร์แอปเปิ้ลไมโครซอฟท์ 820 00:39:17,010 --> 00:39:19,310 Excel คุณได้ดำเนินการ ส่วนใหญ่ทั้งหมด 821 00:39:19,310 --> 00:39:22,530 ของการดำเนินงานเหล่านี้เป็นมนุษย์โดย เพียงแค่ใช้แป้นพิมพ์ของคุณและ mouse-- 822 00:39:22,530 --> 00:39:26,050 ใส่ข้อมูลโดยใช้ดวงตาของคุณ เพื่อเลือกหรือค้นหาข้อมูล 823 00:39:26,050 --> 00:39:28,360 หรือปรับปรุงข้อมูลหรือลบข้อมูล 824 00:39:28,360 --> 00:39:29,870 >> ดังนั้นสิ่งนี้หมายความว่าอย่างไร? 825 00:39:29,870 --> 00:39:34,300 ดีที่ติดตั้งใน CS50 IDE เป็นโปรแกรมที่เรียกว่า MySQL 826 00:39:34,300 --> 00:39:37,050 มันเป็นฟรีเปิดแหล่งที่มา ฐานข้อมูลที่เป็นที่นิยมสุด 827 00:39:37,050 --> 00:39:40,590 Facebook, เช่นใช้มันในการนี​​้ วันในหมู่เครื่องมืออื่น ๆ ที่พวกเขาใช้ 828 00:39:40,590 --> 00:39:44,300 และมีเว็บไซต์จำนวนมากที่นิยมมากใช้ ในส่วนใหญ่เพราะมันเป็นไปอย่างรวดเร็ว 829 00:39:44,300 --> 00:39:45,230 และเพราะฟรี 830 00:39:45,230 --> 00:39:46,820 แม้ว่าทางเลือกที่มีอยู่อย่างแน่นอน 831 00:39:46,820 --> 00:39:49,580 และบางส่วนของคุณอาจตะลุยกับ ทางเลือกสำหรับโครงการสุดท้าย 832 00:39:49,580 --> 00:39:55,330 >> นี่คือภาพหน้าจอขณะที่ของ เครื่องมือบนเว็บที่เรียกว่า phpMyAdmin 833 00:39:55,330 --> 00:39:58,260 มันเป็นเรื่องบังเอิญที่ เครื่องมือบนเว็บนี้ยังเป็น 834 00:39:58,260 --> 00:40:01,720 เขียนในภาษา PHP, แต่สิ่งที่มันหมายถึงการทำ 835 00:40:01,720 --> 00:40:04,620 จะทำให้เรามี Web-based อินเตอร์เฟซกับฐานข้อมูล 836 00:40:04,620 --> 00:40:07,180 เพราะมักจะเป็น MySQL บางสิ่งบางอย่างในอดีตคุณ 837 00:40:07,180 --> 00:40:08,770 จะมีปฏิสัมพันธ์กับเพียง กับบรรทัดคำสั่ง 838 00:40:08,770 --> 00:40:10,811 และมันจะเป็นซุปเปอร์ ที่น่ารำคาญและความลับที่จะมี 839 00:40:10,811 --> 00:40:14,487 พิมพ์คำสั่งเกี่ยวกับใจที่จะเลือก ข้อมูลแทรกข้อมูลและลบข้อมูล 840 00:40:14,487 --> 00:40:16,820 ดังนั้นบางคนบนอินเทอร์เน็ต เขียนโปรแกรมบนเว็บ 841 00:40:16,820 --> 00:40:18,900 ที่เพียงแค่ปล่อยให้เราจัดการ ข้อมูลในฐานข้อมูลของเรา 842 00:40:18,900 --> 00:40:23,040 มันก็เหมือนกับการดับเบิลคลิกที่ Excel และ เรียกใช้รุ่นบนเว็บดังกล่าว 843 00:40:23,040 --> 00:40:26,370 >> และสิ่งที่คุณกำลังจะใช้นี้ ในท้ายที่สุดในสัปดาห์หน้าไม่ได้อยู่ในพีตั้งหก 844 00:40:26,370 --> 00:40:28,680 แต่คือการสร้างบางสิ่งบางอย่าง เรียกว่า CS50 การเงินซึ่ง 845 00:40:28,680 --> 00:40:32,630 จะมีฐานข้อมูลของ ผู้ใช้ที่มีชื่อผู้ใช้และรหัสผ่าน 846 00:40:32,630 --> 00:40:34,860 จำนวนเงินที่พวกเขา มีในบัญชีธนาคารของพวกเขา 847 00:40:34,860 --> 00:40:37,280 มันเป็นไปได้ สิ่งที่คุณใช้ในการจัดเก็บ 848 00:40:37,280 --> 00:40:39,910 สัญลักษณ์และปริมาณ ของหุ้นที่ผู้ใช้ 849 00:40:39,910 --> 00:40:42,567 ได้ซื้อใช้เสมือน ดอลลาร์ที่คุณจะให้กับพวกเขา 850 00:40:42,567 --> 00:40:44,900 และมันจะช่วยให้ผู้ใช้ การลงทะเบียนสำหรับเว็บไซต์ของคุณ 851 00:40:44,900 --> 00:40:47,190 เพื่อให้ได้เพื่อนของคุณ การปรับแต่งสามารถในเว็บไซต์ของคุณ 852 00:40:47,190 --> 00:40:49,360 และที่จริงการลงทะเบียน เข้าสู่ระบบและเล่นรอบ 853 00:40:49,360 --> 00:40:52,807 และพยายามที่จะหาข้อผิดพลาดในรหัสของคุณ และพยายามที่จะหาข้อบกพร่องในเว็บไซต์ของคุณ 854 00:40:52,807 --> 00:40:55,390 และพวกเขาก็จะลงทะเบียน เพิ่มตัวเองได้อย่างมีประสิทธิภาพ 855 00:40:55,390 --> 00:40:58,120 รหัสผ่านที่คุณเขียนไปยังฐานข้อมูลของคุณ 856 00:40:58,120 --> 00:41:02,470 >> ตัวอย่างเช่นนี้เป็นภาพหน้าจอได้อย่างรวดเร็ว ของสิ่งที่ฐานข้อมูลอาจมีลักษณะเช่น 857 00:41:02,470 --> 00:41:05,190 นี่เป็นหนึ่งใน solutions-- ปีที่ผ่านมา 858 00:41:05,190 --> 00:41:07,760 นี้เป็นเหมือน Excel มินิ ไฟล์ที่เก็บไว้ในฐานข้อมูลของเรา 859 00:41:07,760 --> 00:41:09,950 เก็บไว้ในซอฟต์แวร์นี้เรียกว่า MySQL 860 00:41:09,950 --> 00:41:13,260 ด้านซ้ายมือที่ฉันได้เห็นได้ชัดว่า ผู้ใช้ทุกคนได้รับเป็นจำนวนที่ไม่ซ้ำกัน 861 00:41:13,260 --> 00:41:16,200 ในคอลัมน์ที่สองฉันได้รับ ผู้ใช้ทุกคน name-- ของตัวเอง 862 00:41:16,200 --> 00:41:16,880 ในหมู่พวกเขา 863 00:41:16,880 --> 00:41:21,430 และที่ด้านข้างขวามือ ฉันได้ให้แก่พวกเขากัญชา 864 00:41:21,430 --> 00:41:26,760 >> ตอนนี้เป็นจริงรหัสผ่าน แต่ก็ไม่ได้รหัสผ่านข้อความธรรมดา 865 00:41:26,760 --> 00:41:30,160 มันเป็นรหัสผ่านที่เข้ารหัสถ้า คุณจะใช้หรือรหัสผ่านแฮช 866 00:41:30,160 --> 00:41:32,000 ซึ่งการที่เราจะกลับมาอีกไม่นาน 867 00:41:32,000 --> 00:41:34,340 >> แต่ถ้าคุณเคยอ่าน บทความเกี่ยวกับวิธีการ 868 00:41:34,340 --> 00:41:37,950 รหัสผ่านของคุณที่ธนาคารหรือบางส่วน เว็บไซต์อาจจะได้รับอันตราย 869 00:41:37,950 --> 00:41:39,630 โดยทั่วไปจะหมายถึงหนึ่งในสองสิ่ง 870 00:41:39,630 --> 00:41:42,780 ดังนั้นนี่คือข้อความที่ตัดตอนมาเพียงหกผู้ใช้ 871 00:41:42,780 --> 00:41:45,460 ทั้งหมดขณะนี้คุณสามารถคิด ออกมาผ่านการเจาะหรือแตก 872 00:41:45,460 --> 00:41:47,690 สิ่งที่คนของเรารหัสผ่านที่หกคือ 873 00:41:47,690 --> 00:41:49,720 แต่ถ้าคุณเคยเคย การแจ้งเตือนหรือคำขอโทษ 874 00:41:49,720 --> 00:41:52,803 จากคำกล่าวที่ว่า บริษัท หรือเว็บไซต์ ขออภัยแฮกเกอร์บุกเข้าไปในฐานข้อมูลของเรา 875 00:41:52,803 --> 00:41:56,360 คุณอาจจะเปลี่ยนคุณ รหัสผ่านสิ่งที่อาจจะหมายความว่าอย่างไร 876 00:41:56,360 --> 00:41:59,670 >> ดีหนึ่งอาจหมายถึง บริษัท ได้รับปัญญาอ่อนมากขึ้น 877 00:41:59,670 --> 00:42:03,630 และได้รับการจัดเก็บรหัสผ่านของคุณ ในคอลัมน์เช่นนี้ไม่ได้เข้ารหัส 878 00:42:03,630 --> 00:42:05,840 ซึ่งหมายความว่าฝ่ายตรงข้าม, ที่ขโมยฐานข้อมูล 879 00:42:05,840 --> 00:42:07,440 รู้อย่างแท้จริงของคุณ ชื่อและรหัสผ่าน 880 00:42:07,440 --> 00:42:08,960 นั่นเป็นสถานการณ์ที่เลวร้ายที่สุด 881 00:42:08,960 --> 00:42:11,710 และในขณะที่คุณจะเห็นในหน้าตั้ง เจ็ดเพื่อง่ายต่อการหลีกเลี่ยง 882 00:42:11,710 --> 00:42:15,624 มีอย่างไม่มีข้อแก้ตัวสำหรับการที่ รูปแบบของความโง่เขลาในอินเทอร์เน็ตในปัจจุบัน 883 00:42:15,624 --> 00:42:18,540 Two-- และเราจะพบบางบทความ เพื่อเป็นพยานความจริงที่ว่านี้ยังคง 884 00:42:18,540 --> 00:42:21,710 เกิดขึ้น nonetheless-- สองอาจฝ่ายตรงข้าม 885 00:42:21,710 --> 00:42:23,840 ขโมยรุ่นของฐานข้อมูลนี้ 886 00:42:23,840 --> 00:42:27,110 ซึ่งยังคงเป็นชนิดของที่ไม่ดีเพราะตอนนี้ พวกเขารู้ว่าฉันมีหกลูกค้า 887 00:42:27,110 --> 00:42:29,270 ฉันรู้ว่าชื่อผู้ใช้ ของผู้ที่หกลูกค้า 888 00:42:29,270 --> 00:42:32,910 และฉันรู้ว่าที่เข้ารหัส รุ่นหรือรุ่นแฮชที่ 889 00:42:32,910 --> 00:42:34,340 ของผู้ที่หกรหัสผ่านของลูกค้า 890 00:42:34,340 --> 00:42:37,010 แต่ใด ๆ ของท่านที่อาจจะ เสร็จแล้ว [? แฮ็กเกอร์ 2?] 891 00:42:37,010 --> 00:42:41,150 ที่คุณแตกรหัสผ่านหรือเอา ดูที่รุ่นของปัญหาที่ 892 00:42:41,150 --> 00:42:46,280 ชุดทำไมมันยังคงเป็นที่น่าเป็นห่วงเล็ก ๆ น้อย ๆ ถ้าฝ่ายตรงข้ามรู้กัญชาของคุณ 893 00:42:46,280 --> 00:42:47,435 รหัสผ่าน? 894 00:42:47,435 --> 00:42:49,732 >> ผู้ชม: เพ​​ราะพวกเขาได้ ใส่พจนานุกรมทั้ง 895 00:42:49,732 --> 00:42:50,690 ในการทำงานกัญชา 896 00:42:50,690 --> 00:42:54,520 และถ้ารหัสผ่านของคุณพจนานุกรม คำ [? พวกเขาก็สามารถ match--?] 897 00:42:54,520 --> 00:42:57,640 >> DAVID ลัน: ตรง, ฝ่ายตรงข้าม ก็สามารถเขียนโค้ดเช่นบางส่วนของคุณ 898 00:42:57,640 --> 00:43:00,526 ได้สำหรับ [? แฮ็กเกอร์?] 2 โดยคุณย้ำกว่า 899 00:43:00,526 --> 00:43:03,400 ทั้งหมดของคำในพจนานุกรม หรือผสมเป็นไปได้ทั้งหมดของ A 900 00:43:03,400 --> 00:43:06,610 ถึง Z และผ่าน nine-- ซึ่งเสียงเหมือนมากและมันก็เป็น 901 00:43:06,610 --> 00:43:08,361 แต่สำหรับเครื่องคอมพิวเตอร์ ก็สาปอย่างรวดเร็ว 902 00:43:08,361 --> 00:43:10,610 และในความเป็นจริงที่เป็น จุด [? แฮ็กเกอร์ที่ 2?] เป็น 903 00:43:10,610 --> 00:43:12,540 ที่จะใช้สิ่งที่ ตัวอักษรที่มีลักษณะเช่นนี้ 904 00:43:12,540 --> 00:43:14,900 และวิศวกรรมย้อนกลับ สิ่งที่มันเป็นจริง 905 00:43:14,900 --> 00:43:17,270 >> ดังนั้นเราจะดูที่วิธีการที่เราสามารถทำได้ จัดเก็บได้อย่างมีประสิทธิภาพมากขึ้นนี้ 906 00:43:17,270 --> 00:43:20,210 เปิดออกโชคดีใน MySQL, มีกำลังจะเป็นชนิดข้อมูล 907 00:43:20,210 --> 00:43:22,800 และเป็นหนึ่งในส่วนที่เกี่ยวกับความสนุกสนาน การออกแบบฐานข้อมูลจะซื่อสัตย์ 908 00:43:22,800 --> 00:43:25,810 เป็นจริงที่จะตัดสินใจด้วยตัวคุณเอง วิธีที่คุณควรแสดงข้อมูลหรือไม่ 909 00:43:25,810 --> 00:43:29,630 คุณควรแสดงหมายเลขโทรศัพท์เป็น int เช่นจำนวนมากหรือยาว? 910 00:43:29,630 --> 00:43:31,630 หรือคุณจริงจะทำมัน เป็นลำดับของตัวอักษรหรือไม่? 911 00:43:31,630 --> 00:43:33,780 และสามารถมีได้มาก ผลกระทบที่ไม่น่ารำคาญนี้ 912 00:43:33,780 --> 00:43:36,714 >> ในความเป็นจริงหนึ่งใน ที่เก่าแก่ที่สุดสนุกเรื่องราวชิด 913 00:43:36,714 --> 00:43:39,880 คือเมื่อ Mark Zuckerberg ได้สร้าง Facebook, มันถูกเขียนขึ้นใน 914 00:43:39,880 --> 00:43:42,300 และยังคงเป็นลายลักษณ์อักษรส่วนใหญ่ใน PHP 915 00:43:42,300 --> 00:43:45,400 และเป็นหนึ่งในท้าทายที่ใหญ่ที่สุด พวกเขาเผชิญในช่วงต้นได้รับการปรับ 916 00:43:45,400 --> 00:43:48,820 เมื่อพวกเขาเก็บเพิ่มหลังจากที่โรงเรียน โรงเรียนหลังเลิกเรียนเพื่อความรู้ของฉัน 917 00:43:48,820 --> 00:43:51,639 หนึ่งในวิธีการเดิม เป็นหลักในการคัดลอกและวาง 918 00:43:51,639 --> 00:43:53,430 บางส่วนของฐานข้อมูล และบางส่วนของรหัส 919 00:43:53,430 --> 00:43:55,346 เพื่อที่ฮาร์วาร์เป็น ทำงานบนเซิร์ฟเวอร์ของตัวเอง 920 00:43:55,346 --> 00:43:56,995 และเอ็มไอทีได้รับการทำงานบนเซิร์ฟเวอร์ของตัวเอง 921 00:43:56,995 --> 00:43:59,120 และนี่คือเหตุผลที่สำหรับบางคน ท่านที่อาจจะจำได้ 922 00:43:59,120 --> 00:44:01,510 คุณอาจจะได้มีเพื่อน ในเครือข่ายอื่น ๆ 923 00:44:01,510 --> 00:44:05,050 >> คุณอาจจะไม่ได้มีเพื่อนที่ หรือเอ็มไอทีฮาร์วาร์ 10 หรือดังนั้นปีที่ผ่านมา 924 00:44:05,050 --> 00:44:07,467 แต่คุณไม่สามารถขยายเครือข่าย สำหรับส่วนหนึ่งด้วยเหตุผลที่ว่า 925 00:44:07,467 --> 00:44:10,550 และหนึ่งในความท้าทายที่ใหญ่ที่สุดสำหรับ มาร์คและสำหรับ บริษัท เช่น Facebook 926 00:44:10,550 --> 00:44:13,460 เป็นจริงจัดการหลายร้อย และหลายพันล้าน 927 00:44:13,460 --> 00:44:14,460 ของการร้องขอต่อวินาที 928 00:44:14,460 --> 00:44:16,501 ดังนั้นสิ่งที่เราจะเริ่มต้น พูดคุยเกี่ยวกับสัปดาห์นี้ 929 00:44:16,501 --> 00:44:19,860 เป็นจริงไปได้ที่จะใกล้ชิด การเขียนซอฟแวร์ที่ดีและเป็นที่นิยม 930 00:44:19,860 --> 00:44:23,040 เครื่องมือที่ประสบความสำเร็จ สามารถจัดการกับผู้ใช้จำนวนมาก 931 00:44:23,040 --> 00:44:25,460 >> ดังนั้นเราจะพูดคุยเกี่ยวกับสิ่งที่ เช่นการจัดทำดัชนีและการค้นหา 932 00:44:25,460 --> 00:44:26,910 แต่ที่มันสำหรับวันนี้ 933 00:44:26,910 --> 00:44:28,780 เราจะเห็นคุณมากขึ้นในวันพุธที่ 934 00:44:28,780 --> 00:44:31,780 935 00:44:31,780 --> 00:44:33,902 >> [ดนตรี - "Seinfeld" เค้าโครง] 936 00:44:33,902 --> 00:44:35,943 DAVID ลัน: คุณสามารถไปยัง มันและลบจากมัน 937 00:44:35,943 --> 00:44:38,859 และคุณไม่ต้องติดกับ บางส่วนจำนวนเงินที่กำหนดไว้ล่วงหน้าของหน่วยความจำ 938 00:44:38,859 --> 00:44:40,580 ดีสิ่งที่จะได้รับการเรียกว่า? 939 00:44:40,580 --> 00:44:42,369 >> ลำโพง 1: ดีสิ่งที่เกิดขึ้น? 940 00:44:42,369 --> 00:44:43,535 ลำโพงที่ 2: คุณหมายถึงอะไร? 941 00:44:43,535 --> 00:44:44,451 เขาให้การบรรยาย 942 00:44:44,451 --> 00:44:47,650 DAVID ลัน: และเราสามารถใช้ ฟังก์ชั่นที่เรียกว่า malloc เพื่อ memory-- 943 00:44:47,650 --> 00:44:50,050 >> ลำโพง 1: ทำไมจะไม่ได้แขนของเขาย้าย? 944 00:44:50,050 --> 00:44:52,450 >> ลำโพง 2: ดี that's-- คุณรู้ว่าเป็นเรื่องปกติ 945 00:44:52,450 --> 00:44:57,162 มันเหมือนกับว่าเขามีเพียงแค่ ไส้กรอกขนาดใหญ่ที่แขวนอยู่ที่นั่น 946 00:44:57,162 --> 00:44:59,040 >> ลำโพงที่ 1: นั่นเป็นปกติ? 947 00:44:59,040 --> 00:45:03,096 >> ลำโพง 2: ใช่ผมคิดว่าเรา เพียง แต่คิดว่าเขาไม่ได้ตั้งใจ 948 00:45:03,096 --> 00:45:06,840 แทนที่ระงับกลิ่นกายของเขากับ superglue 949 00:45:06,840 --> 00:45:07,608