1 00:00:00,000 --> 00:00:04,410 >> [MUSIC CHƠI] 2 00:00:04,410 --> 00:00:12,250 3 00:00:12,250 --> 00:00:15,770 >> SPEAKER 1: Đây là CS50 và đây là phần cuối của tuần bảy. 4 00:00:15,770 --> 00:00:20,240 Hôm nay có lẽ là nơi chúng tôi thực sự dạy bạn ngôn ngữ. 5 00:00:20,240 --> 00:00:24,100 Chúng tôi giới thiệu trong quá khứ vài tuần HTML và CSS, không phải trong đó 6 00:00:24,100 --> 00:00:25,240 được ngôn ngữ lập trình. 7 00:00:25,240 --> 00:00:28,600 Và thực sự, mặc dù chúng tôi đã không nhìn gần như tất cả các thẻ 8 00:00:28,600 --> 00:00:33,410 HTML mà đi kèm với và gần như tất cả của các thuộc tính CSS đi kèm với, 9 00:00:33,410 --> 00:00:35,007 đó là loại nó cho HTML và CSS. 10 00:00:35,007 --> 00:00:36,840 Chúng tôi sẽ chỉ nói chung bắt đầu giả định rằng bạn 11 00:00:36,840 --> 00:00:39,545 hiểu ý chính các thẻ, thuộc tính và, 12 00:00:39,545 --> 00:00:41,850 và các trang được gửi từ client tới server. 13 00:00:41,850 --> 00:00:45,280 >> Bởi vì hôm nay chúng tôi bắt đầu nhìn vào một ngôn ngữ lập trình, PHP. 14 00:00:45,280 --> 00:00:47,110 Chúng ta sẽ làm điều này siêu nhanh. 15 00:00:47,110 --> 00:00:50,910 Chúng tôi sẽ không dạy cho bạn PHP mỗi gia nhập, giống như chúng ta không mong muốn dạy cho bạn 16 00:00:50,910 --> 00:00:52,670 C, mỗi gia nhập, mà là lập trình. 17 00:00:52,670 --> 00:00:55,088 Và quả thực, một trong những mục tiêu cho khóa học này 18 00:00:55,088 --> 00:00:57,820 không phải là để dạy cho bạn C, hoặc HTML, hoặc CSS hoặc PHP, 19 00:00:57,820 --> 00:01:00,370 hoặc bất kỳ số khác Nói cách buzz hoặc từ viết tắt, 20 00:01:00,370 --> 00:01:03,097 nhưng đúng hơn là khoa học máy tính và làm thế nào để chương trình cơ bản. 21 00:01:03,097 --> 00:01:05,930 Và quả thật, hôm nay chúng tôi bắt đầu để mất những bánh xe đào tạo ra tất cả các 22 00:01:05,930 --> 00:01:10,600 hơn nữa bằng cách bay qua một ngôn ngữ PHP, như sau. 23 00:01:10,600 --> 00:01:13,640 >> Dưới đây là những gì ngôn ngữ này như thế nào. 24 00:01:13,640 --> 00:01:17,790 Nó chỉ ra rằng không có nhu cầu một chức năng chính trong một chương trình được viết 25 00:01:17,790 --> 00:01:19,470 trong một ngôn ngữ gọi là PHP. 26 00:01:19,470 --> 00:01:22,585 Vì vậy, mà đã nghe một chút đơn giản hơn so với C, mà chúng ta đã quen thuộc. 27 00:01:22,585 --> 00:01:25,370 Nó chỉ ra rằng nếu bạn muốn khai báo một biến, 28 00:01:25,370 --> 00:01:29,470 bạn làm điều đó gần như giống hệt với C. Nhưng có một sự khác biệt rõ ràng ở đây 29 00:01:29,470 --> 00:01:31,850 khi tôi tuyên bố một chuỗi, hoặc có lẽ hai sự khác biệt. 30 00:01:31,850 --> 00:01:32,725 Những gì trông khác nhau? 31 00:01:32,725 --> 00:01:35,810 32 00:01:35,810 --> 00:01:37,160 >> Đung Các ký hiệu đô la. 33 00:01:37,160 --> 00:01:39,951 >> SPEAKER 1: Có, có đô la ký, mà chúng tôi chưa bao giờ thấy trước đây. 34 00:01:39,951 --> 00:01:41,451 Và những gì còn thiếu? 35 00:01:41,451 --> 00:01:41,950 Yeah? 36 00:01:41,950 --> 00:01:42,820 >> Đung [Không nghe thấy] 37 00:01:42,820 --> 00:01:44,403 >> SPEAKER 1: Yeah, không có kiểu dữ liệu. 38 00:01:44,403 --> 00:01:48,410 Vì vậy, nó chỉ ra rằng PHP là những gì chúng tôi gọi một ngôn ngữ lỏng lẻo, nơi 39 00:01:48,410 --> 00:01:49,959 C là mạnh mẽ gõ. 40 00:01:49,959 --> 00:01:52,500 Lỏng lẻo chỉ có nghĩa là có nhiều loại dữ liệu khác nhau, 41 00:01:52,500 --> 00:01:54,470 có dây, và ints, và nổi được. 42 00:01:54,470 --> 00:01:56,330 Nhưng những con số máy tính mà ra. 43 00:01:56,330 --> 00:01:58,664 Bạn lập trình của con người không phải con nó ra. 44 00:01:58,664 --> 00:02:00,580 Vì vậy, tất cả các bạn phải làm để khai báo một biến là 45 00:02:00,580 --> 00:02:03,220 ký hiệu đô la, tên của bạn biến, và sau đó, ví dụ, 46 00:02:03,220 --> 00:02:04,760 quote unquote, hello thế giới. 47 00:02:04,760 --> 00:02:07,662 >> Vâng điều này là những gì một điều kiện trông giống như trong PHP. 48 00:02:07,662 --> 00:02:08,328 Bất kỳ sự khác biệt? 49 00:02:08,328 --> 00:02:10,650 50 00:02:10,650 --> 00:02:11,150 Không. 51 00:02:11,150 --> 00:02:12,540 Vì vậy, nó quay ra đây là những giống hệt nhau. 52 00:02:12,540 --> 00:02:14,665 Và bạn có thể có ít chi nhánh hoặc chi nhánh, 53 00:02:14,665 --> 00:02:16,557 nhưng lần lượt cú pháp ra chính xác như nhau. 54 00:02:16,557 --> 00:02:18,390 Biểu thức Boolean thể được đặt hàng với nhau. 55 00:02:18,390 --> 00:02:20,400 Biểu thức Boolean có thể được anded với nhau. 56 00:02:20,400 --> 00:02:21,430 Bạn vẫn có thiết bị chuyển mạch. 57 00:02:21,430 --> 00:02:23,790 Thậm chí nếu bạn không sử dụng những, những tồn tại trong C 58 00:02:23,790 --> 00:02:26,020 và chúng có chức năng tương đương trong PHP. 59 00:02:26,020 --> 00:02:28,260 >> Và trên thực tế, trong PHP chúng thêm một chút mạnh mẽ. 60 00:02:28,260 --> 00:02:32,540 Trong C, bạn chỉ có thể so sánh nhất định loại dữ liệu như ints và ký tự, 61 00:02:32,540 --> 00:02:36,320 trong khi đó trong PHP bạn thực sự có thể so sánh chuỗi mộc lông đầy đủ mà không cần phải 62 00:02:36,320 --> 00:02:38,460 lo lắng về con trỏ và các loại tương tự. 63 00:02:38,460 --> 00:02:39,430 Vì vậy, đây là một vòng lặp for. 64 00:02:39,430 --> 00:02:41,270 Đây chỉ là giả mã, nếu bạn sẽ. 65 00:02:41,270 --> 00:02:43,400 Nhưng cấu trúc nó giống hệt với C. 66 00:02:43,400 --> 00:02:47,520 >> Dưới đây là một vòng lặp trong khi, giả therefore-- giống C. 67 00:02:47,520 --> 00:02:49,390 Dưới đây là một việc phải làm trong khi loop-- giống hệt nhau. 68 00:02:49,390 --> 00:02:51,390 Và do đó, có loại mô hình này ở đây, theo đó 69 00:02:51,390 --> 00:02:54,400 có một vài cú pháp khác tính năng chúng tôi đang thực sự đi xem. 70 00:02:54,400 --> 00:02:57,340 Trong thực tế, đây là một tốt đẹp cách trong PHP, theo đó, 71 00:02:57,340 --> 00:02:59,350 nếu bạn muốn lặp trên một mảng, và bạn 72 00:02:59,350 --> 00:03:02,309 không muốn nhảy qua hoops tinh thần và cú pháp của việc có 73 00:03:02,309 --> 00:03:05,178 int i bằng 0, i ít hơn n, i cộng với plus-- mà 74 00:03:05,178 --> 00:03:07,040 là chỉ cần rất nhiều cú pháp gây phiền nhiễu. 75 00:03:07,040 --> 00:03:10,654 Bạn có thể nói thêm một chút êm ái cho mỗi số 76 00:03:10,654 --> 00:03:13,320 như số lượng, nơi mà trong trường hợp này số ký hiệu đô la, tôi giả định, 77 00:03:13,320 --> 00:03:15,400 là giống như một mảng gọi là số. 78 00:03:15,400 --> 00:03:18,810 Và sau đó tôi giả định số lượng, số ít, là có được một biến. 79 00:03:18,810 --> 00:03:22,940 >> Và những gì PHP sẽ làm cho tôi như là tôi lặp qua vòng này là, trên mỗi lần lặp, 80 00:03:22,940 --> 00:03:28,450 nó sẽ cập nhật số biến là yếu tố thứ i trong số, số nhiều. 81 00:03:28,450 --> 00:03:30,060 Vì vậy, nó chỉ xử lý tất cả các điều đó cho tôi. 82 00:03:30,060 --> 00:03:32,750 Không có dấu ngoặc vuông, không có ký hiệu đô la, không có dấu chấm phẩy. 83 00:03:32,750 --> 00:03:34,117 Nó chỉ là một chút đơn giản. 84 00:03:34,117 --> 00:03:35,950 Vâng, nếu bạn muốn một mảng, nó quay ra bạn 85 00:03:35,950 --> 00:03:38,908 có thể làm một cái gì đó khá giống với C. Cú pháp là một chút khác nhau. 86 00:03:38,908 --> 00:03:41,000 Nhưng đây là một mảng gọi là đồng đô la ký số. 87 00:03:41,000 --> 00:03:44,261 Và tôi sử dụng, trong PHP, vuông ngoặc, nó quay ra. 88 00:03:44,261 --> 00:03:47,260 Và chúng ta sẽ thấy những một lần nữa trong JavaScript-- chưa một ngôn ngữ khác. 89 00:03:47,260 --> 00:03:49,968 Tôi chỉ sử dụng ký hiệu khung vuông để có một danh sách bằng dấu phẩy 90 00:03:49,968 --> 00:03:51,530 các số nguyên, trong trường hợp này. 91 00:03:51,530 --> 00:03:53,010 Nhưng điều đó mang lại cho tôi một mảng. 92 00:03:53,010 --> 00:03:56,270 >> Nhưng thậm chí còn mạnh hơn trong PHP, chúng tôi cũng có những gì thường 93 00:03:56,270 --> 00:03:57,640 được gọi là các mảng kết hợp. 94 00:03:57,640 --> 00:03:59,540 Và rất nhiều ngôn ngữ có những là tốt. 95 00:03:59,540 --> 00:04:03,810 Những điều về mảng C là các chỉ số 96 00:04:03,810 --> 00:04:06,940 cho một mảng, những điều mà bạn sử dụng trong ngoặc vuông qua đó 97 00:04:06,940 --> 00:04:08,600 bạn truy cập vào các yếu tố, phải là những gì? 98 00:04:08,600 --> 00:04:10,620 >> Đung [Không nghe thấy] 99 00:04:10,620 --> 00:04:14,220 >> SPEAKER 1: Họ phải có số hoặc số nguyên, đặc biệt là từ số không trên lên. 100 00:04:14,220 --> 00:04:17,140 Vâng, trong PHP, và, nó quay ra, trong các ngôn ngữ khác, 101 00:04:17,140 --> 00:04:20,820 bạn có thể bắt đầu có chỉ số mà không phải là số. 102 00:04:20,820 --> 00:04:23,880 Nhưng chúng thực lời hay cụm từ, để thay vì 103 00:04:23,880 --> 00:04:27,070 cố gắng để ghi nhớ nơi một cái gì đó được, hoặc được lưu trữ trong một biến i, 104 00:04:27,070 --> 00:04:31,720 bạn thực sự có thể sử dụng một từ và nói that-- bạn có thể nói một từ như thế này. 105 00:04:31,720 --> 00:04:34,730 >> Vì vậy, ký hiệu đô la quote là tên của một biến ở đây. 106 00:04:34,730 --> 00:04:39,360 Đây là cú pháp hơi sôi nổi đó là kết hợp hai giá trị quan trọng 107 00:04:39,360 --> 00:04:41,250 cặp cho biến này. 108 00:04:41,250 --> 00:04:45,490 Cụ thể, điều này đem lại cho tôi một mảng có chiều dài 2. 109 00:04:45,490 --> 00:04:47,660 Nhưng các chỉ số không phải là 0 và 1. 110 00:04:47,660 --> 00:04:51,250 Các chỉ số được trích dẫn unquote biểu tượng và giá unquote quote. 111 00:04:51,250 --> 00:04:55,990 Và các giá trị của các chỉ số, tương ứng, là FB cho Facebook 112 00:04:55,990 --> 00:05:00,360 và 79,53 $, khi tôi kéo kiểm tra một giá cho việc này. 113 00:05:00,360 --> 00:05:01,210 >> Điều đó có nghĩa là gì? 114 00:05:01,210 --> 00:05:04,136 Vâng, nó có nghĩa là thay vì viết code 115 00:05:04,136 --> 00:05:09,612 như thế này, nơi mà tôi sử dụng để làm một cái gì đó như đồng đô la sign-- hay đúng hơn, trong C 116 00:05:09,612 --> 00:05:11,070 Tôi thậm chí không có một dấu đô la. 117 00:05:11,070 --> 00:05:13,490 Tôi sẽ làm một cái gì đó như dấu ngoặc kép và sau đó 118 00:05:13,490 --> 00:05:18,410 Tôi sẽ làm khung i để có được tại một số tự ý số lượng chỉ số giá trị. 119 00:05:18,410 --> 00:05:21,430 Bắt đầu từ ngày hôm nay trong PHP, nếu bạn muốn nhận được ở một số giá trị, 120 00:05:21,430 --> 00:05:24,742 chúng tôi có nhiều loại biểu ngữ nghĩa. 121 00:05:24,742 --> 00:05:27,450 Chỉ cần một cách nói chúng ta có thể chỉ cần gọi những gì họ đang có. 122 00:05:27,450 --> 00:05:29,800 >> Và nếu bạn muốn nhận được tại một cái gì đó biểu tượng, 123 00:05:29,800 --> 00:05:32,180 Bây giờ bạn có nghĩa là làm báo biểu tượng unquote 124 00:05:32,180 --> 00:05:34,910 trong dấu ngoặc vuông thay vì một số đơn thuần. 125 00:05:34,910 --> 00:05:36,450 Vì vậy, nó là một tiện nghi tốt đẹp. 126 00:05:36,450 --> 00:05:38,140 Và đó là sắp xếp của nó cho bây giờ. 127 00:05:38,140 --> 00:05:40,240 Có chùm tính năng khác trong PHP. 128 00:05:40,240 --> 00:05:43,180 Và quả thực, đi kèm với PHP bồn rửa nhà bếp ngôn. 129 00:05:43,180 --> 00:05:48,640 Hàng chục, hàng trăm chức năng đi kèm với PHP-- nhiều hơn đến với C. 130 00:05:48,640 --> 00:05:51,360 >> Và điều đó không có ý định áp đảo mà là giúp đỡ 131 00:05:51,360 --> 00:05:53,900 bạn nhận ra rằng chúng tôi không có còn phải viết mã 132 00:05:53,900 --> 00:05:55,590 đó là loại xuống đây khái niệm. 133 00:05:55,590 --> 00:05:58,465 Bây giờ chúng ta chỉ có thể bắt đầu lợi dụng của nhiều tính năng tiên tiến 134 00:05:58,465 --> 00:05:59,920 rằng các ngôn ngữ như PHP có. 135 00:05:59,920 --> 00:06:02,630 Vì vậy, chúng ta không phải lo lắng về di chuyển những thứ xung quanh trong bộ nhớ. 136 00:06:02,630 --> 00:06:05,338 Chúng tôi không phải lo lắng về malloc và tất cả các cấp độ thấp hơn, 137 00:06:05,338 --> 00:06:09,390 chi tiết mạnh mẽ mà bạn sẽ vật lộn với, nếu không đấu tranh với, pset5, 138 00:06:09,390 --> 00:06:13,380 nhưng bạn có thể bắt đầu sớm đưa cho các cấp. 139 00:06:13,380 --> 00:06:17,770 >> Trong thực tế, chúng ta hãy viết một siêu chương trình đơn giản trong PHP, như sau. 140 00:06:17,770 --> 00:06:21,550 Tôi sẽ đi đầu vào CS50 IDE ở đây, và những gì tôi sẽ làm 141 00:06:21,550 --> 00:06:29,370 là tạo ra một tập tin mới, mà rất đơn giản sẽ được gọi là chào dot PHP. 142 00:06:29,370 --> 00:06:31,860 Vì vậy, thay vì chấm c, nó sẽ được gọi là chấm PHP. 143 00:06:31,860 --> 00:06:34,260 Và sau đó trong tập tin này, Tôi có thể bắt đầu nhập. 144 00:06:34,260 --> 00:06:36,960 Nhưng nó chỉ ra rằng các một điều tôi phải biết 145 00:06:36,960 --> 00:06:41,470 là bất kỳ tập tin PHP nói chung, cần để bắt đầu với một số cú pháp đặc biệt. 146 00:06:41,470 --> 00:06:44,570 Tinh thần tương tự HTML, nhưng một lần nữa, PHP là một ngôn ngữ lập trình, không 147 00:06:44,570 --> 00:06:45,590 một ngôn ngữ đánh dấu. 148 00:06:45,590 --> 00:06:48,700 >> Vì vậy, mỗi tập tin, và đó là loại ngu ngốc nhìn tôi thừa nhận. 149 00:06:48,700 --> 00:06:50,480 Mở khung, dấu hỏi, PHP. 150 00:06:50,480 --> 00:06:53,060 Và đó chỉ là cách ngôn ngữ của nói, 151 00:06:53,060 --> 00:06:58,400 hey, máy tính ở đây có một số mã viết bằng một ngôn ngữ gọi là PHP. 152 00:06:58,400 --> 00:07:01,900 Và sau đó vào cuối của tập tin của bạn, bạn làm loại loại ngược lại. 153 00:07:01,900 --> 00:07:04,860 Bạn không viết PHP một lần nữa, bạn chỉ làm dấu hỏi, khung góc. 154 00:07:04,860 --> 00:07:08,500 Và sau đó bất cứ điều gì bạn đặt bên trong của hai thẻ này, có thể nói, 155 00:07:08,500 --> 00:07:11,490 sẽ được, hoặc nên là, mã PHP. 156 00:07:11,490 --> 00:07:13,180 >> Vì vậy, chúng ta hãy làm một cái gì đó siêu đơn giản. 157 00:07:13,180 --> 00:07:19,370 Tôi sẽ đi trước và làm print def, hello thế giới, dấu gạch chéo ngược n, tiết kiệm. 158 00:07:19,370 --> 00:07:27,310 Và tại dấu nhắc của tôi, tôi sẽ làm, làm cho hello-- không, tôi sẽ làm gì, 159 00:07:27,310 --> 00:07:28,726 dot giảm hello. 160 00:07:28,726 --> 00:07:31,250 Không, dấu chấm dấu gạch chéo, hm. 161 00:07:31,250 --> 00:07:32,990 Vì vậy, một cái gì đó khác biệt. 162 00:07:32,990 --> 00:07:36,920 Và quả thực, đây là một sự khác biệt quan trọng giữa PHP và các ngôn ngữ như C C. 163 00:07:36,920 --> 00:07:38,730 là một cái gọi là ngôn ngữ biên dịch. 164 00:07:38,730 --> 00:07:40,929 Có ý nghĩa gì đối với C được biên dịch? 165 00:07:40,929 --> 00:07:41,970 Ngụ ý là gì? 166 00:07:41,970 --> 00:07:42,898 Yeah. 167 00:07:42,898 --> 00:07:45,220 >> Đung Wrote nó thành mã máy do đó, nó có thể được chạy bởi máy tính. 168 00:07:45,220 --> 00:07:46,011 >> SPEAKER 1: Chính xác. 169 00:07:46,011 --> 00:07:49,075 Chúng ta phải đầu tiên chuyển đổi nó thành cái gọi là mã máy, số không và những người thân, 170 00:07:49,075 --> 00:07:51,950 trước khi nó thực sự sẽ được thực thi và hiểu bởi máy tính. 171 00:07:51,950 --> 00:07:52,840 By Intel bên trong. 172 00:07:52,840 --> 00:07:54,530 Bởi CPU bên trong của máy tính. 173 00:07:54,530 --> 00:07:58,170 PHP, ngược lại, là những gì được gọi là một ngôn ngữ diễn giải, 174 00:07:58,170 --> 00:08:02,230 có nghĩa là bạn không biên dịch nó thành số không và những người thân, mã máy, 175 00:08:02,230 --> 00:08:04,360 bạn thay vì để nó như mã nguồn. 176 00:08:04,360 --> 00:08:08,130 Và bạn thay vì vượt qua nó như là đầu vào cho một chương trình, một thông dịch viên 177 00:08:08,130 --> 00:08:11,960 mà người khác đã viết năm trước đây mà hiểu nó 178 00:08:11,960 --> 00:08:14,310 từng dòng, nhân vật cho nhân vật. 179 00:08:14,310 --> 00:08:16,120 Vì vậy, nói cách khác, con người ngoài kia đã viết 180 00:08:16,120 --> 00:08:19,670 một chương trình mà sẽ xem xét tại dòng code của bạn bằng dòng, 181 00:08:19,670 --> 00:08:21,680 và tìm ra những gì máy tính nên làm gì, 182 00:08:21,680 --> 00:08:25,960 mà không cần chuyển đổi nó trực tiếp đến số không và những người thân. 183 00:08:25,960 --> 00:08:28,370 >> Vì vậy, nếu nó thấy một vòng lặp for, này được gọi là thông dịch viên 184 00:08:28,370 --> 00:08:30,630 là có được như thế, tất cả các quyền, tôi nên làm một cái gì đó một lần nữa và một lần nữa và một lần nữa. 185 00:08:30,630 --> 00:08:31,150 Tôi nên làm gì? 186 00:08:31,150 --> 00:08:32,159 Hãy để tôi nhìn vào các dòng tiếp theo. 187 00:08:32,159 --> 00:08:33,367 Hãy để tôi nhìn vào các dòng tiếp theo. 188 00:08:33,367 --> 00:08:35,350 Và nó thực sự diễn giải nó theo từng dòng. 189 00:08:35,350 --> 00:08:37,220 Vì vậy, để thực hiện nó, tôi không sử dụng make. 190 00:08:37,220 --> 00:08:39,409 Tôi không sử dụng dấu chấm dấu gạch chéo trong trường hợp này. 191 00:08:39,409 --> 00:08:43,530 Tôi thay vì làm PHP, đó là tên của một chương trình, a.k.a. 192 00:08:43,530 --> 00:08:46,562 Một thông dịch viên, đó là cài đặt sẵn trong CS50 IDE, 193 00:08:46,562 --> 00:08:48,770 và bây giờ tôi cần phải vượt qua một đối số dòng lệnh, mà 194 00:08:48,770 --> 00:08:52,290 là khá đơn giản là tên của tập tin mà tôi muốn giải thích. 195 00:08:52,290 --> 00:08:54,740 Hoặc tình cờ hơn, mà tôi muốn chạy. 196 00:08:54,740 --> 00:08:57,000 Và nếu tôi nhấn Enter, chúng tôi đã có nó. 197 00:08:57,000 --> 00:08:57,825 Chào thế giới. 198 00:08:57,825 --> 00:08:59,950 Bây giờ nó quay ra rằng tôi được sử dụng in def cố tình 199 00:08:59,950 --> 00:09:01,600 làm cầu nối cho chúng tôi từ C đến PHP. 200 00:09:01,600 --> 00:09:05,150 Hầu hết các lập trình viên PHP, như bạn sẽ thấy, thậm chí không bận tâm sử dụng in def. 201 00:09:05,150 --> 00:09:08,290 Họ chỉ cần sử dụng một chức năng gọi là in, mà C không có. 202 00:09:08,290 --> 00:09:11,390 Và do đó, nếu tôi chạy lại nó bây giờ, nó thực sự ứng xử có chức năng giống nhau. 203 00:09:11,390 --> 00:09:13,730 Tôi không thể sử dụng các phần trăm s và phần trăm i và vv, 204 00:09:13,730 --> 00:09:16,250 nhưng có những cách khác trong PHP để làm điều đó. 205 00:09:16,250 --> 00:09:18,100 Nhưng đây chỉ là để nói rằng cú pháp, 206 00:09:18,100 --> 00:09:21,850 khác với một số những điều kỳ lạ lên hàng đầu, và một số ký tự lạ xuống 207 00:09:21,850 --> 00:09:25,960 ở phía dưới, các khái niệm hiện nay của lập trình bằng ngôn ngữ khác này 208 00:09:25,960 --> 00:09:27,860 đang có được chính xác như nhau. 209 00:09:27,860 --> 00:09:30,120 >> Trong thực tế, chúng ta hãy làm một ví dụ khác. 210 00:09:30,120 --> 00:09:32,520 Vì vậy, tôi sẽ đi trước và đóng tập tin này. 211 00:09:32,520 --> 00:09:37,740 Hãy để tôi tạo một số khác mà Tôi sẽ gọi cho các điều kiện 1 dot PHP. 212 00:09:37,740 --> 00:09:40,770 Vì vậy, không bằng không, bởi vì những gì tôi đã làm là tôi nhìn lại một vài tuần trước đây, 213 00:09:40,770 --> 00:09:43,490 chúng tôi đã có một tập tin gọi là điều kiện 1 dot C. Và những gì 214 00:09:43,490 --> 00:09:47,590 Tôi đã được chuyển đổi nó trong tôi đầu, và ở đây trên giấy, 215 00:09:47,590 --> 00:09:51,290 và ngay vào khóa học của website, từng dòng vào PHP. 216 00:09:51,290 --> 00:09:55,520 >> Vì vậy, trong các phiên bản C, chúng tôi làm gì như chuỗi s được nhận được chuỗi. 217 00:09:55,520 --> 00:09:58,200 Vì vậy, đó là một chút khác nhau để làm điều đó trong PHP. 218 00:09:58,200 --> 00:10:01,390 Thay vào đó, tôi chỉ cần đi để làm gì, hay đúng hơn, tôi 219 00:10:01,390 --> 00:10:05,870 có thể đã làm int n được nhận int, trong ví dụ này trước đó. 220 00:10:05,870 --> 00:10:12,600 Vì vậy, thay vào đó, tôi sẽ làm n được đọc hàng, tôi muốn một số nguyên, 221 00:10:12,600 --> 00:10:13,670 làm ơn. 222 00:10:13,670 --> 00:10:15,110 Vì vậy, đây chỉ là dấu nhắc của tôi. 223 00:10:15,110 --> 00:10:17,260 Và do đó, nó quay ra, và Tôi chỉ biết điều này 224 00:10:17,260 --> 00:10:20,480 từ khi đọc hoặc nhìn thấy các chức năng trước, đọc dòng của hàm trong PHP 225 00:10:20,480 --> 00:10:23,810 có một đối số đó là một dấu nhắc cho con người, và mục đích của nó trong cuộc sống 226 00:10:23,810 --> 00:10:26,220 là để đọc một dòng văn bản rằng anh ta hoặc cô loại trong. 227 00:10:26,220 --> 00:10:29,160 Và sau đó nó lưu mà văn bản vào n biến. 228 00:10:29,160 --> 00:10:32,200 >> Và bây giờ tôi có thể muốn làm điều gì đó như tôi đã làm tuần trước, trong tuần như thế 229 00:10:32,200 --> 00:10:33,290 một trong các lớp học. 230 00:10:33,290 --> 00:10:36,600 Nếu n là lớn hơn bằng không, sau đó, tôi sẽ 231 00:10:36,600 --> 00:10:42,930 vay là cú pháp chúng ta vừa thấy, in def, bạn chọn một số dương, 232 00:10:42,930 --> 00:10:44,360 n dấu gạch chéo ngược. 233 00:10:44,360 --> 00:10:49,990 Khác nếu n bằng bằng không, tôi sẽ đi trước và nói, in def, 234 00:10:49,990 --> 00:10:54,090 bạn chọn không dấu gạch chéo ngược n. 235 00:10:54,090 --> 00:10:56,830 Khác, trường hợp ở đây nên tất nhiên là, in def, 236 00:10:56,830 --> 00:10:58,620 bạn đã chọn một số âm. 237 00:10:58,620 --> 00:11:00,970 >> Và chúng tôi chắc chắn có thể thực hiện logic của điều này 238 00:11:00,970 --> 00:11:03,390 trong một bó khác nhau cách, nhưng điểm ở đây 239 00:11:03,390 --> 00:11:07,210 là cú pháp, hầu như bất cứ điều gì là mới. 240 00:11:07,210 --> 00:11:09,830 Nó chỉ là những ký hiệu đô la và một chức năng mới và dòng được đọc. 241 00:11:09,830 --> 00:11:12,090 Nhưng về cơ bản, có gì mới là bây giờ tôi đang giải thích này. 242 00:11:12,090 --> 00:11:13,910 Tôi đang đi qua nó như là đầu vào một chương trình khác. 243 00:11:13,910 --> 00:11:16,620 Vì vậy, nếu tôi muốn chạy này, nếu Tôi đã không thực hiện bất kỳ sai lầm, 244 00:11:16,620 --> 00:11:20,140 Tôi sẽ chạy PHP, của điều kiện 1 dot PHP, Enter, 245 00:11:20,140 --> 00:11:23,440 Tôi sẽ gõ số 50, và chúng ta hãy giả sử bây giờ nó hoạt động. 246 00:11:23,440 --> 00:11:25,940 Bởi vì logic là cùng một thứ như một tuần. 247 00:11:25,940 --> 00:11:28,020 >> Tất cả các quyền, vì vậy đó là khá tượng, phải không? 248 00:11:28,020 --> 00:11:30,240 Chúng ta có thể làm điều này trong bất kỳ số ngôn ngữ. 249 00:11:30,240 --> 00:11:33,200 Hãy làm một cái gì đó cách mạnh mẽ hơn. 250 00:11:33,200 --> 00:11:35,610 Hãy kết thúc vấn đề thiết lập năm. 251 00:11:35,610 --> 00:11:37,370 Vì vậy, tôi sẽ đi trước và làm điều này. 252 00:11:37,370 --> 00:11:42,920 Tôi sẽ tạo ra một tập tin được gọi là từ điển dot PHP, 253 00:11:42,920 --> 00:11:45,424 và nghiêng như bạn có thể để tranh giành xuống rất nhiều ghi chú, 254 00:11:45,424 --> 00:11:47,340 các ghi chú sẽ chỉ giúp bạn nếu bạn đang được cho phép 255 00:11:47,340 --> 00:11:48,923 để thực hiện các vấn đề thiết lập năm trong PHP. 256 00:11:48,923 --> 00:11:52,706 Nhưng chúng tôi sẽ xem làm thế nào nhanh chóng bây giờ chúng tôi có thể thực hiện mà tập cùng một vấn đề. 257 00:11:52,706 --> 00:11:56,830 >> Vì vậy, trong từ điển dot PHP, tôi sẽ cho rằng hiện đang có 258 00:11:56,830 --> 00:11:58,514 một tập tin trong thế giới gọi Speller. 259 00:11:58,514 --> 00:12:01,430 Và quả thực, tôi đã làm điều này trước, và chúng ta sẽ không đi qua đường này 260 00:12:01,430 --> 00:12:03,596 bởi dòng, nhưng nếu bạn tò mò sau đó và thực sự muốn 261 00:12:03,596 --> 00:12:06,250 để hết tâm trí bạn xung quanh sự khác nhau giữa c và PHP, 262 00:12:06,250 --> 00:12:09,030 nghĩa so sánh tập tin này, Speller, từ mã nguồn của ngày hôm nay 263 00:12:09,030 --> 00:12:11,190 rằng chúng tôi sẽ đăng sau ngày hôm nay, với p tập 264 00:12:11,190 --> 00:12:15,309 năm Speller dot c mà chúng tôi cung cấp cho bạn, và nó gần như cùng một dòng của dòng. 265 00:12:15,309 --> 00:12:16,600 Có một số dấu hiệu đồng đô la nhiều. 266 00:12:16,600 --> 00:12:18,330 Một vài chức năng này một chút khác nhau. 267 00:12:18,330 --> 00:12:20,038 Nhưng đó là một cách tốt đẹp các loại nhìn thấy như thế nào 268 00:12:20,038 --> 00:12:22,740 bạn dịch một ngôn ngữ khác. 269 00:12:22,740 --> 00:12:24,812 Và đó là đường gần như giống hệt nhau cho dòng. 270 00:12:24,812 --> 00:12:27,770 Nhưng tôi sẽ cho rằng đó tồn tại, và những gì tôi sẽ làm ở đây 271 00:12:27,770 --> 00:12:31,310 là cố gắng để thổi của bạn tâm bởi reimplementing 272 00:12:31,310 --> 00:12:36,210 toàn bộ các vấn đề thiết lập năm cách nhanh hơn bạn đã làm cho đến nay. 273 00:12:36,210 --> 00:12:39,330 Vì vậy, ví dụ, tôi sẽ đầu tiên khai báo một biến toàn cầu được gọi là kích thước, 274 00:12:39,330 --> 00:12:40,444 và thiết lập nó bằng không. 275 00:12:40,444 --> 00:12:41,610 Bây giờ đó là không tiết kiệm hơn nhiều. 276 00:12:41,610 --> 00:12:44,170 Tỷ lệ cược là bạn thực hiện kích thước khá giống nhau, 277 00:12:44,170 --> 00:12:48,440 hoặc hint hint, sẽ tối nay hoặc ngày mai, chỉ cần sử dụng một biến toàn cầu được gọi 278 00:12:48,440 --> 00:12:49,900 kích thước, và đặt nó bằng không. 279 00:12:49,900 --> 00:12:52,660 Đó không phải là một đặc biệt spoiler tuyệt vời. 280 00:12:52,660 --> 00:12:57,180 >> Vì vậy, những gì là cấu trúc dữ liệu của bạn sự lựa chọn, những người bạn của những người đã tụt dốc trong 281 00:12:57,180 --> 00:13:02,170 và đọc spec, cấu trúc dữ liệu gì đã hầu hết các bạn đã được sử dụng? 282 00:13:02,170 --> 00:13:06,840 Một bảng băm hoặc thử, có lẽ một số biến thể của chúng. 283 00:13:06,840 --> 00:13:10,490 Vì vậy, việc thực hiện một bảng băm ít nhất, là loại rất nhiều dòng mã, 284 00:13:10,490 --> 00:13:10,990 bên phải? 285 00:13:10,990 --> 00:13:13,700 Và không phải tất cả trong số họ có thể là chức năng tại thời điểm này trong tuần, 286 00:13:13,700 --> 00:13:14,366 nhưng đó là tốt. 287 00:13:14,366 --> 00:13:19,300 Bởi vì trong PHP, nếu tôi muốn có một bảng băm, thực hiện. 288 00:13:19,300 --> 00:13:20,260 Bên phải? 289 00:13:20,260 --> 00:13:22,610 Vì vậy mà biến mà tôi đã vừa tuyên bố rõ ràng là 290 00:13:22,610 --> 00:13:26,180 gọi là đô la bảng hiệu, mỗi việc giới thiệu trước đây. 291 00:13:26,180 --> 00:13:28,902 >> Nhưng tôi thực sự chỉ muốn, tại cuối ngày, một mảng. 292 00:13:28,902 --> 00:13:31,610 Nhưng không phải là một số lượng lập chỉ mục mảng, bởi vì đó là giống như hai tuần 293 00:13:31,610 --> 00:13:33,440 công cụ, khi chúng tôi nói chuyện về mảng. 294 00:13:33,440 --> 00:13:34,850 Tôi muốn có một bảng băm. 295 00:13:34,850 --> 00:13:38,070 Nhưng một bảng băm thực sự là chỉ là một cách cụ thể nói, 296 00:13:38,070 --> 00:13:40,190 bạn muốn một mảng kết hợp. 297 00:13:40,190 --> 00:13:43,270 Bạn muốn để có thể phím kết hợp với các giá trị. 298 00:13:43,270 --> 00:13:44,200 Phím với các giá trị. 299 00:13:44,200 --> 00:13:45,640 Một từ điển là gì, thực sự? 300 00:13:45,640 --> 00:13:47,080 Vâng đó là một bó toàn bộ các phím. 301 00:13:47,080 --> 00:13:50,320 Những từ như táo, lê, chuối, và tất cả những từ tiếng Anh 302 00:13:50,320 --> 00:13:51,490 mà chúng tôi đưa cho bạn. 303 00:13:51,490 --> 00:13:54,820 >> Và các giá trị mà bạn có hiệu quả chèn vào trong từ điển của bạn 304 00:13:54,820 --> 00:13:57,790 hoặc là đúng, hoặc không có, sai. 305 00:13:57,790 --> 00:14:00,540 Nói cách khác, bạn đang chèn một bó toàn bộ các cặp giá trị quan trọng, 306 00:14:00,540 --> 00:14:03,720 táo, đúng, quả lê, đúng, chuối, đúng. 307 00:14:03,720 --> 00:14:07,446 Vì vậy, khi bạn lấy lại hoặc tìm lên rằng dữ liệu trong bảng băm của bạn 308 00:14:07,446 --> 00:14:10,070 với chức năng kiểm tra của bạn, bạn hoặc nhận lại một câu trả lời, 309 00:14:10,070 --> 00:14:13,260 có, tôi tìm thấy nó trong phức tạp của tôi băm bảng, hoặc không có, nó không có ở đó, 310 00:14:13,260 --> 00:14:14,540 do đó, bạn quay trở lại sai. 311 00:14:14,540 --> 00:14:19,440 >> Vì vậy, để làm được điều đó, tất cả tôi cần là các dữ liệu cấu trúc giống như tôi đã đề xuất trước đây. 312 00:14:19,440 --> 00:14:22,050 Tôi chỉ cần để có thể để kết hợp các từ 313 00:14:22,050 --> 00:14:25,570 như thế, quote unquote, biểu tượng, với một giá trị như thế, đúng. 314 00:14:25,570 --> 00:14:27,090 Vì vậy, có bảng băm của tôi. 315 00:14:27,090 --> 00:14:28,180 Hãy thực sự sử dụng nó. 316 00:14:28,180 --> 00:14:30,310 Vì vậy, có một vài chức năng Tôi cần phải thực hiện. 317 00:14:30,310 --> 00:14:33,300 Tôi sẽ đi trước và cắn off một chức năng gọi là kích thước. 318 00:14:33,300 --> 00:14:34,390 Nó không có đối số. 319 00:14:34,390 --> 00:14:36,660 Tôi không phải bận tâm với từ, void, trong PHP. 320 00:14:36,660 --> 00:14:38,770 Tôi chỉ đơn giản là đi để trở về kích thước. 321 00:14:38,770 --> 00:14:41,287 >> Và như một sang một bên, PHP có này chi tiết minorly gây phiền nhiễu, 322 00:14:41,287 --> 00:14:44,620 mà nếu cái gì đó là toàn cầu, bạn phải nói với các chức năng mà bạn đang sử dụng 323 00:14:44,620 --> 00:14:46,220 nó, hey, đây là một biến toàn cầu. 324 00:14:46,220 --> 00:14:49,330 Vì vậy, sự ngu ngốc nhỏ, nhưng bạn phải làm điều đó dù sao. 325 00:14:49,330 --> 00:14:50,920 >> Vì vậy, những gì về tải? 326 00:14:50,920 --> 00:14:52,990 Tôi sẽ thực hiện một chức năng gọi là tải 327 00:14:52,990 --> 00:14:56,790 mà mất trong tên của một từ điển, giống như trong vấn đề thiết lập năm. 328 00:14:56,790 --> 00:14:59,554 Và trước khi tôi tiến, nhận thấy rằng tôi có không 329 00:14:59,554 --> 00:15:00,970 được gõ khá những điều tương tự. 330 00:15:00,970 --> 00:15:06,060 Có gì rõ ràng là khác nhau trong PHP về làm thế nào bạn khai báo một hàm so với C? 331 00:15:06,060 --> 00:15:06,616 Yeah. 332 00:15:06,616 --> 00:15:07,490 Đung [Không nghe thấy] 333 00:15:07,490 --> 00:15:08,573 SPEAKER 1: Không có kiểu trả về. 334 00:15:08,573 --> 00:15:12,350 Và quả thực, đó là trường hợp, PHP trong chừng mực nó lỏng lẻo, 335 00:15:12,350 --> 00:15:14,190 cũng là một chút cẩu thả trong ý nghĩa đó. 336 00:15:14,190 --> 00:15:17,680 Bạn không chỉ định như là lập trình hàm này trả về. 337 00:15:17,680 --> 00:15:20,490 Bạn sẽ phải thực sự nhìn tại các mã để hiểu rằng con số. 338 00:15:20,490 --> 00:15:22,670 Hoặc đọc các ý kiến hoặc tài liệu. 339 00:15:22,670 --> 00:15:24,870 Vì vậy, mặt được, chưa về các loại quyết định. 340 00:15:24,870 --> 00:15:26,750 Nhưng tôi phải nói các từ khóa, chức năng. 341 00:15:26,750 --> 00:15:28,360 Và khi chúng ta học JavaScript trong một vài tuần 342 00:15:28,360 --> 00:15:31,026 chúng ta sẽ thấy điều tương tự một lần nữa, nhưng đó là ý tưởng tương tự. 343 00:15:31,026 --> 00:15:34,220 Tên của hàm, đối số của nó hoặc lập luận hay thiếu, và bây giờ 344 00:15:34,220 --> 00:15:35,630 ở đây là việc thực hiện. 345 00:15:35,630 --> 00:15:38,860 >> Vì vậy, tôi sẽ cắt giảm một số góc chỉ được ấn tượng cho một lát. 346 00:15:38,860 --> 00:15:40,485 Nhưng tôi sẽ đi trước và nói điều này. 347 00:15:40,485 --> 00:15:44,890 Đây là cách tôi có thể tải một tập tin vào một mảng. 348 00:15:44,890 --> 00:15:47,580 Có một chức năng trong PHP tên tập tin. 349 00:15:47,580 --> 00:15:49,300 Bạn tay nó tên của một tập tin. 350 00:15:49,300 --> 00:15:53,950 Nó đưa cho bạn trở lại một mảng, bên trong trong số đó là tất cả các dòng từ tập tin. 351 00:15:53,950 --> 00:15:56,480 Từ số không, một, trên lên để n trừ đi 1 dòng. 352 00:15:56,480 --> 00:15:57,210 Đó là nó, phải không? 353 00:15:57,210 --> 00:15:57,990 Không có f đọc. 354 00:15:57,990 --> 00:15:58,826 Không có f get s. 355 00:15:58,826 --> 00:15:59,700 Không có phần trăm s. 356 00:15:59,700 --> 00:16:00,420 Không có đau đầu. 357 00:16:00,420 --> 00:16:01,220 Không có feof. 358 00:16:01,220 --> 00:16:03,950 Tất cả những thứ đó mà bạn đã vật lộn có lẽ, 359 00:16:03,950 --> 00:16:06,550 với p đặt bốn và năm, đi đi. 360 00:16:06,550 --> 00:16:09,450 >> Vì vậy, tôi chỉ cần đọc những dòng này vào các tập tin, và sau đó bạn biết những gì? 361 00:16:09,450 --> 00:16:15,510 Nếu tôi muốn để lặp qua những từ ngữ, Tôi có thể làm được, vì mỗi dòng như dòng. 362 00:16:15,510 --> 00:16:19,992 Hãy nhớ rằng đây là một loại thông minh cách iterating trên một mảng, chỉ số 363 00:16:19,992 --> 00:16:25,090 bởi chỉ số, và trên mỗi cuộc gọi lặp dòng hiện tại, dòng ký hiệu đô la. 364 00:16:25,090 --> 00:16:31,560 Và đây, tôi sẽ đi và nói bảng, khung, đường, được sự thật. 365 00:16:31,560 --> 00:16:35,880 >> Nói cách khác, đây là làm thế nào tôi chèn vào bảng băm của tôi trong PHP. 366 00:16:35,880 --> 00:16:38,740 Tôi nói bảng ký hiệu đô la, mà là mảng kết hợp của tôi đã được 367 00:16:38,740 --> 00:16:40,690 rỗng mỗi dòng mã lên trên. 368 00:16:40,690 --> 00:16:42,790 Sau đó tôi chỉ vào nó không, bằng cách sử dụng một số, 369 00:16:42,790 --> 00:16:45,300 nhưng nghĩa bằng cách sử dụng từ khóa mà tôi quan tâm. 370 00:16:45,300 --> 00:16:47,730 Có lẽ đó là quả táo hoặc lê hoặc chuối hoặc bất cứ điều gì, 371 00:16:47,730 --> 00:16:51,645 nhưng đặc biệt tôi đang lập chỉ mục vào nó như tôi đã đề xuất trước đó. 372 00:16:51,645 --> 00:16:53,770 Tôi lấy tên của tôi mảng kết hợp, và sau đó tôi 373 00:16:53,770 --> 00:16:56,450 sử dụng quote unquote trong dấu ngoặc vuông với một chuỗi, 374 00:16:56,450 --> 00:16:58,490 thay vì một con số thực tế. 375 00:16:58,490 --> 00:17:00,250 >> Và đó là nó. 376 00:17:00,250 --> 00:17:01,720 Các chức năng tải được thực hiện. 377 00:17:01,720 --> 00:17:05,119 Khi đó lặp vòng lặp, tôi đã đặt tất cả mọi thứ vào bảng băm. 378 00:17:05,119 --> 00:17:07,810 Bây giờ từ bỏ nhỏ, có một vài điều tôi cần phải sửa chữa. 379 00:17:07,810 --> 00:17:10,030 Và phiên bản tôi sẽ đăng trực tuyến sẽ có tất cả các sắc thái, 380 00:17:10,030 --> 00:17:12,670 nhưng nó chủ yếu chỉ có được một số kiểm tra lỗi và một số chỉnh nhỏ. 381 00:17:12,670 --> 00:17:14,044 Nhưng đó thực sự là ý chính của nó. 382 00:17:14,044 --> 00:17:16,750 Nếu bây giờ tôi muốn thực hiện các chức năng được gọi là 383 00:17:16,750 --> 00:17:19,869 kiểm tra, mà hy vọng một từ như là đối số của nó, 384 00:17:19,869 --> 00:17:22,099 làm thế nào tôi có thể đi về làm việc đó? 385 00:17:22,099 --> 00:17:30,020 Vâng, tôi chỉ đơn giản là sẽ nói, nếu bên trong của bảng của tôi, tại vị trí từ, 386 00:17:30,020 --> 00:17:30,652 nếu được thiết lập. 387 00:17:30,652 --> 00:17:32,360 Vì vậy, nếu có is-- trên thực tế, bạn biết những gì? 388 00:17:32,360 --> 00:17:34,830 Tôi sẽ làm điều đó trong một chút giả. 389 00:17:34,830 --> 00:17:36,020 Nhưng ý tưởng là như nhau. 390 00:17:36,020 --> 00:17:41,640 Nếu điều đó bằng sự thật, trả lại sự thật. 391 00:17:41,640 --> 00:17:43,890 Được rồi. 392 00:17:43,890 --> 00:17:46,851 Else-- bạn có thể loại xem nơi này được going-- để trả về false. 393 00:17:46,851 --> 00:17:47,350 Làm xong. 394 00:17:47,350 --> 00:17:49,640 Kiểm tra được thực hiện. 395 00:17:49,640 --> 00:17:50,940 >> Khá đẹp, phải không? 396 00:17:50,940 --> 00:17:52,560 Và như vậy là điều này thực sự nhận được tại? 397 00:17:52,560 --> 00:17:53,680 Và điều này cũng vậy, tôi cắt một số góc. 398 00:17:53,680 --> 00:17:56,020 Nhìn vào các phiên bản trực tuyến cho tất cả các sắc thái nhẹ. 399 00:17:56,020 --> 00:17:57,103 Nhưng đó là ý chính của nó. 400 00:17:57,103 --> 00:17:59,080 Index vào của bạn mảng kết hợp, a.k.a. 401 00:17:59,080 --> 00:18:02,910 Bảng băm, xem nếu có một giá trị ở đó, nếu nó được thiết lập là đúng, và nếu như vậy, 402 00:18:02,910 --> 00:18:03,930 return true. 403 00:18:03,930 --> 00:18:05,819 Vì vậy, chúng tôi đã chọn ra tất cả sự phức tạp. 404 00:18:05,819 --> 00:18:07,110 Vì vậy, loại tâm thổi, phải không? 405 00:18:07,110 --> 00:18:09,680 Tôi sẽ không bận tâm hoàn thành nó với dỡ hàng, bởi vì trong fact-- oh, bạn biết những gì? 406 00:18:09,680 --> 00:18:11,620 Vâng, chúng ta hãy kết thúc nó với unload. 407 00:18:11,620 --> 00:18:18,940 >> Dỡ bỏ trong một bảng băm có thể nhìn giống như chức năng dỡ bỏ, trả lại. 408 00:18:18,940 --> 00:18:19,930 OK như vậy đó là dỡ bỏ. 409 00:18:19,930 --> 00:18:21,350 Bởi vì không có gì dỡ bỏ, phải không? 410 00:18:21,350 --> 00:18:22,170 Không có malloc. 411 00:18:22,170 --> 00:18:24,280 Tôi không đòi hỏi một cách rõ ràng hệ điều hành cho bất cứ điều gì. 412 00:18:24,280 --> 00:18:25,571 Tôi chỉ mới bắt đầu sử dụng các biến. 413 00:18:25,571 --> 00:18:30,510 Và vì vậy đây cũng là một biểu hiện của tính năng của ngôn ngữ cấp cao hơn. 414 00:18:30,510 --> 00:18:32,940 Vì vậy, một lần nữa, hầu hết các thuật ngữ này chúng tôi đã được giao dịch xuống đây 415 00:18:32,940 --> 00:18:34,280 C. mức siêu thấp. 416 00:18:34,280 --> 00:18:35,980 Bạn có thể nhìn thấy bộ nhớ của máy tính. 417 00:18:35,980 --> 00:18:38,440 Bạn có thể chạm vào bất cứ điều gì bạn muốn trong RAM của máy tính, 418 00:18:38,440 --> 00:18:39,440 cho tốt hơn hoặc tồi tệ hơn. 419 00:18:39,440 --> 00:18:41,760 >> Up ở đây, chúng ta đang đi từ bỏ quyền lực đó. 420 00:18:41,760 --> 00:18:44,730 Nhưng thần của tôi, nhìn như thế nào ít hơn nhiều mã tôi đã viết. 421 00:18:44,730 --> 00:18:47,660 Trong thực tế, nếu tôi đã không nói và nói chuyện qua đánh máy của tôi, 422 00:18:47,660 --> 00:18:50,190 chúng ta có thể đã được thực hiện với ví dụ này năm phút. 423 00:18:50,190 --> 00:18:52,150 Vì vậy, những gì giá được thanh toán? 424 00:18:52,150 --> 00:18:54,100 Vâng chúng ta hãy có một cái nhìn. 425 00:18:54,100 --> 00:18:55,340 Hãy nhìn xem. 426 00:18:55,340 --> 00:18:59,340 Tôi sẽ đi trước và chạy CS50. 427 00:18:59,340 --> 00:19:02,160 Hãy để tôi lần đầu tiên đi vào ví dụ ngày nay là nơi 428 00:19:02,160 --> 00:19:03,970 Tôi có thư mục các văn bản như trước đây. 429 00:19:03,970 --> 00:19:08,520 Tôi sẽ chạy các giải pháp đó nó đi kèm với vấn đề thiết lập năm gọi 430 00:19:08,520 --> 00:19:11,190 Speller, mà là trong tài khoản của CS50. 431 00:19:11,190 --> 00:19:14,040 >> Và tôi sẽ chạy nó trên một cái gì đó lớn như King James Bible, 432 00:19:14,040 --> 00:19:16,547 chỉ cần để chúng ta thực sự đặt các các giải pháp nhân viên để kiểm tra. 433 00:19:16,547 --> 00:19:19,130 Bây giờ đôi khi internet là một chút chậm hơn, nhanh hơn một chút, 434 00:19:19,130 --> 00:19:20,338 có thể mất một thời gian để di chuyển. 435 00:19:20,338 --> 00:19:23,730 Nhưng phải mất tổng cộng 0,56 giây kiểm tra chính tả King James 436 00:19:23,730 --> 00:19:25,150 Kinh Thánh bằng cách sử dụng các giải pháp nhân viên. 437 00:19:25,150 --> 00:19:25,620 Vì vậy, khá tốt. 438 00:19:25,620 --> 00:19:27,786 Yours có thể chậm hơn nhiều, và đó là hoàn toàn tốt đẹp. 439 00:19:27,786 --> 00:19:30,090 Nhưng đó là chính xác ở đây. 440 00:19:30,090 --> 00:19:32,440 Vì vậy, đó là giải pháp nhân viên. 441 00:19:32,440 --> 00:19:34,785 Nếu tôi đi vào và làm sạch các phiên bản PHP. 442 00:19:34,785 --> 00:19:36,990 Và tôi sẽ phải làm một ít như baking chương trình điều. 443 00:19:36,990 --> 00:19:39,720 Chúng tôi đang đi để lấy mã tôi đã viết trước đó, do đó, nó là hoàn toàn chính xác. 444 00:19:39,720 --> 00:19:42,678 Bởi vì đoạn code tôi viết không phải là đi là hoàn toàn chính xác chỉ là bây giờ. 445 00:19:42,678 --> 00:19:47,310 Nhưng nếu tôi chạy phiên bản PHP, những gì tôi phải từ bỏ ngày hôm nay? 446 00:19:47,310 --> 00:19:49,980 Đã cho tôi năm phút để thực hiện p đặt năm, tôi yêu cầu bồi thường. 447 00:19:49,980 --> 00:19:51,770 Giá những gì tôi đã trả tiền? 448 00:19:51,770 --> 00:19:52,270 Yeah. 449 00:19:52,270 --> 00:19:52,937 >> Đung Speed. 450 00:19:52,937 --> 00:19:53,645 SPEAKER 1: Tốc độ. 451 00:19:53,645 --> 00:19:54,380 Ý anh là gì? 452 00:19:54,380 --> 00:19:55,230 >> Đung Nó sẽ mất nhiều thời gian. 453 00:19:55,230 --> 00:19:55,660 >> SPEAKER 1: Tất cả các quyền. 454 00:19:55,660 --> 00:19:56,160 Chúng ta hãy xem. 455 00:19:56,160 --> 00:19:59,590 Nó sẽ mất nhiều thời gian, không để viết, nhưng để chạy nó. 456 00:19:59,590 --> 00:20:00,090 Yeah. 457 00:20:00,090 --> 00:20:00,960 Vì vậy, hãy cố gắng này. 458 00:20:00,960 --> 00:20:05,720 Vì vậy, ở đây tôi sẽ đi trước và làm PHP của Speller, và bởi vì các tập tin của 459 00:20:05,720 --> 00:20:06,360 gọi Speller. 460 00:20:06,360 --> 00:20:07,580 Vì vậy, tôi không chạy từ điển, thu hồi, 461 00:20:07,580 --> 00:20:09,204 Tôi đang chạy các chương trình gọi là Speller. 462 00:20:09,204 --> 00:20:12,450 Tôi sẽ vượt qua trong cùng một tập tin, King James thứ năm. 463 00:20:12,450 --> 00:20:14,377 Nó bay qua. 464 00:20:14,377 --> 00:20:17,210 Điều này có thể chỉ là tốc độ internet, do đó, không đọc quá nhiều vào đó. 465 00:20:17,210 --> 00:20:21,680 Nhưng nó cảm thấy còn chắc chắn. 466 00:20:21,680 --> 00:20:23,280 1,26 giây. 467 00:20:23,280 --> 00:20:25,150 >> Bây giờ mà vẫn còn khá chết tiệt nhanh chóng, đúng không? 468 00:20:25,150 --> 00:20:28,140 Và lý do duy nhất mà cảm thấy như giống như ba hoặc bốn, hoặc năm 469 00:20:28,140 --> 00:20:30,515 giây, đó chỉ là vì internet đã bị chậm. 470 00:20:30,515 --> 00:20:33,980 Thời gian máy tính dành là 1,26 giây, so với tôi nghĩ 0.56. 471 00:20:33,980 --> 00:20:35,880 Vì vậy, nhiều hơn gấp hai lần chậm. 472 00:20:35,880 --> 00:20:39,170 Bây giờ mà vẫn còn khá darn nhanh, nhưng đó là một biểu hiện 473 00:20:39,170 --> 00:20:40,860 của, thực sự, mà giá chính xác. 474 00:20:40,860 --> 00:20:43,460 >> Bởi vì chúng tôi đang giải thích trong các dòng mã của dòng, 475 00:20:43,460 --> 00:20:46,740 và rằng chương trình PHP là đọc sách của tôi Mã trên xuống dưới, từ trái sang phải, 476 00:20:46,740 --> 00:20:47,940 nó đã làm suy nghĩ nhiều hơn. 477 00:20:47,940 --> 00:20:50,430 Nó phải loại chuyển đổi nó bên trong của bản thân 478 00:20:50,430 --> 00:20:53,464 để các máy tương ứng mã trên bay, do đó để nói chuyện, 479 00:20:53,464 --> 00:20:55,380 mặc dù các cơ là một chút khác nhau. 480 00:20:55,380 --> 00:20:59,430 Thay vì chỉ ăn đến Intel CPU số không nguyên và những người thân 481 00:20:59,430 --> 00:21:00,930 mà nó hiểu được nguyên bản. 482 00:21:00,930 --> 00:21:04,110 >> Vì vậy, hoàn toàn, bàn tay xuống, chúng tôi đã phải trả giá. 483 00:21:04,110 --> 00:21:09,120 Và mã được viết bằng một ngôn ngữ như PHP xu hướng chậm hơn. 484 00:21:09,120 --> 00:21:10,050 Nhưng thần của tôi. 485 00:21:10,050 --> 00:21:12,740 Vì vậy, bây giờ khi tôi kiểm tra chính tả của tôi tập tin, tôi dành thêm 0,7 486 00:21:12,740 --> 00:21:17,280 hay như vậy giây so với 20 giờ để thực hiện một nhanh hơn kiểm tra chính tả, phải không? 487 00:21:17,280 --> 00:21:18,397 Đó là một loại thương mại giảm. 488 00:21:18,397 --> 00:21:20,980 Và nếu bạn chỉ bắt đầu p thiết lập năm, có thể không phải 20 giờ. 489 00:21:20,980 --> 00:21:22,188 Có thể là ít hơn rất nhiều đó. 490 00:21:22,188 --> 00:21:23,600 Nhưng đó là một thương mại giảm, cho thực tế. 491 00:21:23,600 --> 00:21:27,820 Và nếu bạn đang chạy mã trên thực sự lớn bộ dữ liệu, hoặc thậm chí trên phần cứng cũ, 492 00:21:27,820 --> 00:21:32,650 những loại khác nhau chắc chắn có thể thêm lên. 493 00:21:32,650 --> 00:21:34,880 >> Bất kỳ câu hỏi như vậy, cho đến nay? 494 00:21:34,880 --> 00:21:35,617 Yeah. 495 00:21:35,617 --> 00:21:36,492 >> Đung [Không nghe thấy] 496 00:21:36,492 --> 00:21:38,187 497 00:21:38,187 --> 00:21:39,978 SPEAKER 1: Xin lỗi, có thể bạn nói nó một lần nữa? 498 00:21:39,978 --> 00:21:40,853 Đung [Không nghe thấy] 499 00:21:40,853 --> 00:21:43,326 500 00:21:43,326 --> 00:21:44,700 SPEAKER 1: Bạn đang bỏ thời gian. 501 00:21:44,700 --> 00:21:45,283 Vâng, vì vậy yeah. 502 00:21:45,283 --> 00:21:47,322 Bạn đang tiết kiệm thời gian bằng cách không phải biên dịch nó, 503 00:21:47,322 --> 00:21:48,530 nếu đó là những gì bạn đang yêu cầu. 504 00:21:48,530 --> 00:21:50,710 Và quả thực, trong CS50, hầu hết các chương trình, 505 00:21:50,710 --> 00:21:53,668 mặc dù họ có thể mất một thời gian để viết, họ đang tương đối ngắn. 506 00:21:53,668 --> 00:21:56,860 Vài chục, vài trăm dòng mã, và vì vậy họ biên dịch khá nhanh chóng. 507 00:21:56,860 --> 00:21:58,470 Nhưng khi bạn bắt đầu viết chương trình lớn hơn, 508 00:21:58,470 --> 00:22:01,511 như nếu bạn Microsoft hoặc bạn Google và viết chương trình thực sự lớn 509 00:22:01,511 --> 00:22:05,360 trong C, C ++ hay, hoặc biên dịch tương tự ngôn ngữ, có thể mất nhiều giây, 510 00:22:05,360 --> 00:22:08,577 hoặc thậm chí vài phút hoặc lâu hơn để biên dịch hàng triệu dòng mã. 511 00:22:08,577 --> 00:22:10,660 Và có quá, mà Chênh lệch này sẽ thêm lên. 512 00:22:10,660 --> 00:22:12,840 >> Và trên thực tế, một khi chúng ta quá trình chuyển đổi, cùng ngày 513 00:22:12,840 --> 00:22:15,910 ngày hôm nay, để lập trình web bằng cách sử dụng PHP, bạn 514 00:22:15,910 --> 00:22:18,460 sẽ tìm thấy nó chỉ là quá nhiều thêm vui để viết mã 515 00:22:18,460 --> 00:22:21,501 khi bạn không phải làm những ngu ngốc các bước như thay đổi thiết bị đầu cuối của bạn 516 00:22:21,501 --> 00:22:24,202 cửa sổ, kiểu make hello, tái chạy nó, lại cửa sổ. 517 00:22:24,202 --> 00:22:25,910 Chỉ cần như vậy nhiều ngu ngốc bước cơ khí 518 00:22:25,910 --> 00:22:28,480 chỉ nhận được trong cách làm sự thú vị, vui vẻ làm việc. 519 00:22:28,480 --> 00:22:31,450 Và thực sự chúng ta vứt đó đi với PHP. 520 00:22:31,450 --> 00:22:34,960 Và chúng ta có thể tương tác với nó nhanh hơn. 521 00:22:34,960 --> 00:22:35,495 Yeah. 522 00:22:35,495 --> 00:22:36,370 Đung [Không nghe thấy] 523 00:22:36,370 --> 00:22:40,294 524 00:22:40,294 --> 00:22:40,960 SPEAKER 1: Chắc chắn rồi. 525 00:22:40,960 --> 00:22:42,876 Tôi có thể làm rõ những gì nó phương tiện có thể giải thích? 526 00:22:42,876 --> 00:22:45,870 Khi bạn biên dịch một ngôn ngữ như C, nó đi xuống 527 00:22:45,870 --> 00:22:48,140 như chúng ta đã nói đến máy mã, số không và những người thân. 528 00:22:48,140 --> 00:22:51,860 Và Intel đã quyết định năm trước đó mẫu nhất định của số không và những người thân 529 00:22:51,860 --> 00:22:56,220 đại diện bổ sung, trừ, hoặc in, hoặc các hoạt động cơ bản khác. 530 00:22:56,220 --> 00:23:00,250 Trong thế giới của một ngôn ngữ giải thích như PHP, hoặc JavaScript, hoặc Python, 531 00:23:00,250 --> 00:23:03,120 hoặc Ruby, hoặc chùm những người khác, thay vì một người nào đó 532 00:23:03,120 --> 00:23:05,120 đã viết một interpreter-- trong trường hợp này, 533 00:23:05,120 --> 00:23:09,770 nó cũng được gọi là PHP, giống hệt với tên của language-- mà chủ yếu 534 00:23:09,770 --> 00:23:13,840 có một vòng lớn ở trong đó mà lặp trên tất cả các dòng mã 535 00:23:13,840 --> 00:23:18,170 mà tôi ăn nó như đầu vào, như xin chào dot PHP, hoặc chấm điển PHP. 536 00:23:18,170 --> 00:23:21,760 >> Và sau đó bạn có thể nghĩ lớn của họ vòng lặp là có rất nhiều điều kiện. 537 00:23:21,760 --> 00:23:26,340 Và những điều kiện nói, nếu con người đã viết các từ khóa cho, 538 00:23:26,340 --> 00:23:28,470 bắt đầu làm của mình mã một lần nữa và một lần nữa. 539 00:23:28,470 --> 00:23:31,360 Hoặc nếu con người có viết những dòng mã, 540 00:23:31,360 --> 00:23:34,880 nếu, chỉ thực hiện của họ dòng tiếp theo có điều kiện. 541 00:23:34,880 --> 00:23:37,740 Vì vậy, nó thực sự như phiên dịch nó trong một nghĩa nào đó, dòng người 542 00:23:37,740 --> 00:23:39,660 Dòng, và rằng chỉ cần có thời gian. 543 00:23:39,660 --> 00:23:41,340 Phải mất phí. 544 00:23:41,340 --> 00:23:44,189 Và đó là một price-- tốt question-- chúng tôi phải trả. 545 00:23:44,189 --> 00:23:46,480 Vì vậy, chúng ta hãy làm một bản demo đó là một chút ấn tượng hơn. 546 00:23:46,480 --> 00:23:51,160 Có, tôi muốn nói, một sân chơi bóng chày này một xác suất 90% thất bại khủng khiếp, 547 00:23:51,160 --> 00:23:53,869 nhưng bạn sẽ ngạc nhiên với 10% xác suất. 548 00:23:53,869 --> 00:23:55,660 Vì vậy, mỗi năm chúng tôi cố gắng để làm điều này, nhờ đó chúng ta 549 00:23:55,660 --> 00:23:59,061 cố gắng để viết một chương trình mà đi qua Vấn đề đặt không, mà bạn đã 550 00:23:59,061 --> 00:24:02,060 gửi số điện thoại của bạn và một rất nhiều thông tin cá nhân khác, 551 00:24:02,060 --> 00:24:06,030 và chúng tôi lập trình gửi cho bạn một tin nhắn văn bản. 552 00:24:06,030 --> 00:24:08,540 Và sau đó điện thoại của tất cả mọi người bắt đầu bíp hoặc rung, 553 00:24:08,540 --> 00:24:11,460 và nó chỉ là tuyệt vời, vì tốt, nhìn vào những gì các máy tính có thể làm. 554 00:24:11,460 --> 00:24:13,840 >> Điều này hiếm khi làm việc một cách chính xác có vẻ như, trong phần lớn 555 00:24:13,840 --> 00:24:16,800 bởi vì tôi thường được danh sách đen bởi Gmail hoặc một số dịch vụ khác 556 00:24:16,800 --> 00:24:19,630 cho thực sự cố gắng để làm điều này trên quy mô. 557 00:24:19,630 --> 00:24:24,940 Nhưng điều buồn cười quá, vì chúng ta không có tất cả mọi người ở đây ngày hôm nay, 558 00:24:24,940 --> 00:24:27,690 Thực tế thú vị khi chúng tôi cuối cùng cố gắng này hai năm trước đây, 559 00:24:27,690 --> 00:24:30,870 Tôi nghĩ rằng tôi đã viết một chương trình mà ngồi trong một vòng lặp iterating 560 00:24:30,870 --> 00:24:34,040 trên tất cả các học sinh trong lớp, và mỗi người trong số họ một tin nhắn văn bản, 561 00:24:34,040 --> 00:24:37,534 và nó nói cái gì đó như thế, tại sao không phải là bạn trong bài giảng? 562 00:24:37,534 --> 00:24:39,170 Tình yêu, CS50 bot. 563 00:24:39,170 --> 00:24:42,580 >> Bạn không có ý tưởng bao nhiêu xin lỗi và email loại đau đớn 564 00:24:42,580 --> 00:24:46,970 Tôi đã nhận được phản ứng từ n trừ đi 100 người đã không ở đây 565 00:24:46,970 --> 00:24:47,960 hôm đo. 566 00:24:47,960 --> 00:24:52,116 Và thậm chí hài hước, đáng xấu hổ hơn story-- bạn đã biết, chúng ta hãy đặt nó ra khỏi đó. 567 00:24:52,116 --> 00:24:53,740 Nó đã trên video một vài năm trở lại. 568 00:24:53,740 --> 00:24:56,810 Vì vậy, bạn sẽ sớm nhìn thấy tôi viết một vòng lặp for, theo đó 569 00:24:56,810 --> 00:25:00,640 nó rất dễ dàng để viết một lỗi trong đó cho vòng lặp, như vậy mà lần đầu tiên 570 00:25:00,640 --> 00:25:02,800 thông qua các vòng lặp, bạn gửi một tin nhắn văn bản. 571 00:25:02,800 --> 00:25:06,190 >> Lần thứ hai thông qua các vòng I nên đã gửi một tin nhắn văn bản hơn, 572 00:25:06,190 --> 00:25:08,250 và sau đó một trong nhiều văn bản hơn tin nhắn, và nhiều hơn nữa. 573 00:25:08,250 --> 00:25:11,490 Nhưng hóa ra, nếu bạn thực hiện một lỗi đánh máy khi lập trình, đôi khi bạn 574 00:25:11,490 --> 00:25:14,460 có thể viết chương trình gửi một tin nhắn văn bản, sau đó hai tin nhắn văn bản, 575 00:25:14,460 --> 00:25:18,742 sau đó ba tin nhắn văn bản đến tất cả mọi người những người đã nhận được một tin nhắn văn bản. 576 00:25:18,742 --> 00:25:21,450 Và như bạn biết, làm một cái gì đó, cộng với một cái gì đó, cộng với một cái gì đó, 577 00:25:21,450 --> 00:25:25,910 cộng với một cái gì đó, là O lớn của rất nhiều các tin nhắn văn bản, hoặc n bình phương, 578 00:25:25,910 --> 00:25:29,830 hoặc $ 0,10 một tin nhắn văn bản, $ 20,000. 579 00:25:29,830 --> 00:25:33,700 >> Rất may tôi nhấn Control-C trước đó đã xảy ra, nhưng tôi đã nợ ít nhất một 580 00:25:33,700 --> 00:25:37,550 của những người tiền nhiệm của bạn $ 20 cho 200 một số tin nhắn văn bản lẻ mà, 581 00:25:37,550 --> 00:25:40,450 không chỉ đi đến điện thoại của mình, nhưng cũng nó giống như một điện thoại cũ lật 582 00:25:40,450 --> 00:25:43,520 do đó, nó muốn đẩy ra khỏi mình bộ nhớ mỗi văn bản cá nhân khác 583 00:25:43,520 --> 00:25:45,930 tin anh đã thực sự nhận được. 584 00:25:45,930 --> 00:25:49,250 Vì vậy, chúng tôi có một mục tiêu ngày hôm nay, không phải để làm điều đó. 585 00:25:49,250 --> 00:25:50,620 Có thể bật chế độ máy bay. 586 00:25:50,620 --> 00:25:51,120 Được rồi. 587 00:25:51,120 --> 00:25:56,590 Vì vậy, chúng ta hãy đi vào một chương trình tại đây callled-- 588 00:25:56,590 --> 00:25:59,060 mà tôi sẽ gọi cho văn bản chấm PHP. 589 00:25:59,060 --> 00:26:01,074 Và trước, tôi đã có hai tập tin ở đây. 590 00:26:01,074 --> 00:26:06,030 Tôi đã thực hiện một tập tin chỉ với nhân viên, đó là đã nhận tất cả các thông tin của nhân viên, tất cả các tên 591 00:26:06,030 --> 00:26:07,260 từ trang web của khóa học. 592 00:26:07,260 --> 00:26:09,756 Và sau đó bây giờ tôi chỉ cần đặt một số con số giả 555-1212. 593 00:26:09,756 --> 00:26:11,380 Vì vậy, những sẽ không thực sự đi bất cứ nơi nào. 594 00:26:11,380 --> 00:26:15,140 Nhưng hãy chú ý bên trong của tập tin CSV này, mà chúng ta đã nói về một thời gian ngắn trước 595 00:26:15,140 --> 00:26:16,540 trong bối cảnh các tập tin IO. 596 00:26:16,540 --> 00:26:18,730 >> Một tập tin CSV là gì? 597 00:26:18,730 --> 00:26:19,970 Dấu phẩy tách biến. 598 00:26:19,970 --> 00:26:24,400 Và đây là loại giống như một rất cơ sở dữ liệu trọng lượng nhẹ, nếu bạn sẽ. 599 00:26:24,400 --> 00:26:28,650 Có loại loại bốn cột trong tập tin này, và có răng cưa, 600 00:26:28,650 --> 00:26:32,400 nhưng các dấu phẩy cơ bản đại diện cho các cột trong tập tin. 601 00:26:32,400 --> 00:26:35,400 Cột đầu tiên là TF hoặc tên của CA. 602 00:26:35,400 --> 00:26:37,800 Cột thứ hai là tên cuối cùng của họ. 603 00:26:37,800 --> 00:26:39,820 Cột thứ ba là số điện thoại của họ. 604 00:26:39,820 --> 00:26:44,760 Và cột thứ tư dường như is-- cột thứ tư là rõ ràng những gì? 605 00:26:44,760 --> 00:26:45,870 OK, vì vậy nó là tàu sân bay của họ. 606 00:26:45,870 --> 00:26:47,180 Vì vậy, Verizon, Sprint hay, hoặc những gì không. 607 00:26:47,180 --> 00:26:48,620 Và nếu tôi misspoke trước đó, CSV. 608 00:26:48,620 --> 00:26:51,800 Dấu phẩy tách giá trị là CSV đây. 609 00:26:51,800 --> 00:26:54,260 >> Vì vậy, những gì tôi có thể làm gì với điều này? 610 00:26:54,260 --> 00:26:56,940 À đây chỉ là một tập tin văn bản lớn, và nó là loại dài, phải không? 611 00:26:56,940 --> 00:26:58,690 Như thế này là sẽ là loại gây phiền nhiễu. 612 00:26:58,690 --> 00:27:03,510 Và hóa ra, mặc dù, rằng nếu tôi muốn gửi một tin nhắn văn bản đến, chúng ta hãy 613 00:27:03,510 --> 00:27:05,180 Alex nói ở đây. 614 00:27:05,180 --> 00:27:09,690 Hãy để tôi đi vào trình duyệt của tôi và thoát khỏi chế độ toàn màn hình 615 00:27:09,690 --> 00:27:11,660 chỉ để tôi có thể chuyển đổi qua lại. 616 00:27:11,660 --> 00:27:20,280 Hóa ra, chúng ta hãy xem, nếu tôi đi trong ở đây, và đăng nhập vào Gmail, tất cả các quyền. 617 00:27:20,280 --> 00:27:22,950 Đừng nhìn vào phần này. 618 00:27:22,950 --> 00:27:23,880 Chỉ cần tôi có thể nhìn thấy. 619 00:27:23,880 --> 00:27:26,551 620 00:27:26,551 --> 00:27:28,800 tất nhiên các livestream thể vẫn nhìn thấy những gì tôi đang làm. 621 00:27:28,800 --> 00:27:29,360 Được rồi. 622 00:27:29,360 --> 00:27:31,850 >> Vì vậy, đây chỉ là Gmail với Tài khoản của John Harvard. 623 00:27:31,850 --> 00:27:34,000 Vì vậy, nếu tôi muốn gửi một tin nhắn văn bản với Alex, 624 00:27:34,000 --> 00:27:35,530 Tôi tất nhiên có thể soạn một tin nhắn. 625 00:27:35,530 --> 00:27:38,410 Và hóa ra, và tôi đã thử nghiệm nó với Alex trước đây, 626 00:27:38,410 --> 00:27:42,260 vì vậy bạn có thể gắn thêm một miền nào đó đặt tên cho các số điện thoại của người dân, 627 00:27:42,260 --> 00:27:45,850 vì có tồn tại trên thế giới điều được gọi là tin nhắn SMS đến email gateway. 628 00:27:45,850 --> 00:27:50,000 Đó là một cách nói tất cả chúng ta những người có điện thoại di động 629 00:27:50,000 --> 00:27:53,200 có số điện thoại, tất nhiên, có lẽ là cho tàu sân bay của bạn, 630 00:27:53,200 --> 00:27:56,840 một hậu tố nhất định như tại Vtext.com cho tin nhắn văn bản Verizon 631 00:27:56,840 --> 00:28:00,320 dot com, bạn có thể nối thêm của bạn riêng số điện thoại cá nhân, và sau đó 632 00:28:00,320 --> 00:28:03,540 bạn hoặc bạn bè, hoặc cha mẹ của bạn có thể văn bản bạn tại địa chỉ cụ thể. 633 00:28:03,540 --> 00:28:07,380 >> Và Verizon có một máy chủ, một email máy chủ, mà khi nhận được email này, 634 00:28:07,380 --> 00:28:11,180 nhìn vào phần số và sau đó sử dụng bất cứ ma thuật đặc biệt ngành công nghiệp 635 00:28:11,180 --> 00:28:14,540 họ phải thực sự gửi nó đi qua sóng phát thanh để tế bào đặc biệt của bạn 636 00:28:14,540 --> 00:28:15,040 điện thoại. 637 00:28:15,040 --> 00:28:18,030 Bây giờ điều này là rất tốt vì tôi không thực sự biết làm thế nào để gửi một tin nhắn văn bản 638 00:28:18,030 --> 00:28:20,460 hoặc viết code nào cho điện thoại di động của tôi, 639 00:28:20,460 --> 00:28:23,580 và bạn có thể làm chính xác điều đó cho một dự án cuối cùng, nhưng bây giờ tất cả 640 00:28:23,580 --> 00:28:24,770 Tôi có là máy tính xách tay của tôi ở đây. 641 00:28:24,770 --> 00:28:29,830 Vì vậy, tôi muốn để lặp qua CSV tập tin, đường thẳng, của dòng, dòng, dòng, 642 00:28:29,830 --> 00:28:35,160 lấy mỗi số điện thoại của nhân viên, và cung cấp dịch vụ và chương trình khác của họ, 643 00:28:35,160 --> 00:28:39,770 tiếp nhau, đó là, kết nối điện thoại số với các tên miền thích hợp 644 00:28:39,770 --> 00:28:40,820 và sau đó gửi qua email. 645 00:28:40,820 --> 00:28:41,940 >> Vì vậy, đó là rất nhiều bước. 646 00:28:41,940 --> 00:28:45,530 Và may mắn làm điều đó trong C. Nó là một cơn ác mộng của một tình huống 647 00:28:45,530 --> 00:28:48,350 để mở một tập tin, để đọc nó dòng, bởi dòng, bởi dòng, như bạn 648 00:28:48,350 --> 00:28:51,100 đang nhìn thấy, hoặc có thể sớm nhìn thấy với vấn đề thiết lập năm, nếu không 649 00:28:51,100 --> 00:28:53,560 Vấn đề đặt bốn, và sau đó để tự động nối 650 00:28:53,560 --> 00:28:57,020 hai chuỗi với nhau, bởi vì trong C, để mất hai chuỗi và kết hợp chúng, 651 00:28:57,020 --> 00:29:00,900 làm những gì bạn tối thiểu cần phải làm nhiều khả năng nhất? 652 00:29:00,900 --> 00:29:03,020 Bạn cần khai báo bộ nhớ nhiều hơn, phải không? 653 00:29:03,020 --> 00:29:04,710 Và yêu cầu, malloc, tôi có thể có nhiều bộ nhớ hơn? 654 00:29:04,710 --> 00:29:07,060 Vì vậy, tôi có thể đặt một nửa của này ở đây, một nửa trong số này ở đây. 655 00:29:07,060 --> 00:29:08,150 Nó chỉ là rất nhiều bước. 656 00:29:08,150 --> 00:29:10,310 Và bởi thời điểm đó bạn đã mất lãi suất trong bản demo chút ngu ngốc 657 00:29:10,310 --> 00:29:11,851 nơi bạn làm cho điện thoại tiếng bíp của tất cả mọi người. 658 00:29:11,851 --> 00:29:14,590 Hãy làm việc này của PHP phong cách, nhờ đó chúng ta chỉ 659 00:29:14,590 --> 00:29:16,210 bắt đầu sử dụng nhiều hơn là bồn rửa nhà bếp. 660 00:29:16,210 --> 00:29:18,050 >> Và ý tưởng về cơ bản giống nhau, 661 00:29:18,050 --> 00:29:20,710 nhưng chúng tôi không phải lo lắng quá nhiều về điều đó mức độ thấp hơn. 662 00:29:20,710 --> 00:29:22,950 Vì vậy, chúng ta hãy xem làm thế nào tôi có thể đi về việc này. 663 00:29:22,950 --> 00:29:26,664 Và chỉ cần như vậy mà tôi không lặp lại sai lầm trong quá khứ, 664 00:29:26,664 --> 00:29:28,330 Tôi đã viết một số ghi chú cho bản thân mình ở đây. 665 00:29:28,330 --> 00:29:31,070 Và chúng ta hãy xem nếu tôi có thể đi bộ chúng tôi thông qua một số bước cơ bản, 666 00:29:31,070 --> 00:29:33,861 và sau đó vì thời gian của chúng tôi sẽ có lẽ cắt giảm một số góc cuối cùng. 667 00:29:33,861 --> 00:29:38,007 Tôi sẽ đi trước và làm mở khung PHP để bắt đầu tập tin này. 668 00:29:38,007 --> 00:29:39,590 Và tôi sẽ đi trước và làm điều này. 669 00:29:39,590 --> 00:29:41,490 Nộp xử lý, như bạn sẽ sớm nhìn thấy, thực sự 670 00:29:41,490 --> 00:29:44,790 gọi một chức năng gọi là f mở. 671 00:29:44,790 --> 00:29:46,280 Và hãy nhớ điều này mở ra một file. 672 00:29:46,280 --> 00:29:48,800 Và các báo, unquote, r có nghĩa là gì, một lần nữa? 673 00:29:48,800 --> 00:29:49,800 Chỉ cần mở nó để đọc. 674 00:29:49,800 --> 00:29:51,210 Bây giờ trong p set cho, bạn đã làm điều này. 675 00:29:51,210 --> 00:29:54,500 Và xử lý có thể là bất cứ điều gì, fu, bar, bas, bất kỳ tên biến. 676 00:29:54,500 --> 00:29:57,470 Nhưng nói chung là một máy tính nhà khoa học sẽ gọi một tập tin mở, 677 00:29:57,470 --> 00:30:00,962 đem lại cho bạn một tập tin xử lý, một cái gì đó để giữ lại để nói chuyện. 678 00:30:00,962 --> 00:30:02,670 Tôi chỉ cần đi làm một số kiểm tra lỗi. 679 00:30:02,670 --> 00:30:07,260 Vì vậy, nếu xử lý là sai, chỉ thích trong C, tôi sẽ làm một cái gì đó như thế, 680 00:30:07,260 --> 00:30:09,545 không thể mở tập tin, dấu gạch chéo ngược n. 681 00:30:09,545 --> 00:30:11,420 Và sau đó tôi chỉ cần đi để đi trước và thoát. 682 00:30:11,420 --> 00:30:14,340 Và hóa ra, trong PHP, Tôi không phải bên trong một hàm. 683 00:30:14,340 --> 00:30:16,160 Không có chức năng chính ở đây. 684 00:30:16,160 --> 00:30:17,450 Vì vậy, tôi không trở về, mỗi se. 685 00:30:17,450 --> 00:30:18,120 Tôi thoát. 686 00:30:18,120 --> 00:30:19,619 Trong đó chủ yếu là những điều tương tự. 687 00:30:19,619 --> 00:30:22,510 Và tôi xuất cảnh với một y lẽ. 688 00:30:22,510 --> 00:30:24,220 Một chỉ có nghĩa là một lỗi của một số loại. 689 00:30:24,220 --> 00:30:25,580 Đó là không, vì vậy nó là một lỗi. 690 00:30:25,580 --> 00:30:30,220 >> Tất cả các quyền, do đó, nếu tôi xuống đây bây giờ trong chương trình của tôi, tôi đã mở các tập tin. 691 00:30:30,220 --> 00:30:34,250 Tôi sẽ đi trước và tuyên bố một mảng gọi là địa chỉ, 692 00:30:34,250 --> 00:30:38,610 và trong C tôi sẽ phải biết kích thước của mảng trước, phải không? 693 00:30:38,610 --> 00:30:41,910 Hoặc tôi sẽ cần phải khai báo này là một con trỏ, và sau đó sử dụng malloc. 694 00:30:41,910 --> 00:30:44,720 Và sau đó mỗi lần tôi đọc thông qua một hàng khác trong tập tin, 695 00:30:44,720 --> 00:30:46,620 Tôi sẽ cần để malloc nhiều bộ nhớ, malloc bộ nhớ hơn. 696 00:30:46,620 --> 00:30:47,703 Đó là một cơn đau ở cổ. 697 00:30:47,703 --> 00:30:50,950 Và may mắn thay, PHP, và Ruby, và Python, và JavaScript, họ 698 00:30:50,950 --> 00:30:53,880 sẽ phát triển mảng của bạn cho bạn tự động. 699 00:30:53,880 --> 00:30:54,830 Không malloc hơn. 700 00:30:54,830 --> 00:30:56,227 Quản lý bộ nhớ không còn nữa. 701 00:30:56,227 --> 00:30:57,560 Các máy tính của công việc đó. 702 00:30:57,560 --> 00:31:00,330 Nhưng giá mà bạn phải trả. 703 00:31:00,330 --> 00:31:01,350 Đó là một chút chậm hơn. 704 00:31:01,350 --> 00:31:03,190 Và đối với một chương trình như thế này chúng tôi sẽ không để ý. 705 00:31:03,190 --> 00:31:04,720 Chúng tôi sẽ gửi 100 tin nhắn văn bản. 706 00:31:04,720 --> 00:31:06,136 Ví dụ sẽ không cảm thấy nó. 707 00:31:06,136 --> 00:31:08,430 CNTT thực sự chỉ bắt đầu vấn đề ngôn ngữ của bạn lựa chọn 708 00:31:08,430 --> 00:31:11,490 khi dữ liệu của bạn hoặc các chương trình của bạn có được thực sự, thực sự khá lớn, 709 00:31:11,490 --> 00:31:14,120 như sẽ là trường hợp nhiều hơn như vậy với web dựa trên các công cụ của chúng tôi. 710 00:31:14,120 --> 00:31:15,450 >> Nhưng bây giờ chúng ta hãy giả mạo trước. 711 00:31:15,450 --> 00:31:20,120 Trong khi nó chỉ ra có một hàm trong C được gọi là f được CSV. 712 00:31:20,120 --> 00:31:24,570 Tập tin CSV có được, mà phải mất một nộp handle như là đối số của nó, 713 00:31:24,570 --> 00:31:28,810 và nó tiến hành sau đó, liên tiếp, bởi hàng, của hàng, để đọc trong một hàng. 714 00:31:28,810 --> 00:31:30,964 Vì vậy, nó chỉ cần đọc một dòng các văn bản từ tập tin. 715 00:31:30,964 --> 00:31:34,130 Nhưng những gì tốt đẹp về chức năng này, nó không chỉ đưa cho tôi một dòng văn bản. 716 00:31:34,130 --> 00:31:37,320 Nó tìm kiếm những dấu phẩy, và phân tích các dòng. 717 00:31:37,320 --> 00:31:41,740 Và để phân tích các dòng phương tiện để chia nó trên các giá trị nhất định trong bối cảnh này. 718 00:31:41,740 --> 00:31:45,510 >> Nói cách khác, ký hiệu đô la hàng là một biến đó là 719 00:31:45,510 --> 00:31:47,010 sẽ cung cấp cho tôi một loạt các chỉ số. 720 00:31:47,010 --> 00:31:49,635 Điều này là có được sự Cột đầu tiên trong CSV của tôi. 721 00:31:49,635 --> 00:31:52,510 Đây sẽ là lần thứ hai cột, điều này là có được một phần ba, 722 00:31:52,510 --> 00:31:53,968 và điều này sẽ là thứ tư. 723 00:31:53,968 --> 00:31:57,440 Bởi vì thu hồi, và Excel không hợp tác thời gian qua chúng tôi đã làm điều này, 724 00:31:57,440 --> 00:32:03,350 nhưng nếu tôi tải cán bộ chấm CSV. 725 00:32:03,350 --> 00:32:04,940 Rất tiếc, không đổi tên. 726 00:32:04,940 --> 00:32:09,120 Nếu tôi tải cán dot CSV, và cố gắng mở nó, 727 00:32:09,120 --> 00:32:12,510 Tôi đã registered-- oh tôi không cập nhật Excel kể từ lần cuối cùng. 728 00:32:12,510 --> 00:32:15,880 Bạn sẽ thấy rằng trong đội ngũ nhân viên chấm CSV, tôi có bốn cột. 729 00:32:15,880 --> 00:32:18,720 Vì vậy, khi tôi đọc trong hàng đầu tiên cho Abby đây, 730 00:32:18,720 --> 00:32:23,582 đồng đô la dấu hiệu hàng 0 là Abby, đồng đô la dấu hiệu hàng là một trong những Lyons, 731 00:32:23,582 --> 00:32:27,740 đồng đô la dấu hiệu liên tiếp hai là số của mình, và sau đó hãng điện thoại của cô. 732 00:32:27,740 --> 00:32:28,410 >> Vì vậy, đó là tất cả. 733 00:32:28,410 --> 00:32:30,740 Và đó là tốt đẹp, bởi vì tôi không phải bây giờ tìm ra 734 00:32:30,740 --> 00:32:32,800 nơi mà tất cả những người đang thực sự là dấu phẩy. 735 00:32:32,800 --> 00:32:35,300 Vì vậy, tôi sẽ đi trước và làm điều này, được đưa ra định nghĩa đó, 736 00:32:35,300 --> 00:32:38,960 Tôi sẽ nói rằng tên của cô là trong khung hàng không, như đã hứa. 737 00:32:38,960 --> 00:32:41,150 Và tôi sẽ grab-- và trên thực tế, bạn biết những gì? 738 00:32:41,150 --> 00:32:42,780 Tôi sẽ không phải lo lắng về Tên của cô, trong trường hợp này. 739 00:32:42,780 --> 00:32:43,988 Tôi sẽ giữ nó đơn giản. 740 00:32:43,988 --> 00:32:48,610 Tôi sẽ làm số của mình là trong khung liên tiếp hai, tôi nghĩ. 741 00:32:48,610 --> 00:32:50,510 Và tàu sân bay của cô là ở đâu? 742 00:32:50,510 --> 00:32:53,405 Row ba, một trong hơn. 743 00:32:53,405 --> 00:32:54,280 Vì vậy, không có gì mới ở đó. 744 00:32:54,280 --> 00:32:56,770 Nó chỉ không lập chỉ mục vào một mảng. 745 00:32:56,770 --> 00:32:58,760 >> Và bây giờ, tôi sẽ làm như sau. 746 00:32:58,760 --> 00:33:03,930 Nếu bên vận chuyển bằng bằng AT & T-- Tôi chỉ cần đi để có một loop-- 747 00:33:03,930 --> 00:33:06,790 Tôi muốn tạo ra một email địa chỉ đó trông như thế này. 748 00:33:06,790 --> 00:33:12,320 Nó sẽ là 617-555-1212 tại, nó là gì, text.ATT.net, 749 00:33:12,320 --> 00:33:13,490 là những gì tôi muốn làm. 750 00:33:13,490 --> 00:33:15,260 Vậy làm thế nào để tôi làm điều này? 751 00:33:15,260 --> 00:33:16,730 Tôi sẽ làm như sau. 752 00:33:16,730 --> 00:33:22,460 Địa chỉ của cô là có được số của mình, và bây giờ, hãy để tôi đi trước và làm điều này. 753 00:33:22,460 --> 00:33:23,760 Đây là một số cú pháp funky. 754 00:33:23,760 --> 00:33:27,250 Tôi có thể làm các phần trăm trick, nhưng tôi thực sự có thể chỉ cần làm điều này. 755 00:33:27,250 --> 00:33:29,900 >> Vì vậy, đây là một điều PHP, nhưng chúng ta hãy xem xét những gì tôi đang làm. 756 00:33:29,900 --> 00:33:31,630 Dollars ký địa chỉ trên bên trái, chỉ cần một biến. 757 00:33:31,630 --> 00:33:32,300 Hãy cho tôi một biến. 758 00:33:32,300 --> 00:33:33,390 Tôi không cần phải xác định loại. 759 00:33:33,390 --> 00:33:34,570 PHP sẽ tìm ra nó. 760 00:33:34,570 --> 00:33:36,580 Ở phía bên tay phải, các kiểu dữ liệu là gì 761 00:33:36,580 --> 00:33:38,399 trong đó toàn bộ điều trên phía bên tay phải không? 762 00:33:38,399 --> 00:33:40,190 Trông giống như một chuỗi, bởi vì có đôi 763 00:33:40,190 --> 00:33:42,280 trích trên bên trái và bên phải. 764 00:33:42,280 --> 00:33:44,210 Bây giờ có một số cú pháp mới sôi nổi ở đây. 765 00:33:44,210 --> 00:33:47,550 Có các dấu ngoặc, và số ký hiệu đô la. 766 00:33:47,550 --> 00:33:52,860 Nhưng hãy đoán cú pháp đó là gì có thể nói với PHP để làm gì cho tôi? 767 00:33:52,860 --> 00:33:53,360 Yeah. 768 00:33:53,360 --> 00:33:54,630 Chỉ cần chèn các giá trị đó. 769 00:33:54,630 --> 00:33:55,530 Vì vậy, không có phần trăm s. 770 00:33:55,530 --> 00:33:58,160 Chúng ta có thể sử dụng in f, hoặc s in f hoặc một cái gì đó giống như nó, 771 00:33:58,160 --> 00:34:00,070 nhưng PHP và rất nhiều ngôn ngữ cấp cao hơn, 772 00:34:00,070 --> 00:34:03,070 bạn sẽ thấy rằng bạn có thể làm điều tương tự về mặt chức năng, có thể 773 00:34:03,070 --> 00:34:04,019 sáu cách khác nhau. 774 00:34:04,019 --> 00:34:06,310 Và do đó, nó bắt đầu trở nên một vấn đề thiết kế hoặc phong cách. 775 00:34:06,310 --> 00:34:09,902 Vì vậy, đây chỉ là một cách nhìn khó hiểu nói, đưa cho tôi một địa chỉ email, 776 00:34:09,902 --> 00:34:12,110 nhưng plug-in các số trong giữa các dấu ngoặc nhọn. 777 00:34:12,110 --> 00:34:15,440 Và các dấu ngoặc nhọn sẽ không kết thúc trong địa chỉ cuối cùng. 778 00:34:15,440 --> 00:34:18,010 >> Bây giờ chúng ta có thể bỏ qua một số những dòng này vì lợi ích của thời gian. 779 00:34:18,010 --> 00:34:21,210 Vì vậy, nếu một tàu sân bay tương đương bằng verHorizon-- whoops, 780 00:34:21,210 --> 00:34:24,989 Verizon-- Tôi muốn làm điều gì đó rất giống nhau, nơi địa chỉ nhận, 781 00:34:24,989 --> 00:34:27,569 quote, unquote, số tại text.ATT.net. 782 00:34:27,569 --> 00:34:30,380 783 00:34:30,380 --> 00:34:35,050 Và sau đó tôi có thể làm cùng một loại điều cho phần còn lại của các tàu sân bay. 784 00:34:35,050 --> 00:34:37,090 Nhưng tôi sẽ chỉ làm dấu chấm, dấu chấm, dấu chấm cho bây giờ. 785 00:34:37,090 --> 00:34:43,050 Và bây giờ chúng ta hãy giả sử rằng Tôi muốn thêm mảng, đẩy. 786 00:34:43,050 --> 00:34:45,969 Tôi muốn thêm vào mảng, gọi là địa chỉ. 787 00:34:45,969 --> 00:34:50,409 >> Địa chỉ này, đây là cách bạn thêm một cái gì đó cho một mảng trong PHP. 788 00:34:50,409 --> 00:34:51,610 Bạn không cần phải làm malloc. 789 00:34:51,610 --> 00:34:53,068 Bạn không cần phải thay đổi kích thước mảng. 790 00:34:53,068 --> 00:34:54,259 Bạn chỉ cần nói mảng, push. 791 00:34:54,259 --> 00:34:57,300 Điều gì làm bạn muốn push-- gì mảng Bạn muốn đẩy một cái gì đó lên? 792 00:34:57,300 --> 00:34:58,000 Địa chỉ. 793 00:34:58,000 --> 00:34:59,550 Những gì bạn muốn đẩy vào địa chỉ? 794 00:34:59,550 --> 00:35:00,350 Địa chỉ nhà. 795 00:35:00,350 --> 00:35:02,430 Và trên thực tế, nếu bạn thực sự muốn được thông minh, 796 00:35:02,430 --> 00:35:05,610 một số cú pháp đường cho điều này, có thể nói, 797 00:35:05,610 --> 00:35:10,230 mà chỉ có nghĩa là làm thế nào bạn có thể làm điều này trong cách đẹp hơn, sẽ là để làm điều này. 798 00:35:10,230 --> 00:35:14,060 Điều đó quá có tác dụng phát triển các địa chỉ mảng bằng kích thước một, 799 00:35:14,060 --> 00:35:17,130 và sau đó tiếng tom rằng thêm địa chỉ email vào nó. 800 00:35:17,130 --> 00:35:17,630 Yeah. 801 00:35:17,630 --> 00:35:19,730 >> Đung [Không nghe thấy] 802 00:35:19,730 --> 00:35:22,520 >> SPEAKER 1: Một lỗi đánh máy trên khác if-- oh, hãng vận chuyển. 803 00:35:22,520 --> 00:35:23,070 Vậy là được rồi. 804 00:35:23,070 --> 00:35:26,971 Nó cũng sẽ không giống như thất bại của tôi để thực hiện một phần của chương trình này 805 00:35:26,971 --> 00:35:27,470 sau này. 806 00:35:27,470 --> 00:35:28,810 Nhưng cảm ơn bạn cho việc đánh bắt. 807 00:35:28,810 --> 00:35:30,671 Thêm một con rệp. 808 00:35:30,671 --> 00:35:31,170 Cam on. 809 00:35:31,170 --> 00:35:33,746 Chúng tôi muốn đây là Vtext.com. 810 00:35:33,746 --> 00:35:34,340 Vâng. 811 00:35:34,340 --> 00:35:34,839 Được rồi. 812 00:35:34,839 --> 00:35:36,330 Vì vậy, nơi vấn đề này thì chúng ta? 813 00:35:36,330 --> 00:35:38,224 Chúng tôi đã viết mã để mở file. 814 00:35:38,224 --> 00:35:40,390 Chúng tôi có một vòng lặp để lặp so với các hàng trong tập tin. 815 00:35:40,390 --> 00:35:43,650 Chúng tôi có mã này đã tăng thêm của tôi mảng, một tại một thời điểm, một cách chính xác 816 00:35:43,650 --> 00:35:44,790 địa chỉ email có định dạng. 817 00:35:44,790 --> 00:35:48,480 Vì vậy, tất cả những gì thực sự vẫn là gửi một email tới mỗi người. 818 00:35:48,480 --> 00:35:52,830 >> Vì vậy, tôi đã đi trước và chuẩn bị sẵn sàng bản thân mình như sau. 819 00:35:52,830 --> 00:35:59,580 Những gì tôi sẽ làm ở đây và chúng ta hãy is-- đi trước và bỏ qua một số mã thực tế, 820 00:35:59,580 --> 00:36:00,620 mà trông như thế này. 821 00:36:00,620 --> 00:36:02,950 Vì vậy, đây là pre-nướng phiên bản tôi đã viết trước đó. 822 00:36:02,950 --> 00:36:04,700 Và nhận thấy tôi đã hoàn thành thực hiện Sprint. 823 00:36:04,700 --> 00:36:06,130 Tôi đã hoàn thành việc thực hiện T-Mobile. 824 00:36:06,130 --> 00:36:08,020 Tôi đã hoàn thành việc thực hiện Virgin Mobile. 825 00:36:08,020 --> 00:36:09,622 Và tôi sẽ xin lỗi trước. 826 00:36:09,622 --> 00:36:12,080 Có một vài hãng mà một số học sinh trong lớp có 827 00:36:12,080 --> 00:36:14,640 mà tôi đã không bận tâm liệt kê trong điều kiện if đây. 828 00:36:14,640 --> 00:36:16,015 Vì vậy, không phải tất cả các văn bản sẽ đi ra ngoài. 829 00:36:16,015 --> 00:36:17,556 Nhưng chúng ta hãy xem những gì khác tôi cần phải làm. 830 00:36:17,556 --> 00:36:19,660 Tôi đóng tập tin, chỉ như trong p đặt bốn. 831 00:36:19,660 --> 00:36:20,835 >> Và đây là cú pháp mới. 832 00:36:20,835 --> 00:36:22,710 Và chúng ta sẽ thấy một chút bit này thời gian qua, 833 00:36:22,710 --> 00:36:24,450 đặc biệt là với p đặt bảy và tám. 834 00:36:24,450 --> 00:36:28,140 Nhưng đây là cú pháp để tạo một loại đặc biệt của cấu trúc. 835 00:36:28,140 --> 00:36:31,490 Hóa ra có một thư viện mà đi kèm với PHP, PHP gọi là bưu phẩm. 836 00:36:31,490 --> 00:36:33,840 Mục đích của nó trong cuộc sống là để lập trình gửi email. 837 00:36:33,840 --> 00:36:36,840 Đó là mã của người khác đã viết rằng làm cho nó dễ dàng hơn cho chúng tôi để gửi email, 838 00:36:36,840 --> 00:36:39,131 vì vậy chúng tôi không cần phải giữ đi tới đi lui để Gmail, 839 00:36:39,131 --> 00:36:41,151 và dán vào địa chỉ email của người dân. 840 00:36:41,151 --> 00:36:44,150 Có một bó toàn bộ đường ở đây đó một cách trung thực, tôi chỉ là loại sao chép 841 00:36:44,150 --> 00:36:45,660 và dán từ các tài liệu hướng dẫn. 842 00:36:45,660 --> 00:36:47,409 Và trên thực tế, nếu bạn tò mò, tôi để lại tất cả 843 00:36:47,409 --> 00:36:50,550 các URL của các tài liệu hướng dẫn trong đoạn code đó chúng tôi sẽ gửi sau. 844 00:36:50,550 --> 00:36:52,360 Và nhận thấy rằng trong số những điều tôi đang làm 845 00:36:52,360 --> 00:36:55,710 được, tôi nói với thư viện này, sử dụng máy chủ của Gmail, phải không? 846 00:36:55,710 --> 00:36:59,360 SMTP chúng tôi nói chuyện ngắn gọn về khi chúng ta là tại Yale về được mail đơn giản 847 00:36:59,360 --> 00:37:00,110 giao thức truyền tải. 848 00:37:00,110 --> 00:37:02,920 Đó là giao thức các máy chủ sử dụng để gửi email, 849 00:37:02,920 --> 00:37:05,150 và that's-- Gmail có một trong những người. 850 00:37:05,150 --> 00:37:07,290 Một cổng, đây là số cổng TCP. 851 00:37:07,290 --> 00:37:09,630 Nó là tốt nếu bạn chưa thấy 587 trước đây. 852 00:37:09,630 --> 00:37:11,420 Chỉ biết rằng từ các tài liệu hướng dẫn. 853 00:37:11,420 --> 00:37:12,250 Dưới đây là tên của tôi. 854 00:37:12,250 --> 00:37:13,670 Tôi sẽ sử dụng bot CF50. 855 00:37:13,670 --> 00:37:16,690 Và trong một khoảnh khắc, tôi chỉ cần đi tới gõ mật khẩu thực tế của bot. 856 00:37:16,690 --> 00:37:18,690 Và sau đó xuống đây, chú ý những gì còn lại. 857 00:37:18,690 --> 00:37:22,840 >> Tôi đặt của tôi từ địa chỉ được bot tại CS50.net. 858 00:37:22,840 --> 00:37:26,240 Tôi nghĩ rằng tôi sẽ không hối tiếc gửi tin nhắn văn bản đến 800 người 859 00:37:26,240 --> 00:37:30,590 nói, nhớ em, tình yêu CS50 bot, có lẽ cho những người không thể làm cho nó ngày hôm nay. 860 00:37:30,590 --> 00:37:33,160 Và sau đó trong dòng 76, tôi phải làm gì? 861 00:37:33,160 --> 00:37:39,010 Kiểu này trông giống như C. Vì vậy, cho tôi bằng 0, n equals-- giờ đếm là mới. 862 00:37:39,010 --> 00:37:42,077 Nó chỉ ra rằng nếu bạn muốn nhận được số thứ trong một mảng, 863 00:37:42,077 --> 00:37:43,660 bạn không cần phải nhớ nó nữa. 864 00:37:43,660 --> 00:37:45,370 Bạn chỉ có thể yêu cầu một chức năng gọi là đếm, 865 00:37:45,370 --> 00:37:48,320 và nó sẽ cho bạn biết có bao nhiêu địa chỉ là trong mảng đó. 866 00:37:48,320 --> 00:37:53,210 >> Và sau đó tôi sẽ để thêm địa chỉ này cho email. 867 00:37:53,210 --> 00:37:55,090 Và tôi biết điều này từ sử dụng tài liệu. 868 00:37:55,090 --> 00:37:56,900 Có một chức năng add địa chỉ. 869 00:37:56,900 --> 00:37:58,980 Và bây giờ nhận thấy có là một phần của cú pháp. 870 00:37:58,980 --> 00:38:01,470 Chúng tôi đã nhìn thấy điều này trước khi C. tương tự trong tinh thần. 871 00:38:01,470 --> 00:38:04,100 Bạn có thể nghĩ về ký hiệu đô la gửi như là một biến, mà nó được. 872 00:38:04,100 --> 00:38:08,100 Nhưng nó là một cấu trúc bên trong của đó là không chỉ tài sản, 873 00:38:08,100 --> 00:38:09,400 biến nếu bạn sẽ. 874 00:38:09,400 --> 00:38:13,480 Nhưng nó chỉ ra rằng trong PHP, mà là một lập trình hướng đối tượng 875 00:38:13,480 --> 00:38:16,520 ngôn ngữ, giống như Java, nếu bạn mất APCS. 876 00:38:16,520 --> 00:38:21,420 >> Dollar dấu mail, nếu bạn muốn đối với: nó cũng có chức năng bên trong của nó, 877 00:38:21,420 --> 00:38:22,380 hoặc các phương pháp. 878 00:38:22,380 --> 00:38:24,720 Vì vậy, đây là để nói rằng đặc biệt PHP bưu phẩm 879 00:38:24,720 --> 00:38:29,280 thư viện, nếu tôi đã có một biến của chúng, nếu tôi muốn gọi một chức năng mà 880 00:38:29,280 --> 00:38:31,559 đi kèm với thư viện, cho mục đích của ngày hôm nay, 881 00:38:31,559 --> 00:38:33,100 chỉ biết bạn sử dụng các ký hiệu mũi tên. 882 00:38:33,100 --> 00:38:34,150 Không có ký hiệu dấu chấm. 883 00:38:34,150 --> 00:38:35,220 Nó chỉ là những mũi tên. 884 00:38:35,220 --> 00:38:36,380 Nhưng đó không phải là một con trỏ. 885 00:38:36,380 --> 00:38:38,680 Nó chỉ là vay mượn từ cú pháp của C. 886 00:38:38,680 --> 00:38:43,620 Do đó, gọi thêm địa chỉ bên trong đối tượng của thư viện này hoặc biến. 887 00:38:43,620 --> 00:38:44,440 >> Được rồi. 888 00:38:44,440 --> 00:38:45,570 Đây là dòng huyền diệu. 889 00:38:45,570 --> 00:38:46,740 Đó là cách tôi gửi một email. 890 00:38:46,740 --> 00:38:50,040 Đó là tương đương với việc mở cửa Gmail, gõ nó ra, và nhấn gửi. 891 00:38:50,040 --> 00:38:54,870 Nhưng nó sẽ thay vì gửi gửi email đến địa chỉ này, với thân thể này, 892 00:38:54,870 --> 00:38:57,120 từ bot CS50. 893 00:38:57,120 --> 00:38:58,710 Và bây giờ dòng chính. 894 00:38:58,710 --> 00:39:03,130 Dòng này đã vắng mặt trong như 2011 khi tôi nghĩ rằng tôi cuối cùng đã cố gắng này. 895 00:39:03,130 --> 00:39:05,640 Đó là dòng có, tất nhiên, xóa các địa chỉ. 896 00:39:05,640 --> 00:39:07,920 Vì vậy, một cách logic, nếu tôi không rõ ràng địa chỉ 897 00:39:07,920 --> 00:39:11,740 sau mỗi lần lặp đầu tiên gửi email hoặc tin nhắn văn bản đi đến Alice, 898 00:39:11,740 --> 00:39:14,320 thứ hai đi vào Alice và Bob, thứ ba 899 00:39:14,320 --> 00:39:17,870 đi vào Alice và Bob và Charlie, do đó các sai lầm rất đắt 900 00:39:17,870 --> 00:39:18,760 Tôi đã thực hiện trong năm đó. 901 00:39:18,760 --> 00:39:21,080 >> Vì vậy, chúng ta hãy xem. 902 00:39:21,080 --> 00:39:24,200 Có bất kỳ câu hỏi trước khi chúng tôi gửi cho bạn tất cả các văn bản 903 00:39:24,200 --> 00:39:28,210 nhắn với 10 phần trăm xác suất? 904 00:39:28,210 --> 00:39:28,940 Bất kỳ câu hỏi? 905 00:39:28,940 --> 00:39:30,330 Được rồi. 906 00:39:30,330 --> 00:39:36,100 Hãy cho tôi đi ở đây và thay đổi mật khẩu để những gì cần làm việc, 907 00:39:36,100 --> 00:39:37,780 sẽ có khả năng nhận được danh sách đen của Gmail. 908 00:39:37,780 --> 00:39:39,821 Vì vậy, không phải tất cả họ có thể đi ra, kể từ khi họ có thể 909 00:39:39,821 --> 00:39:42,960 không thích chúng tôi gửi 800 email trong một vòng lặp cho tất cả cùng một lúc. 910 00:39:42,960 --> 00:39:45,140 Kể từ đó không hành vi đặc biệt của con người. 911 00:39:45,140 --> 00:39:47,460 >> Oh, tôi sẽ thay đổi một điều khác. 912 00:39:47,460 --> 00:39:50,850 Up ở phía trên, tôi sẽ sent-- thay đổi các tập tin cho sinh viên chấm CSV. 913 00:39:50,850 --> 00:39:55,420 Và tôi sẽ không mở cửa này, nhưng đây là một tập tin CSV giống hệt với không 100 nhân viên, 914 00:39:55,420 --> 00:39:58,970 nhưng 800 học sinh, chỉ từ Harvard, Yale vì 915 00:39:58,970 --> 00:40:00,207 có tháng mười giờ ra trong tuần này. 916 00:40:00,207 --> 00:40:03,290 Và nó có vẻ như loại một điều giật để làm cho văn bản tất cả chúng là tại sao 917 00:40:03,290 --> 00:40:04,750 họ đang không ở trong lớp học vào kỳ nghỉ. 918 00:40:04,750 --> 00:40:05,250 Vậy là được rồi. 919 00:40:05,250 --> 00:40:08,310 Chỉ là sinh viên Harvard hôm nay bên trong của tập tin đó. 920 00:40:08,310 --> 00:40:12,320 Và bây giờ chúng ta hãy quay trở lại đến cửa sổ thiết bị đầu cuối của tôi. 921 00:40:12,320 --> 00:40:13,710 Tôi là loại thần kinh. 922 00:40:13,710 --> 00:40:22,000 >> OK nên bây giờ tôi sẽ đi vào thư mục, và văn bản PHP dot PHP. 923 00:40:22,000 --> 00:40:24,950 Làm thế nào về một tình nguyện viên dũng cảm? 924 00:40:24,950 --> 00:40:26,690 Vì vậy, tôi không muốn điều này ở tôi. 925 00:40:26,690 --> 00:40:28,410 OK, đi lên trên. 926 00:40:28,410 --> 00:40:29,162 Tên bạn là gì? 927 00:40:29,162 --> 00:40:29,662 MAYA: Maya. 928 00:40:29,662 --> 00:40:30,328 SPEAKER 1: Maya. 929 00:40:30,328 --> 00:40:31,610 Nào lên, Maya. 930 00:40:31,610 --> 00:40:34,120 Được rồi. 931 00:40:34,120 --> 00:40:35,389 Hãy xem, nếu công trình này. 932 00:40:35,389 --> 00:40:38,430 Tôi đưa địa chỉ email riêng của tôi trong file-- số điện thoại riêng của tôi trong tập tin, 933 00:40:38,430 --> 00:40:40,110 vì vậy mà tôi hy vọng sẽ nhận được một là tốt. 934 00:40:40,110 --> 00:40:40,819 Rất hân hạnh được biết bạn. 935 00:40:40,819 --> 00:40:41,443 MAYA: Tương tự như vậy. 936 00:40:41,443 --> 00:40:44,510 SPEAKER 1: Vì vậy, tất cả các bạn phải làm là nhấn Enter để gửi 800 tin nhắn văn bản, 937 00:40:44,510 --> 00:40:45,466 nếu tôi không vít lên. 938 00:40:45,466 --> 00:40:51,106 939 00:40:51,106 --> 00:40:51,606 Tốt đẹp. 940 00:40:51,606 --> 00:40:55,556 941 00:40:55,556 --> 00:40:58,430 Có thể mất một thời gian, thống kê, cho đến khi chúng tôi nhận được một email address-- 942 00:40:58,430 --> 00:41:00,573 một tin nhắn văn bản đó trong phòng ngay bây giờ. 943 00:41:00,573 --> 00:41:03,880 944 00:41:03,880 --> 00:41:05,390 Hãy nán lại xem. 945 00:41:05,390 --> 00:41:06,940 >> Đung [Whistling] 946 00:41:06,940 --> 00:41:08,270 >> SPEAKER 1: Oh, yes. 947 00:41:08,270 --> 00:41:09,230 >> Đung Oh, Gotcha. 948 00:41:09,230 --> 00:41:16,720 949 00:41:16,720 --> 00:41:19,180 >> SPEAKER 1: Đối với các vòng lặp are-- này không phải là chậm vì PHP. 950 00:41:19,180 --> 00:41:21,810 Đây là chậm vì Gmail được throttling chúng tôi và không 951 00:41:21,810 --> 00:41:25,170 cho phép chúng tôi gửi nhiều hơn giống như một email mỗi giây. 952 00:41:25,170 --> 00:41:26,300 Bất cứ điều gì? 953 00:41:26,300 --> 00:41:29,990 Đây là một điều khó khăn đối với tôi để kiểm tra tại nhà chỉ có tôi và một điện thoại của tôi, như vậy. 954 00:41:29,990 --> 00:41:37,630 955 00:41:37,630 --> 00:41:41,111 Là hy vọng từ các bot? 956 00:41:41,111 --> 00:41:41,610 Vâng? 957 00:41:41,610 --> 00:41:42,110 Không có? 958 00:41:42,110 --> 00:41:44,760 959 00:41:44,760 --> 00:41:46,620 Nói có. 960 00:41:46,620 --> 00:41:47,479 Không có? 961 00:41:47,479 --> 00:41:49,374 Đó là từ một người bạn? 962 00:41:49,374 --> 00:41:49,874 Awkward. 963 00:41:49,874 --> 00:41:50,374 ĐƯỢC. 964 00:41:50,374 --> 00:41:56,580 965 00:41:56,580 --> 00:42:00,090 Đẹp, chắc chắn nó làm việc mặc dù. 966 00:42:00,090 --> 00:42:00,910 Uh oh. 967 00:42:00,910 --> 00:42:03,190 Họ black-- oh, chờ một phút. 968 00:42:03,190 --> 00:42:04,280 Oh, bạn biết những gì? 969 00:42:04,280 --> 00:42:06,100 Xin đợi một chút. 970 00:42:06,100 --> 00:42:07,802 Chỉ Maya và I-- Mia, đúng không? 971 00:42:07,802 --> 00:42:08,301 MAYA: Maya. 972 00:42:08,301 --> 00:42:12,110 SPEAKER 1: Maya, sẽ biết những gì tôi đã làm sai ở đây. 973 00:42:12,110 --> 00:42:14,890 Oh, chờ một phút. 974 00:42:14,890 --> 00:42:23,320 Tôi nghĩ rằng tôi chỉ gửi 100 tin nhắn văn bản đến 555-1212. 975 00:42:23,320 --> 00:42:24,346 Stand by. 976 00:42:24,346 --> 00:42:28,080 977 00:42:28,080 --> 00:42:29,270 Tôi không thể thắng bất cứ năm nào. 978 00:42:29,270 --> 00:42:30,180 ĐƯỢC. 979 00:42:30,180 --> 00:42:30,680 Maya? 980 00:42:30,680 --> 00:42:33,530 981 00:42:33,530 --> 00:42:36,219 Fix rằng trong sản xuất bài. 982 00:42:36,219 --> 00:42:36,718 Khỉ thật! 983 00:42:36,718 --> 00:42:39,430 984 00:42:39,430 --> 00:42:40,390 Sau đây từ địa chỉ. 985 00:42:40,390 --> 00:42:41,301 OK, stand by. 986 00:42:41,301 --> 00:42:41,800 Lấy làm tiếc. 987 00:42:41,800 --> 00:42:44,550 988 00:42:44,550 --> 00:42:47,080 Thật đau đớn mỗi năm. 989 00:42:47,080 --> 00:42:48,640 OK, một khoảnh khắc. 990 00:42:48,640 --> 00:42:50,530 Điều này là tốt. 991 00:42:50,530 --> 00:42:54,010 Thay vào đó tôi sẽ làm điều này. 992 00:42:54,010 --> 00:42:55,470 Địa chỉ in. 993 00:42:55,470 --> 00:42:56,030 OK, stand by. 994 00:42:56,030 --> 00:43:01,340 Địa chỉ in ấn, khung i. 995 00:43:01,340 --> 00:43:02,710 Yeah, tôi thích điều đó. 996 00:43:02,710 --> 00:43:10,220 Dollar sign-- OK tôi sẽ giải thích những gì tôi làm trong một thời điểm, sau khi tôi đã chạy này. 997 00:43:10,220 --> 00:43:11,670 Hang năm. 998 00:43:11,670 --> 00:43:13,125 OK, ở đây chúng tôi đi. 999 00:43:13,125 --> 00:43:15,750 Tôi có just-- và tôi không muốn để hiển thị số điện thoại của tất cả mọi người, 1000 00:43:15,750 --> 00:43:17,740 nhưng Maya có thể xác nhận với một cái gật đầu của người đứng đầu, 1001 00:43:17,740 --> 00:43:20,800 rằng cô nhìn thấy tất cả mọi người số điện thoại trong lớp 1002 00:43:20,800 --> 00:43:26,750 rằng tôi sẽ sao chép vào một chương trình gọi là Gmail. 1003 00:43:26,750 --> 00:43:30,860 Và nếu trong Gmail, những gì chúng tôi muốn nói không? 1004 00:43:30,860 --> 00:43:32,137 Nhớ bạn. 1005 00:43:32,137 --> 00:43:33,220 Love-- đó không phải từ tôi. 1006 00:43:33,220 --> 00:43:35,230 Tôi thậm chí còn không nhấn gửi. 1007 00:43:35,230 --> 00:43:39,450 Vì vậy, chúng ta hãy đi trước và làm này, nếu tôi có thể phóng to. 1008 00:43:39,450 --> 00:43:40,300 ĐƯỢC. 1009 00:43:40,300 --> 00:43:42,480 Vì vậy, tôi đang sử dụng một chương trình gọi là Gmail bây giờ. 1010 00:43:42,480 --> 00:43:44,490 Nếu Maya, bạn muốn nhấp vào nút Send, 1011 00:43:44,490 --> 00:43:46,970 chúng tôi sẽ mô phỏng những gì mà mã nên đã làm. 1012 00:43:46,970 --> 00:43:54,630 1013 00:43:54,630 --> 00:43:55,254 >> Bất cứ điều gì? 1014 00:43:55,254 --> 00:43:56,062 >> [Tiếng bíp] 1015 00:43:56,062 --> 00:43:56,870 >> Đung Yep. 1016 00:43:56,870 --> 00:43:58,030 >> SPEAKER 1: Có? 1017 00:43:58,030 --> 00:43:59,210 Sự cứu rỗi? 1018 00:43:59,210 --> 00:44:00,427 >> Đung Yep. 1019 00:44:00,427 --> 00:44:01,260 SPEAKER 1: Miss you. 1020 00:44:01,260 --> 00:44:02,718 Và tôi sẽ gửi phần còn lại. 1021 00:44:02,718 --> 00:44:06,060 Tôi đã gửi một nửa bởi vì tôi đã không nghĩ rằng Gmail sẽ cho phép những người đi qua. 1022 00:44:06,060 --> 00:44:12,410 Vì vậy, chỉ cần nhớ, hôm nay là ngày mà bạn học được rằng tôi có thể sử dụng Gmail. 1023 00:44:12,410 --> 00:44:14,977 1024 00:44:14,977 --> 00:44:15,810 Đó là kinh hoàng. 1025 00:44:15,810 --> 00:44:17,140 Một tràng pháo tay lớn để Maya. 1026 00:44:17,140 --> 00:44:18,980 Cam on. 1027 00:44:18,980 --> 00:44:21,280 Tất cả các quyền, như vậy. 1028 00:44:21,280 --> 00:44:22,210 cái gì 1029 00:44:22,210 --> 00:44:23,140 >> [Tiếng bíp] 1030 00:44:23,140 --> 00:44:25,010 1031 00:44:25,010 --> 00:44:26,580 >> Chúng tôi có một vài tiếng bíp, có? 1032 00:44:26,580 --> 00:44:27,080 Được rồi. 1033 00:44:27,080 --> 00:44:30,590 Bây giờ tôi sẽ nhận được 700 thực sự email không hạnh phúc trở lại từ các bạn cùng lớp. 1034 00:44:30,590 --> 00:44:32,400 Vì vậy, ít nhất chúng ta sẽ thấy nếu đó là giá trị nó. 1035 00:44:32,400 --> 00:44:33,300 Vì vậy, những gì đã xảy ra? 1036 00:44:33,300 --> 00:44:35,300 Tôi sẽ tìm ra những gì đã đi sai sau khi thực tế, 1037 00:44:35,300 --> 00:44:38,340 nhưng chỉ cần nhìn cách dễ dàng nó đã làm điều đó trong PHP. 1038 00:44:38,340 --> 00:44:44,598 Vì vậy, những gì chúng ta có thể thực sự làm bây giờ mà chúng tôi có biểu cảm này của PHP. 1039 00:44:44,598 --> 00:44:45,970 Đó was-- đó thật kinh khủng. 1040 00:44:45,970 --> 00:44:46,480 Được rồi. 1041 00:44:46,480 --> 00:44:48,430 Vì vậy, đó là những gì nên đã đi ra ngoài. 1042 00:44:48,430 --> 00:44:52,770 Điều này đã được tôi thử nghiệm sáng nay trên của tôi điện thoại, ảnh chụp màn hình thực tế của điện thoại của tôi. 1043 00:44:52,770 --> 00:44:56,180 >> Nhưng bây giờ chúng ta hãy xem xét tại sao chúng tôi đang thực sự giới thiệu 1044 00:44:56,180 --> 00:44:57,840 tất cả các công cụ này ở nơi đầu tiên. 1045 00:44:57,840 --> 00:45:01,625 Vì vậy, mục tiêu là không để viết các chương trình này 1046 00:45:01,625 --> 00:45:03,250 được viết ở dòng lệnh, phải không? 1047 00:45:03,250 --> 00:45:05,000 Vì vậy, tôi đã viết một đơn giản xin chào chương trình, tôi đã viết 1048 00:45:05,000 --> 00:45:09,155 một chương trình nhỏ mà thực hiện điều kiện, và sử dụng một dòng đọc và vv. 1049 00:45:09,155 --> 00:45:11,530 Và theo lý thuyết, tôi chỉ viết một chương trình để có thể gửi 1050 00:45:11,530 --> 00:45:14,290 800 tin nhắn văn bản, cho hay phải mất 800. 1051 00:45:14,290 --> 00:45:16,830 Và chương trình đó là tất cả vẫn chạy tại dòng lệnh. 1052 00:45:16,830 --> 00:45:18,538 Và đó là tất nhiên không phải là web, phải không? 1053 00:45:18,538 --> 00:45:22,160 Mục tiêu bây giờ là để bắt đầu sử dụng những gì tôi yêu cầu bồi thường là một dễ dàng hơn để sử dụng 1054 00:45:22,160 --> 00:45:24,720 ngôn ngữ, dám nói một nhiều hơn ngôn ngữ mạnh mẽ về 1055 00:45:24,720 --> 00:45:27,104 các tính năng đi kèm với nó, để bắt đầu 1056 00:45:27,104 --> 00:45:29,850 viết code mà tạo ra các trang web. 1057 00:45:29,850 --> 00:45:33,248 >> Vì vậy, thời gian trước và tuần cuối cùng, chúng tôi nói chuyện về HTTP và HTML. 1058 00:45:33,248 --> 00:45:36,350 Và những gì tốt đẹp về HTML là nó chỉ là văn bản thuần túy. 1059 00:45:36,350 --> 00:45:38,220 Và chắc chắn là văn bản cái gì mà bạn có thể 1060 00:45:38,220 --> 00:45:42,040 in bằng nghĩa đen gọi in f chức năng, hoặc các chức năng in. 1061 00:45:42,040 --> 00:45:46,160 Và quả thực, đó là những gì PHP là bây giờ đi để cho phép chúng ta làm. 1062 00:45:46,160 --> 00:45:48,610 Vì vậy, một trong những ví dụ chúng tôi có trong mã nguồn của ngày hôm nay, 1063 00:45:48,610 --> 00:45:51,610 thêm vào một số mã mà tôi đặt lên đó một thời gian trước đây, 1064 00:45:51,610 --> 00:45:55,440 chúng tôi có các chương trình như thế này chẳng hạn. 1065 00:45:55,440 --> 00:45:58,760 Froshims, hoặc Sinh viên năm nhất Thể thao trong thể thao, đã thực sự 1066 00:45:58,760 --> 00:46:01,500 một trong những extracurriculars đầu tiên Tôi đã tham gia với năm trước. 1067 00:46:01,500 --> 00:46:03,750 Và bạn cùng phòng của tôi và tôi, với một số trẻ em khác trong trường, 1068 00:46:03,750 --> 00:46:05,280 được sử dụng để chạy chương trình froshims. 1069 00:46:05,280 --> 00:46:07,420 Tôi nhận được tin nhắn văn bản của tôi bây giờ. 1070 00:46:07,420 --> 00:46:14,030 >> Bây giờ vì vậy chúng tôi, trở lại trong ngày, vì vậy đây là 1996 hoặc như vậy, đã có một internet, 1071 00:46:14,030 --> 00:46:17,395 nhưng không có process-- có Không có trang web cho froshims. 1072 00:46:17,395 --> 00:46:20,270 Và vì vậy nếu bạn muốn đăng ký bóng đá hay bóng chuyền hay bất cứ điều gì, 1073 00:46:20,270 --> 00:46:22,240 bạn sẽ điền vào điều này được gọi là một mảnh giấy, 1074 00:46:22,240 --> 00:46:25,060 và bạn sẽ đi bộ qua Harvard sân, và bạn sẽ trượt 1075 00:46:25,060 --> 00:46:29,230 vào khe mail của giám thị, người là trong Wigglesworth, một trong những ký túc xá. 1076 00:46:29,230 --> 00:46:31,270 Và đây là bạn đã đăng ký. 1077 00:46:31,270 --> 00:46:33,570 Và người đó sẽ sau đó soạn một email đến bạn 1078 00:46:33,570 --> 00:46:36,514 bằng tay, giống như tôi chỉ cần làm ở đây với Maya, 1079 00:46:36,514 --> 00:46:38,930 và sau đó bạn sẽ được xác nhận như đã được đăng ký. 1080 00:46:38,930 --> 00:46:40,840 >> Vì vậy, điều này giống như thấp treo trái cây, do đó, để nói chuyện. 1081 00:46:40,840 --> 00:46:42,930 Đó là loại ngu ngốc mà chúng tôi đã sử dụng giấy cho điều này. 1082 00:46:42,930 --> 00:46:45,024 Tôi muốn chúng tôi có thể chỉ cần đi trên một trang web, 1083 00:46:45,024 --> 00:46:47,440 hoặc có các tân sinh viên đi trên một website, đăng ký cho thể thao, 1084 00:46:47,440 --> 00:46:50,398 và chỉ tự động hóa rất nhiều các công cụ này bằng cách đặt tên và email của họ 1085 00:46:50,398 --> 00:46:51,850 và vv vào một cơ sở dữ liệu. 1086 00:46:51,850 --> 00:46:56,510 Và trên thực tế, phiên bản đầu tiên của các trang web, sử dụng HTML siêu xấu xí, 1087 00:46:56,510 --> 00:46:58,195 có thể nhìn một cái gì đó như thế này. 1088 00:46:58,195 --> 00:47:01,070 Đó là thực sự, trớ trêu thay, nhiều lúng túng tìm kiếm hơn trở lại này 1089 00:47:01,070 --> 00:47:01,460 sau đó. 1090 00:47:01,460 --> 00:47:02,890 Nhưng tôi sử dụng một ngôn ngữ lập trình. 1091 00:47:02,890 --> 00:47:06,060 Không PHP, nhưng thay vì gọi là Perl, mà là một ngôn ngữ cũ, 1092 00:47:06,060 --> 00:47:07,251 nhưng rất tinh thần tương tự. 1093 00:47:07,251 --> 00:47:09,000 Và tôi chỉ hoàn toàn dạy cho bản thân mình. 1094 00:47:09,000 --> 00:47:12,208 Và nó đã cho tôi một thời gian để con số nó ra, hỏi rất nhiều câu hỏi của bạn bè. 1095 00:47:12,208 --> 00:47:14,080 Nhưng những ý tưởng có hoàn toàn giống nhau. 1096 00:47:14,080 --> 00:47:18,050 Bởi vì những gì PHP đã thực sự thiết kế không có các công cụ dòng lệnh 1097 00:47:18,050 --> 00:47:20,450 chúng tôi chỉ chơi với, nhưng đối với lập trình web. 1098 00:47:20,450 --> 00:47:24,960 >> Nó thực sự gắn trong tính năng của nó thiết lập các trang web, như sau. 1099 00:47:24,960 --> 00:47:26,370 Đây là froshims. 1100 00:47:26,370 --> 00:47:28,720 Và nếu tôi muốn đăng ký theo hình thức này, 1101 00:47:28,720 --> 00:47:30,930 này là khá xấu xí, chắc chắn, nhưng hãy để tôi đi trước 1102 00:47:30,930 --> 00:47:34,440 và là một học sinh kém thoải mái, và bất cứ môn thể thao cho Matthews, 1103 00:47:34,440 --> 00:47:35,630 bấm vào Đăng ký. 1104 00:47:35,630 --> 00:47:39,780 Những gì tôi muốn có thể làm là gửi thông tin từ một hình thức, 1105 00:47:39,780 --> 00:47:42,400 không để máy chủ của Google như chúng tôi đã làm thời gian qua, hoàn toàn 1106 00:47:42,400 --> 00:47:47,100 gian lận bằng cách sử dụng phụ trợ của họ, tôi muốn thực hiện các mã phụ trợ của riêng tôi. 1107 00:47:47,100 --> 00:47:51,410 Có nghĩa là ghi PHP mã mà sống tại một URL 1108 00:47:51,410 --> 00:47:54,180 rằng dữ liệu mẫu có thể được gửi đến. 1109 00:47:54,180 --> 00:47:57,510 >> Và sau đó mã của bạn, viết bằng PHP trên máy chủ, 1110 00:47:57,510 --> 00:47:59,400 sau đó có thể đáp ứng mà người dùng nhập vào. 1111 00:47:59,400 --> 00:48:03,287 Giống như tên gọi của mình, hoặc mức độ thoải mái, hoặc ký túc xá, và sau đó làm một cái gì đó với nó. 1112 00:48:03,287 --> 00:48:05,120 Trong trường hợp này, tôi chỉ ngớ ngẩn in nó ra 1113 00:48:05,120 --> 00:48:06,750 như văn bản, mà không phải là tất cả những gì đẹp. 1114 00:48:06,750 --> 00:48:09,590 Nhưng bạn có thể chắc chắn tưởng tượng, nếu bạn biết HTML, 1115 00:48:09,590 --> 00:48:13,010 và bạn sẽ sớm biết làm thế nào để tạo ra HTML với f in, và in ấn, 1116 00:48:13,010 --> 00:48:16,500 và các chức năng tương tự, bạn có thể chắc chắn tạo ra một trang web đẹp hơn mà nói, 1117 00:48:16,500 --> 00:48:17,929 hey David, bạn đang đăng ký. 1118 00:48:17,929 --> 00:48:20,220 Bạn là một ít thoải mái sinh viên từ Matthews, phải không? 1119 00:48:20,220 --> 00:48:23,880 >> Bạn chỉ có thể sử dụng một bó toàn bộ% ses, hoặc các dấu ngoặc nhọn và ký hiệu đô la 1120 00:48:23,880 --> 00:48:27,750 ký hiệu tôi đã sử dụng một thời gian trước đây, để tạo ra văn bản đó là người dùng thân thiện 1121 00:48:27,750 --> 00:48:28,567 hơn cái này. 1122 00:48:28,567 --> 00:48:30,150 Vì vậy, chúng ta hãy nhìn vào một tập tin này. 1123 00:48:30,150 --> 00:48:34,666 Froshim không điểm PHP trông như thế này. 1124 00:48:34,666 --> 00:48:37,860 1125 00:48:37,860 --> 00:48:43,500 Khi tôi tải lại CS50 IDE, zero froshim trông như thế này. 1126 00:48:43,500 --> 00:48:45,700 Đây là froshim không điểm PHP. 1127 00:48:45,700 --> 00:48:47,730 Và điều gì làm bạn chú ý về tập tin này? 1128 00:48:47,730 --> 00:48:49,506 >> Đung [Không nghe thấy] 1129 00:48:49,506 --> 00:48:50,922 SPEAKER 1: Xin lỗi, to hơn một chút? 1130 00:48:50,922 --> 00:48:53,250 Đung [Không nghe thấy] Đó là tất cả trong HTML. 1131 00:48:53,250 --> 00:48:57,130 Và trên thực tế, đó là, bởi vì những gì là thú vị về PHP 1132 00:48:57,130 --> 00:48:58,880 là nó được thiết kế được, cho tốt hơn 1133 00:48:58,880 --> 00:49:02,110 hoặc tồi tệ hơn, xen kẽ với mã HTML. 1134 00:49:02,110 --> 00:49:05,850 Và trên thực tế, mặc dù điều này file, froshim không điểm PHP, 1135 00:49:05,850 --> 00:49:11,470 có một comment PHP ở đầu của nó, đó là tất cả chỉ là HTML. 1136 00:49:11,470 --> 00:49:17,655 Nhưng ngược lại, nếu tôi mở ra, chúng ta hãy nói, đăng ký không điểm PHP, mà 1137 00:49:17,655 --> 00:49:19,550 chỉ có một nhận xét lớn ở đầu trang. 1138 00:49:19,550 --> 00:49:26,500 Điều này cũng có vẻ gần như hoàn toàn như HTML, ngoại trừ những gì? 1139 00:49:26,500 --> 00:49:29,350 Line, những gì, 21 có vẻ hơi kỳ lạ. 1140 00:49:29,350 --> 00:49:32,739 >> Nhưng nhận thấy tôi đang bước vào chế độ PHP với mở khung dấu hỏi PHP. 1141 00:49:32,739 --> 00:49:33,780 Sau đó, tôi đã có một số công cụ. 1142 00:49:33,780 --> 00:49:36,724 Và sau đó vào cuối của dòng đó gần như tôi có, câu hỏi đánh dấu PHP. 1143 00:49:36,724 --> 00:49:38,390 Và đây là những gì tôi có nghĩa là xen kẽ. 1144 00:49:38,390 --> 00:49:41,910 Bạn có thể viết HTML mà bạn chỉ muốn máy chủ để nhổ ra. 1145 00:49:41,910 --> 00:49:45,090 Nhưng nếu bạn muốn làm điều gì đó partway năng động thông qua trang, 1146 00:49:45,090 --> 00:49:47,699 như chèn tên của tôi hay dorm hoặc mức độ thoải mái, 1147 00:49:47,699 --> 00:49:49,490 Tôi có thể sử dụng một chức năng như in r, mà là 1148 00:49:49,490 --> 00:49:52,492 in đệ quy, mà chỉ có nghĩa in ra biến này, định dạng nó 1149 00:49:52,492 --> 00:49:53,200 tuy nhiên bạn muốn. 1150 00:49:53,200 --> 00:49:55,880 Nó thực sự không cho mục đích của con người, nó chỉ 1151 00:49:55,880 --> 00:49:58,290 để gỡ lỗi hoặc mục đích chẩn đoán. 1152 00:49:58,290 --> 00:49:59,460 Vì vậy, đó là cách tôi đã làm điều đó. 1153 00:49:59,460 --> 00:50:06,100 >> Nếu tôi thay vì đi froshims hai dot PHP, nhận thấy rằng các hành động của hình thức này 1154 00:50:06,100 --> 00:50:09,680 không được đăng ký hành không điểm như PHP old-- trước đó thực sự được. 1155 00:50:09,680 --> 00:50:11,222 Nhưng nó được đăng ký hai dot PHP. 1156 00:50:11,222 --> 00:50:13,680 Vì vậy, chúng ta hãy nhìn vào cách này cư xử hơi khác một chút. 1157 00:50:13,680 --> 00:50:15,140 Nếu tôi đi vào phiên bản hai. 1158 00:50:15,140 --> 00:50:20,430 Nếu ở đây, nếu tôi đăng ký như David, ít thoải mái, từ ký túc xá của Mathews, 1159 00:50:20,430 --> 00:50:21,480 ghi danh. 1160 00:50:21,480 --> 00:50:23,770 Vì vậy, lần này nó nói, bạn được đăng ký, không thực sự. 1161 00:50:23,770 --> 00:50:25,370 Hãy xem những gì tôi đã làm ở đây. 1162 00:50:25,370 --> 00:50:29,760 Nếu tôi nhìn vào đăng ký hai chấm PHP, điều này có một số mã PHP hơn. 1163 00:50:29,760 --> 00:50:35,410 Đó là một chút sạch hơn, mặc dù nó vẫn kết thúc tốt đẹp một chút dài dòng này. 1164 00:50:35,410 --> 00:50:36,260 Chú ý ở đây. 1165 00:50:36,260 --> 00:50:40,300 Tôi in ra thẻ HTML của tôi, từ khóa đầu của tôi, thẻ của tôi tiêu đề, người đứng đầu, cơ thể. 1166 00:50:40,300 --> 00:50:45,410 >> Và sau đó tôi bắt đầu nói những thứ như vào chế độ PHP. 1167 00:50:45,410 --> 00:50:48,540 Và vì vậy thẻ đó, mở khung Dấu hỏi PHP-- PHP nói, 1168 00:50:48,540 --> 00:50:53,460 hey, máy chủ, execute-- giải thích các công cụ sau đây như PHP 1169 00:50:53,460 --> 00:50:55,030 cho đến khi bạn nhìn thấy các thẻ kết thúc. 1170 00:50:55,030 --> 00:50:58,590 Và mặc dù bạn có thể không biết bất kỳ PHP khác hơn là bạn đã nhìn thấy cho đến nay, 1171 00:50:58,590 --> 00:51:01,290 bạn có thể loại đọc nó khá trực quan. 1172 00:51:01,290 --> 00:51:10,670 Nếu tên là trống rỗng, hoặc thoải mái là trống rỗng, hoặc ký túc xá là trống rỗng, tôi phải làm gì? 1173 00:51:10,670 --> 00:51:12,830 Tôi sẽ nói gì cho người dùng? 1174 00:51:12,830 --> 00:51:15,330 Bạn phải cung cấp tên, thoải mái, và ký túc xá, và vân vân. 1175 00:51:15,330 --> 00:51:17,750 Khác, tôi nói bạn là đăng ký, cũng không thực sự. 1176 00:51:17,750 --> 00:51:19,190 >> Và tôi nói không thực sự bởi vì không có cơ sở dữ liệu. 1177 00:51:19,190 --> 00:51:20,200 Tôi không làm bất cứ điều gì với dữ liệu. 1178 00:51:20,200 --> 00:51:22,408 Tôi chỉ cần ném nó đi cho mục đích trình diễn. 1179 00:51:22,408 --> 00:51:24,320 Bây giờ tôi loại skimped trên dòng 22. 1180 00:51:24,320 --> 00:51:26,400 Có cú pháp hơn có, nhưng ký hiệu đô la 1181 00:51:26,400 --> 00:51:28,320 nhấn mạnh bài là loại thú vị. 1182 00:51:28,320 --> 00:51:30,300 Và đây là những gì tốt đẹp về PHP. 1183 00:51:30,300 --> 00:51:35,610 Trong PHP, bạn có những gì được gọi là một vài biến siêu toàn cầu. 1184 00:51:35,610 --> 00:51:38,430 Họ là những loại nhiều hơn quan trọng hơn là các biến toàn cầu. 1185 00:51:38,430 --> 00:51:41,370 Và này, tất cả vốn như vậy, đi kèm với PHP. 1186 00:51:41,370 --> 00:51:44,550 Vì vậy, nếu bạn có một máy chủ mà có một máy chủ web cài đặt, như Apache, 1187 00:51:44,550 --> 00:51:49,390 và bạn cài đặt ngôn ngữ hỗ trợ cho PHP, tất cả của một đột ngột bạn 1188 00:51:49,390 --> 00:51:52,250 có thể bắt đầu sử dụng các siêu biến toàn cầu trong mã của bạn. 1189 00:51:52,250 --> 00:51:54,330 >> Và những gì tốt đẹp về PHP là nếu bạn chỉ 1190 00:51:54,330 --> 00:51:57,540 viết một tập tin kết thúc bằng dấu chấm PHP, đặt nó trên một máy chủ web, 1191 00:51:57,540 --> 00:52:01,260 và sau đó bạn gửi biểu mẫu để nó qua đó tag hành động và một thẻ hình thức, 1192 00:52:01,260 --> 00:52:05,110 rằng hành động thuộc tính trong tag hình thức, PHP và web 1193 00:52:05,110 --> 00:52:09,360 hoàn toàn hiểu ra làm thế nào để lấy tất cả những cặp giá trị key ra 1194 00:52:09,360 --> 00:52:11,633 các URL như câu hỏi mark q bằng mèo, 1195 00:52:11,633 --> 00:52:14,782 nó sẽ tìm ra cách để q và mèo. 1196 00:52:14,782 --> 00:52:17,710 Nếu bạn gửi một bức ảnh, hoặc một tên người dùng, hoặc một mật khẩu để thích Facebook, 1197 00:52:17,710 --> 00:52:21,360 PHP sẽ tìm ra cho bạn nơi mà tất cả các dữ liệu đó là. 1198 00:52:21,360 --> 00:52:23,821 Và nó sẽ chỉ tay bạn một mảng kết hợp 1199 00:52:23,821 --> 00:52:27,560 gọi là đô la dấu gạch dưới bài, hoặc ký hiệu đô la nhấn mạnh được, 1200 00:52:27,560 --> 00:52:30,590 tùy thuộc vào việc bạn đang sử dụng get hoặc bài dự thi. 1201 00:52:30,590 --> 00:52:32,950 Và nó chỉ sẽ đưa cho bạn một biến siêu toàn cầu, 1202 00:52:32,950 --> 00:52:37,254 do đó nếu bạn muốn nhận được vào tên mà người dùng gửi qua web 1203 00:52:37,254 --> 00:52:41,894 hình thức, bạn có nghĩa là chỉ cần nói tên của biến toàn cầu siêu, báo giá, 1204 00:52:41,894 --> 00:52:43,380 unquote, tên. 1205 00:52:43,380 --> 00:52:46,144 Và quote, thoải mái unquote, và báo giá, ký túc xá unquote. 1206 00:52:46,144 --> 00:52:48,810 Và chúng ta sẽ có thể làm được này và nhiều hơn nữa với PHP. 1207 00:52:48,810 --> 00:52:50,540 Và mặc dù đây là nháy mắt cơn lốc vào nó, 1208 00:52:50,540 --> 00:52:51,980 chúng ta sẽ đi sâu vào nhiều hơn nữa vào tuần tới. 1209 00:52:51,980 --> 00:52:54,247 Chúng tôi sẽ giới thiệu một cơ sở dữ liệu vì vậy mà bạn thực sự 1210 00:52:54,247 --> 00:52:56,816 sẽ bắt đầu thực hiện riêng based-- thương mại điện tử của bạn 1211 00:52:56,816 --> 00:52:59,150 như trang web trong thời gian chỉ một tuần. 1212 00:52:59,150 --> 00:53:02,750 Vì vậy, chúng ta sẽ thấy bạn thời gian tới, và hy vọng bạn có những tin nhắn văn bản. 1213 00:53:02,750 --> 00:53:05,450 Tạm biệt. 1214 00:53:05,450 --> 00:53:06,950 >> [MUSIC CHƠI] 1215 00:53:06,950 --> 00:53:11,450 1216 00:53:11,450 --> 00:53:12,950 >> [CỬA MỞ] 1217 00:53:12,950 --> 00:53:14,475 >> SPEAKER 2: Hey. 1218 00:53:14,475 --> 00:53:15,350 SPEAKER 3: Chuyện gì thế? 1219 00:53:15,350 --> 00:53:17,750 SPEAKER 2: Bạn đang làm gì? 1220 00:53:17,750 --> 00:53:19,850 SPEAKER 3: Làm việc trên một tập hợp vấn đề. 1221 00:53:19,850 --> 00:53:21,050 SPEAKER 2: Nice. 1222 00:53:21,050 --> 00:53:22,550 Đập tay. 1223 00:53:22,550 --> 00:53:23,150 >> [ĐẬP TAY] 1224 00:53:23,150 --> 00:53:25,584 >> Có gì are-- uh, anh đang làm gì ở đây? 1225 00:53:25,584 --> 00:53:26,750 SPEAKER 3: Chỉ cần treo ra. 1226 00:53:26,750 --> 00:53:28,134 Vừa trở về từ phòng tập thể dục. 1227 00:53:28,134 --> 00:53:30,050 Tôi không thể không nhận thấy khi chúng high-trao đổi nhanh với, 1228 00:53:30,050 --> 00:53:32,450 mà bạn đang có trong tay khá thô. 1229 00:53:32,450 --> 00:53:33,950 Bạn đi đến phòng tập thể dục? 1230 00:53:33,950 --> 00:53:35,150 >> SPEAKER 2: số 1231 00:53:35,150 --> 00:53:36,650 Không. 1232 00:53:36,650 --> 00:53:38,450 >> SPEAKER 3: Dude, bạn trông khá lớn. 1233 00:53:38,450 --> 00:53:45,950 Mà là xấu, bởi vì mọi người đều biết 8-ball là người đàn ông lớn trong khuôn viên trường. 1234 00:53:45,950 --> 00:53:48,050 Đập tay. 1235 00:53:48,050 --> 00:53:49,550 >> SPEAKER 2: Uh, không. 1236 00:53:49,550 --> 00:53:50,450 Không, tôi nghĩ rằng tôi là tốt. 1237 00:53:50,450 --> 00:53:52,300 Tôi nghĩ tôi là tốt. 1238 00:53:52,300 --> 00:53:54,097