1 00:00:00,000 --> 00:00:05,040 2 00:00:05,040 --> 00:00:08,440 >> SAM LEVATICH: Chào mừng bạn đến phần cho tuần này. 3 00:00:08,440 --> 00:00:10,040 Tôi không Andi. 4 00:00:10,040 --> 00:00:14,590 Andi bị ốm ngày này, và tôi đã được loại gọi là trong phút cuối cùng 5 00:00:14,590 --> 00:00:15,700 để tiếp nhận. 6 00:00:15,700 --> 00:00:20,920 Đó là mùa cúm, do đó hãy chắc chắn rằng bạn đang ở sạch sẽ, rửa tay, 7 00:00:20,920 --> 00:00:24,800 và ăn uống lành mạnh để bạn cũng vậy, không phải nằm liệt giường. 8 00:00:24,800 --> 00:00:26,870 >> Nhưng mà không có thêm ado, chúng ta hãy bắt đầu. 9 00:00:26,870 --> 00:00:29,970 Hôm nay, chúng ta sẽ nói chuyện về PHP một chút bit-- như thế nào 10 00:00:29,970 --> 00:00:33,900 PHP liên quan đến HTML, nó như thế nào liên quan đến CSS, và một số các web 11 00:00:33,900 --> 00:00:36,100 thứ bạn đã làm trên việc gần đây nhất. 12 00:00:36,100 --> 00:00:37,930 Chúng ta sẽ nói một chút chút về SQL 13 00:00:37,930 --> 00:00:41,360 và làm thế nào bạn có thể làm việc với cơ sở dữ liệu, mà là một thành phần khá quan trọng của P 14 00:00:41,360 --> 00:00:43,650 thiết 8-- P đặt 7. 15 00:00:43,650 --> 00:00:44,480 P đặt 7. 16 00:00:44,480 --> 00:00:48,400 >> Và sau đó chúng ta sẽ nói một chút chút về cách điều khiển xem làm việc 17 00:00:48,400 --> 00:00:54,640 và tại sao đó là một triết lý đằng sau một số các trang web hiện đại và thiết kế khác nhau. 18 00:00:54,640 --> 00:00:58,760 Khá nhiều rất nhiều loại ứng dụng và các ứng dụng bạn có thể xuất xưởng 19 00:00:58,760 --> 00:01:01,120 đang sử dụng mô hình này, view khung điều khiển, 20 00:01:01,120 --> 00:01:02,890 mà bạn sẽ sử dụng trong P đặt 7, vì vậy tôi sẽ 21 00:01:02,890 --> 00:01:05,220 nói một chút về lý do tại sao mà trở thành 22 00:01:05,220 --> 00:01:07,970 phổ biến, tại sao nó quan trọng và tốt đẹp cả. 23 00:01:07,970 --> 00:01:12,052 Và sau đó, tôi cũng sẽ chuyển sang một số lời khuyên về việc giải quyết P đặt 7. 24 00:01:12,052 --> 00:01:13,760 Và nếu chúng ta có thời gian còn lại ở cuối, 25 00:01:13,760 --> 00:01:17,320 chúng tôi thực sự có thể làm một số làm việc trên đó với nhau. 26 00:01:17,320 --> 00:01:20,380 >> Vì vậy, PHP. 27 00:01:20,380 --> 00:01:23,790 Trong thực tế, bạn có thể nhận thấy this-- bạn không thực sự phải đi sâu vào it-- 28 00:01:23,790 --> 00:01:27,880 nhưng P đặt 6 đã có một số PHP mã đó đã xảy ra. 29 00:01:27,880 --> 00:01:34,710 Và bởi vì PHP là một C-like ngôn ngữ, PHP, không giống như HTML và CSS, 30 00:01:34,710 --> 00:01:39,030 là một ngôn ngữ lập trình, trong khi HTML và CSS là tĩnh. 31 00:01:39,030 --> 00:01:44,050 Họ là ngôn ngữ đánh dấu đối phó với phong cách và bố trí trực quan. 32 00:01:44,050 --> 00:01:46,230 PHP là ảnh thật. 33 00:01:46,230 --> 00:01:51,590 >> PHP có vòng, nó có conditions-- tất cả những thứ đó là thú vị về C. 34 00:01:51,590 --> 00:01:56,190 Nó có một vài điều mà là một chút bit tốt hơn so với C, mà chúng ta sẽ thấy, 35 00:01:56,190 --> 00:01:59,760 nhưng tôi nghĩ rằng cách dễ nhất để nói chuyện chỉ về PHP là để bổ nhào vào. 36 00:01:59,760 --> 00:02:04,087 Vì vậy, tôi sẽ đi ngay vào IDE vào thời điểm này. 37 00:02:04,087 --> 00:02:06,170 Điều đầu tiên chúng ta sẽ để làm được thực sự nhìn 38 00:02:06,170 --> 00:02:10,169 một chút tại một số các Đoạn mã PHP là trong P đặt 6. 39 00:02:10,169 --> 00:02:13,600 Vì vậy, cách mà chúng ta làm that-- trước khi, cách mà chúng ta đã chạy 40 00:02:13,600 --> 00:02:18,550 các máy chủ cho các thiết bị là chúng tôi sẽ phải type-- 41 00:02:18,550 --> 00:02:21,750 hoặc là sử dụng thực hiện của bạn hoặc của nhân viên thực hiện 42 00:02:21,750 --> 00:02:27,059 của server.c bằng cách vào thư mục và chạy server.c với hoặc không có 43 00:02:27,059 --> 00:02:30,100 arguments-- vì vậy chỉ cần gọi nó trên các chủ của địa phương, mà là những gì bạn có thể 44 00:02:30,100 --> 00:02:31,849 đã làm hầu hết các time-- và sau đó ăn nó 45 00:02:31,849 --> 00:02:35,380 một directory-- với để sử dụng như là người chủ của nó 46 00:02:35,380 --> 00:02:38,310 nơi mà các trang web sẽ được chạy, về cơ bản. 47 00:02:38,310 --> 00:02:42,180 >> Tuần này cho P đặt 7, như tuyệt vời như là mã của chúng tôi cho server.c 48 00:02:42,180 --> 00:02:47,580 là, có những người đã viết những điều tốt đẹp hơn ở CS50 49 00:02:47,580 --> 00:02:49,630 rằng có một chút nhiều chức năng, 50 00:02:49,630 --> 00:02:52,920 một chương trình máy chủ đó là khả năng đối phó với nhiều hơn một chút 51 00:02:52,920 --> 00:02:56,350 của những phức tạp mà chúng ta sẽ nhìn thấy trong cả hai P đặt 7 và P đặt 8. 52 00:02:56,350 --> 00:03:01,410 Và cách mà bạn bắt đầu lên máy chủ là bởi chỉ cần gõ "apache50." 53 00:03:01,410 --> 00:03:03,960 >> Và trước khi bạn làm bất cứ điều gì, bạn muốn chắc chắn 54 00:03:03,960 --> 00:03:06,070 Apache 50 không phải là đã chạy như nó là 55 00:03:06,070 --> 00:03:08,130 trên máy tính của tôi, mà tôi đã làm để kiểm tra nó. 56 00:03:08,130 --> 00:03:10,320 Và bạn làm điều đó bằng cách gọi apache50. 57 00:03:10,320 --> 00:03:14,070 Dừng lại, và bạn sẽ thấy rằng nó dừng các máy chủ web, nếu bạn có thể tìm ở đó 58 00:03:14,070 --> 00:03:16,340 ở dưới cùng của cửa sổ thiết bị đầu cuối. 59 00:03:16,340 --> 00:03:21,090 Và sau đó chỉ cần để bắt đầu, chúng tôi sẽ gọi, "apache50 bắt đầu." 60 00:03:21,090 --> 00:03:23,150 Và sau đó chúng ta sẽ để nuôi nó một thư mục. 61 00:03:23,150 --> 00:03:26,950 >> Bây giờ, bởi vì chúng tôi muốn nhìn tại một số các thiết lập P 6 mã 62 00:03:26,950 --> 00:03:32,850 mà chúng tôi đã thực hiện, tôi thực sự sao chép một chút của P 63 00:03:32,850 --> 00:03:37,090 thiết lập 6 mã vào thư mục riêng của tôi, mà bạn có thể nhìn thấy trên bên trái có. 64 00:03:37,090 --> 00:03:40,170 Nó được gọi là "SECTION8" trong tất cả các chữ in hoa 65 00:03:40,170 --> 00:03:44,510 bởi vì anh chỉ vui mừng là live-stream ngày hôm nay. 66 00:03:44,510 --> 00:03:47,330 >> Vì vậy, nếu chúng ta chạy này, nó phải tất cả làm việc khá hiệu quả. 67 00:03:47,330 --> 00:03:52,350 Nó nói, OK, trang web của chúng tôi bây giờ là có sẵn tại địa chỉ của IDE, 68 00:03:52,350 --> 00:03:57,710 Về cơ bản, đó là những gì bạn đang sử dụng chính xác như nó đã được thiết lập trong P 7-- P đặt 6. 69 00:03:57,710 --> 00:04:00,899 Tất cả các chỉ số của tôi là một trong những chỉ số ngày hôm nay. 70 00:04:00,899 --> 00:04:02,940 Vì vậy, chúng ta có thể đi đến đó địa chỉ, nếu bạn sẽ nhớ, 71 00:04:02,940 --> 00:04:05,710 bởi chỉ cần nhấp chuột chút này nút ở phía trên bên phải. 72 00:04:05,710 --> 00:04:14,200 >> Và bạn sẽ nhớ lại mã này, mà xảy ra khi bạn đi vào hello.php. 73 00:04:14,200 --> 00:04:18,000 Và những gì các mã được thiết kế để làm là khi bạn gõ vào một tên 74 00:04:18,000 --> 00:04:20,550 here-- nếu bạn nói Sam bởi vì đó là name-- của tôi 75 00:04:20,550 --> 00:04:23,620 và tôi nhấn Say Hello, khi chúng tôi đã đi đến trang tiếp theo, 76 00:04:23,620 --> 00:04:25,270 Tên lẽ ra phải được hiển thị. 77 00:04:25,270 --> 00:04:28,550 Nó sẽ nói, "Xin chào, Sam" hay "Xin chào," bất cứ tên bạn 78 00:04:28,550 --> 00:04:32,470 đưa vào nó mặc dù chúng tôi đã đi đến một trang web hoàn toàn mới. 79 00:04:32,470 --> 00:04:36,610 >> Và đây là các loại điều PHP có thể làm cho bạn. 80 00:04:36,610 --> 00:04:42,840 PHP có khả năng truyền dữ liệu giữa hai trang web. 81 00:04:42,840 --> 00:04:44,390 Đây là một trang hoàn toàn khác nhau. 82 00:04:44,390 --> 00:04:46,990 Bạn sẽ thấy tiêu đề là "hello" ở đây. 83 00:04:46,990 --> 00:04:49,080 Trên thực tế, họ có cùng tên, nhưng tôi 84 00:04:49,080 --> 00:04:52,560 hứa rằng họ là web khác nhau trang nếu chúng ta nhìn vào mã nguồn. 85 00:04:52,560 --> 00:04:55,890 Và bạn có thể vượt qua các dữ liệu đó là nhập trong lĩnh vực văn bản này, 86 00:04:55,890 --> 00:04:59,830 bạn gửi nó đến tiếp theo trang đang được gọi lên, 87 00:04:59,830 --> 00:05:02,490 và sau đó dữ liệu có khả năng được có trong hình thức hiện tại của nó. 88 00:05:02,490 --> 00:05:04,810 >> Bây giờ chúng ta chưa thực hiện này chính mình, mà 89 00:05:04,810 --> 00:05:08,710 là những gì chúng ta sẽ làm ngay bây giờ để loại có được một hương vị như thế nào cho PHP làm việc, 90 00:05:08,710 --> 00:05:15,070 nhưng ý tưởng chính ở đây là bạn có thể PHP-- loại nghĩ về nó như một chức năng. 91 00:05:15,070 --> 00:05:18,570 Cái gì mà PHP có thể cho bạn làm là nó có thể mất các thông số 92 00:05:18,570 --> 00:05:24,710 mà bạn đã nhập vào một trang HTML thông qua việc sử dụng PHP và các hình thức, 93 00:05:24,710 --> 00:05:29,960 và nó có thể vượt qua những thông số như đến trang tiếp theo mà nó tải lên. 94 00:05:29,960 --> 00:05:35,110 >> Trong trường hợp này, chúng tôi đang tải lên này trang với các nút "Say hello". 95 00:05:35,110 --> 00:05:38,960 Nhưng bây giờ, tôi thực sự xóa một số mã 96 00:05:38,960 --> 00:05:44,850 trong hello.php đó đã được điều hành mà thực sự đã được hiển thị "hello, 97 00:05:44,850 --> 00:05:49,680 thế giới "hay" hello, Sam "hoặc "hello", bất cứ điều gì chỉ là đầu vào. 98 00:05:49,680 --> 00:05:53,620 Vì vậy, cho ngay bây giờ, chúng tôi sẽ làm điều đó, về cơ bản. 99 00:05:53,620 --> 00:05:56,570 Chúng tôi đang đi để tái tạo đó và cũng có thêm một số chức năng hơn, 100 00:05:56,570 --> 00:06:00,210 làm một chút nhiều hơn với nó, xem PHP gì là thực sự có khả năng. 101 00:06:00,210 --> 00:06:04,870 >> Vì vậy, đầu tiên, hãy nói về tập tin này, hello.php. 102 00:06:04,870 --> 00:06:07,440 Vì vậy, nếu chúng ta phóng to một ít bit-- và bây giờ tôi 103 00:06:07,440 --> 00:06:10,520 loại cố gắng để di chuyển tất cả đường around-- có chúng tôi đi. 104 00:06:10,520 --> 00:06:14,220 Bạn sẽ thấy nó được gọi là hello.php, nhưng cú pháp của nó 105 00:06:14,220 --> 00:06:16,880 trông giống như một tập tin HTML. 106 00:06:16,880 --> 00:06:20,380 Điều này là do PHP thực tế trong tập tin này 107 00:06:20,380 --> 00:06:25,220 là tất cả bị mắc kẹt giữa các Câu hỏi khối đánh dấu caret. 108 00:06:25,220 --> 00:06:28,610 Tất cả mọi thứ ngay tại đây được coi là mã PHP. 109 00:06:28,610 --> 00:06:32,040 >> Và bạn sẽ nhận thấy rằng khi tôi đã làm một bình luận, 110 00:06:32,040 --> 00:06:35,320 bạn sẽ thấy quen thuộc hai dấu gạch chéo. 111 00:06:35,320 --> 00:06:38,440 Và nếu bạn sẽ nhớ lại, trong HTML, nếu tôi gõ một bình luận, 112 00:06:38,440 --> 00:06:42,540 nó có vẻ gì đó gần gũi hơn với này, đó là một nhận xét trong HTML. 113 00:06:42,540 --> 00:06:46,570 Vì vậy, thực sự mọi thứ giữa hai dấu ngoặc nhọn 114 00:06:46,570 --> 00:06:50,060 Hiện tại là code PHP, mà được phản ánh trong thực tế 115 00:06:50,060 --> 00:06:53,270 mà biểu tượng comment chút này là biến thành một nhận xét. 116 00:06:53,270 --> 00:06:58,420 >> Vì vậy, mỗi khi bạn viết mã PHP, thậm chí nếu không có mã HTML bên ngoài của nó, 117 00:06:58,420 --> 00:07:02,720 nó luôn luôn có được kèm theo trong các dấu ngoặc nhọn 118 00:07:02,720 --> 00:07:04,080 với dấu hỏi. 119 00:07:04,080 --> 00:07:08,260 Bạn có thể sắp xếp các suy nghĩ về it-- thế nào tất cả của mã mà chạy trong chương trình C của bạn 120 00:07:08,260 --> 00:07:13,950 nó được đặt trong một int main, void, ngoặc móc, cuối cùng tuyên bố ngoặc móc. 121 00:07:13,950 --> 00:07:17,100 Và bạn sẽ thấy dấu ngoặc nhọn trong PHP, quá, nhưng đây là loại 122 00:07:17,100 --> 00:07:20,490 như phương pháp chính của PHP. 123 00:07:20,490 --> 00:07:25,630 >> Vì vậy, bây giờ, làm thế nào để chúng ta làm bất cứ điều gì trong PHP? 124 00:07:25,630 --> 00:07:29,190 Bây giờ, PHP là một lập trình ngôn ngữ đó là rất C-như, 125 00:07:29,190 --> 00:07:30,970 nhưng nó hoạt động trên web. 126 00:07:30,970 --> 00:07:33,270 Vì vậy, có một điều mà bạn sẽ immediately-- một 127 00:07:33,270 --> 00:07:38,130 trong những điều đầu tiên mà bạn thực sự đã làm với C đã được bạn in ra công cụ, phải không? 128 00:07:38,130 --> 00:07:42,290 Vì vậy, trong C, chúng tôi đã làm điều đó với một hàm printf. 129 00:07:42,290 --> 00:07:46,430 Chúng tôi đã cho nó một chuỗi, có lẽ với một dòng mới, 130 00:07:46,430 --> 00:07:49,850 và sau đó chúng tôi chấm dứt nó với một dấu chấm phẩy. 131 00:07:49,850 --> 00:07:53,790 >> Vì vậy, cách mà chúng ta sẽ làm điều đó trong PHP-- vì nó không hoàn toàn printf. 132 00:07:53,790 --> 00:07:55,940 Đó là một chút của cú pháp khác nhau. 133 00:07:55,940 --> 00:08:02,580 Cách mà chúng tôi in ra những thứ trong PHP là chúng ta nói, "echo hello" 134 00:08:02,580 --> 00:08:04,180 hoặc "echo" bất kỳ từ nào. 135 00:08:04,180 --> 00:08:09,830 Và điều đó có tác dụng làm printf với một chuỗi "hello". 136 00:08:09,830 --> 00:08:11,990 Và nó thêm dòng mới cho nó. 137 00:08:11,990 --> 00:08:16,000 >> Vì vậy, hãy làm ngay bây giờ của sure-- Tôi sẽ thu nhỏ lại một chút bit-- 138 00:08:16,000 --> 00:08:18,250 hãy chắc chắn rằng mã được làm việc 139 00:08:18,250 --> 00:08:21,030 bởi vì có rất might cũng là một lỗi trong mã này 140 00:08:21,030 --> 00:08:22,880 rằng chúng ta sẽ phải giải quyết. 141 00:08:22,880 --> 00:08:25,860 Vì vậy, các máy chủ đang chạy. 142 00:08:25,860 --> 00:08:30,630 Vì vậy, nếu chúng ta di chuyển xuống phía dưới, yup, máy chủ vẫn chạy. 143 00:08:30,630 --> 00:08:34,510 Vì vậy, nếu chúng ta chỉ cần gõ vào đây chút quyền here-- 144 00:08:34,510 --> 00:08:37,620 welcome-- chúng ta nên get-- tuyệt vời. 145 00:08:37,620 --> 00:08:39,930 >> Chúng tôi vẫn đang có quen thuộc "Say hello" đối thoại, 146 00:08:39,930 --> 00:08:45,750 nhưng khi tôi gõ "hi", chúng ta sẽ thấy rằng các văn bản "hello" đã thực sự 147 00:08:45,750 --> 00:08:50,080 in ra, đó là chính xác như như mong đợi bởi tiếng vang trong PHP 148 00:08:50,080 --> 00:08:53,190 là giống như một tuyên bố printf. 149 00:08:53,190 --> 00:09:01,410 Vì vậy, trở lại mã, làm thế nào trong P 6 đã thiết lập mã phân phối bạn được cung cấp 150 00:09:01,410 --> 00:09:05,920 làm cho nó để PHP sẽ đầu ra điều mà bạn 151 00:09:05,920 --> 00:09:07,920 gõ vào trên màn hình trước? 152 00:09:07,920 --> 00:09:10,350 >> Và để loại kiểm tra tại sao điều đó xảy ra, chúng tôi 153 00:09:10,350 --> 00:09:15,510 sẽ đi vào index.html, mà là các tập tin ban đầu, các tập tin đó 154 00:09:15,510 --> 00:09:18,710 hiện lên trên màn hình này với nút "Say hello". 155 00:09:18,710 --> 00:09:20,950 Bạn nhận thấy rằng có tất cả những thứ cổ điển 156 00:09:20,950 --> 00:09:26,910 chúng tôi đã mong đợi từ HTML chẳng hạn như những điều này, các thẻ kèm 157 00:09:26,910 --> 00:09:31,080 trong dấu ngoặc nhọn, giống như PHP nhưng không có dấu hỏi, 158 00:09:31,080 --> 00:09:34,650 mà chỉ ra một điều đặc biệt để HTML. 159 00:09:34,650 --> 00:09:36,895 Chúng tôi có tiêu đề, đó là "hello". 160 00:09:36,895 --> 00:09:41,010 Và bạn sẽ nhận thấy rằng khi chúng ta đã thấy, tiêu đề là "hello" trong cả hai trường hợp. 161 00:09:41,010 --> 00:09:43,260 Hãy thay đổi này để "nói" chỉ vì vậy chúng tôi 162 00:09:43,260 --> 00:09:48,170 có thể phân biệt bản thân chúng ta ở đâu. 163 00:09:48,170 --> 00:09:49,600 >> Nhưng chúng tôi đã có một cơ thể. 164 00:09:49,600 --> 00:09:52,690 Và sau đó các bit thú vị, bit mà xuất hiện trong HTML, 165 00:09:52,690 --> 00:09:54,530 là yếu tố hình thức này. 166 00:09:54,530 --> 00:09:56,370 Và vì vậy chúng tôi đã có một hình thức. 167 00:09:56,370 --> 00:09:58,330 Và đây chính là chìa khóa. 168 00:09:58,330 --> 00:10:00,530 Đây là cách chúng ta đang làm việc với PHP. 169 00:10:00,530 --> 00:10:05,790 Các thông số hoạt động của hình thức nói rằng hello.php 170 00:10:05,790 --> 00:10:09,310 là những gì chúng ta sẽ gửi các giá trị trong mẫu này để. 171 00:10:09,310 --> 00:10:13,830 Đây là nơi mà chúng tôi đang đi qua các thông số, vậy để nói chuyện. 172 00:10:13,830 --> 00:10:18,680 >> Bạn sẽ nhận thấy điều khác ở đây là phương pháp này là "có". 173 00:10:18,680 --> 00:10:24,450 Có hai chính phương pháp mà sẽ 174 00:10:24,450 --> 00:10:28,750 được sử dụng PHP để truyền dữ liệu giữa các trang web websites--, 175 00:10:28,750 --> 00:10:30,500 rather-- trong nhiệm vụ này. 176 00:10:30,500 --> 00:10:34,070 Và các phương pháp đó là "được" và "hậu". 177 00:10:34,070 --> 00:10:37,010 Có một số tinh tế sự khác nhau giữa GET và bài 178 00:10:37,010 --> 00:10:40,520 rằng chúng ta sẽ có được into-- chúng tôi sẽ "được" vào, nếu bạn sẽ. 179 00:10:40,520 --> 00:10:44,030 >> Nhưng đối với tất cả các tính mục đích, có được và bài 180 00:10:44,030 --> 00:10:47,120 cả hai đều chỉ cách đó bạn vượt qua các thông số 181 00:10:47,120 --> 00:10:49,500 với hành hơi khác nhau. 182 00:10:49,500 --> 00:10:53,500 Để bây giờ, chúng ta sẽ sử dụng được bởi vì có được là những gì được sử dụng ban đầu 183 00:10:53,500 --> 00:10:57,340 trong file PHP của P đặt 6. 184 00:10:57,340 --> 00:11:00,850 Và trên thực tế, nếu chúng ta đi vào và nhìn trước khi chúng tôi đã chỉnh sửa bất cứ điều gì khác, 185 00:11:00,850 --> 00:11:03,090 Tôi sẽ nói hi với: Tên của bạn là gì? 186 00:11:03,090 --> 00:11:03,812 >> Đung Elliot. 187 00:11:03,812 --> 00:11:04,770 SAM LEVATICH: Oh, chúa ơi. 188 00:11:04,770 --> 00:11:05,600 Tôi không biết cách đánh vần đó. 189 00:11:05,600 --> 00:11:06,766 Bạn có thể đánh vần đó cho tôi? 190 00:11:06,766 --> 00:11:08,710 Đung E-L-L-I-O-T. 191 00:11:08,710 --> 00:11:09,720 >> SAM LEVATICH: I-O-T? 192 00:11:09,720 --> 00:11:10,440 >> Đung Yeah. 193 00:11:10,440 --> 00:11:10,960 >> SAM LEVATICH: Perfect. 194 00:11:10,960 --> 00:11:11,210 ĐƯỢC. 195 00:11:11,210 --> 00:11:12,751 Tôi đoán tôi đã biết cách đánh vần đó. 196 00:11:12,751 --> 00:11:13,510 Xin lôi vê điêu đo. 197 00:11:13,510 --> 00:11:16,560 Nhưng nếu chúng ta nói "Say hello," đó không phải nó sẽ không hiển thị trên màn hình 198 00:11:16,560 --> 00:11:18,476 nhưng vì chúng tôi sửa đổi mã một chút. 199 00:11:18,476 --> 00:11:21,290 Nhưng nếu chúng ta "Say hello" - OK, vì vậy "hello" là ở đây. 200 00:11:21,290 --> 00:11:24,137 Nhưng nếu chúng ta hãy gần gũi hơn nhìn vào URL của chính nó, 201 00:11:24,137 --> 00:11:26,220 chúng ta sẽ thấy rằng nó kết thúc với hello.php? name = Elliot. 202 00:11:26,220 --> 00:11:30,980 203 00:11:30,980 --> 00:11:37,180 >> Vì vậy, đây là một cách giao tiếp với các trang web tiếp theo 204 00:11:37,180 --> 00:11:39,240 các tham số mà chúng tôi đã được thông qua. 205 00:11:39,240 --> 00:11:40,870 Chúng tôi biết tên = Elliot. 206 00:11:40,870 --> 00:11:46,290 Và đó là cách cuối cùng là thiết lập P 6 truy cập các biến mà chúng tôi đi qua trong 207 00:11:46,290 --> 00:11:47,520 thông qua các hình thức. 208 00:11:47,520 --> 00:11:51,470 Và đây là cái gì đó đặc biệt là một yêu cầu get. 209 00:11:51,470 --> 00:11:57,480 A nhận được yêu cầu làm cho các thông số được biết đến trong các URL của trang web. 210 00:11:57,480 --> 00:12:01,190 >> Và bạn sẽ nhớ lại, quá, trong P đặt 6 mà bạn 211 00:12:01,190 --> 00:12:04,450 đã phải viết một chức năng mà bị xử lý với thực tế 212 00:12:04,450 --> 00:12:09,700 rằng chuỗi truy vấn này có thể tồn tại sau khi một tập tin. 213 00:12:09,700 --> 00:12:14,684 Có thể là một dấu hỏi sau bởi về cơ bản bất kỳ số ký tự. 214 00:12:14,684 --> 00:12:16,350 Và đó là chính xác những gì đang xảy ra ở đây. 215 00:12:16,350 --> 00:12:21,280 Và lý do bạn đã phân tích rằng trong thực hiện của bạn server.c trong P 216 00:12:21,280 --> 00:12:27,570 thiết lập 6 là để bạn có thể nói mã PHP mà tên = Elliot. 217 00:12:27,570 --> 00:12:30,460 Bạn cần thiết để có thể phân tích rằng trong số các URL 218 00:12:30,460 --> 00:12:35,900 để các tập tin PHP trong câu hỏi biết những gì nó đã được xử lý. 219 00:12:35,900 --> 00:12:39,350 >> Vì vậy, hy vọng điều này sẽ cho động lực để server.c 220 00:12:39,350 --> 00:12:43,900 bây giờ chúng ta đang di chuyển trên bên ngoài của C vào PHP. 221 00:12:43,900 --> 00:12:48,240 Vì vậy, hãy thực sự tập trung vào việc tiếp cận các thứ qua một yêu cầu get nay 222 00:12:48,240 --> 00:12:48,880 tại điểm này. 223 00:12:48,880 --> 00:12:50,157 Tôi sẽ tiết kiệm này. 224 00:12:50,157 --> 00:12:51,240 Chúng tôi đã không thay đổi bất cứ điều gì. 225 00:12:51,240 --> 00:12:56,080 Dường như chúng tôi đã có một lĩnh vực đầu vào. 226 00:12:56,080 --> 00:12:58,550 >> Chúng tôi đang thiết lập một số thuộc tính, như chúng ta có thể làm một HTML. 227 00:12:58,550 --> 00:12:59,550 Đây là những điều đơn giản. 228 00:12:59,550 --> 00:13:00,580 Chúng ta không cần những. 229 00:13:00,580 --> 00:13:03,750 Nhưng chúng tôi đã có autocomplete tắt, mà cơ bản says-- bạn biết, 230 00:13:03,750 --> 00:13:05,710 khi bạn gõ những thứ vào web, đôi khi 231 00:13:05,710 --> 00:13:07,355 nó sẽ cố gắng để điền vào đó cho bạn. 232 00:13:07,355 --> 00:13:08,230 Vì vậy, đó là một điều tốt đẹp. 233 00:13:08,230 --> 00:13:11,700 Chúng tôi muốn tắt nó cho mục đích này. 234 00:13:11,700 --> 00:13:13,970 Đó là một quyết định CS50. 235 00:13:13,970 --> 00:13:15,640 Vì vậy, chúng ta có thể xóa nếu chúng ta muốn. 236 00:13:15,640 --> 00:13:19,510 >> Lấy nét tự động chỉ dính con trỏ trong các hình thức đúng ngay từ đầu. 237 00:13:19,510 --> 00:13:21,060 Một lần nữa, không phải là quá quan trọng. 238 00:13:21,060 --> 00:13:26,220 >> Nhưng name = "name" - đó là một chút khó khăn bởi vì tên của nó và tên. 239 00:13:26,220 --> 00:13:28,730 Nhưng chúng ta có thể đã thay đổi này đến cái gì khác. 240 00:13:28,730 --> 00:13:30,563 Và trên thực tế, đó là những gì chúng tôi sẽ làm ngay bây giờ. 241 00:13:30,563 --> 00:13:34,830 Chúng tôi sẽ nói "con người", mà là loại giống như tên 242 00:13:34,830 --> 00:13:36,790 nếu một người được xác định bởi tên của họ. 243 00:13:36,790 --> 00:13:41,480 >> Vì vậy, hãy đóng cửa này, mở lại lên trang web của chúng tôi 244 00:13:41,480 --> 00:13:46,110 vì máy chủ của chúng tôi vẫn còn đang chạy Apache 50, và chúng tôi sẽ nói, xin chào, đây là 245 00:13:46,110 --> 00:13:47,200 Elliot lại. 246 00:13:47,200 --> 00:13:48,460 Tại sao không? 247 00:13:48,460 --> 00:13:49,220 Chào bạn. 248 00:13:49,220 --> 00:13:52,880 Và nếu chúng ta lên đây, chúng ta sẽ thấy sau đó thay vì tên = Elliot, 249 00:13:52,880 --> 00:13:55,200 nó nói người = Elliot. 250 00:13:55,200 --> 00:14:00,060 Và đó là một kết quả trực tiếp của sự thật rằng chúng ta chỉ cần thay đổi tên = "người". 251 00:14:00,060 --> 00:14:06,840 >> Vì vậy, trong một yếu tố đầu vào của một hình thức HTML, trường tên 252 00:14:06,840 --> 00:14:10,590 là định danh cho tham số đó là được thông qua. 253 00:14:10,590 --> 00:14:14,250 Nó giống như nếu bạn đang tạo ra một chức năng "thêm" diễn trong hai số nguyên 254 00:14:14,250 --> 00:14:16,670 và bạn nói int a và int b. 255 00:14:16,670 --> 00:14:22,680 Đó sẽ là tên một, và nếu bạn muốn một hình thức khác, mà 256 00:14:22,680 --> 00:14:27,800 chúng ta có thể làm được chỉ bằng cách sao chép và dán, sau đó chúng ta sẽ có tên b. 257 00:14:27,800 --> 00:14:31,030 >> Vì vậy, bây giờ chúng ta sẽ có hai thông số đang được truyền qua 258 00:14:31,030 --> 00:14:36,970 đến được với các website-- tiếp theo các trang web tiếp theo, hello.php. 259 00:14:36,970 --> 00:14:39,770 Và chúng tôi thực sự có thể nhìn thấy rằng một lần nữa nếu chúng ta muốn. 260 00:14:39,770 --> 00:14:44,830 Đây là cách dễ nhất để đối phó với mã web trong IDE, về cơ bản. 261 00:14:44,830 --> 00:14:47,940 Bạn bắt đầu lên máy chủ, có được nó chạy, và sau đó mỗi khi bạn 262 00:14:47,940 --> 00:14:50,649 thực hiện một số thay đổi, chỉ cần đóng tập tin đó chỉ để được an toàn. 263 00:14:50,649 --> 00:14:52,440 Nhấn nút quay lại là một chút khôn lanh 264 00:14:52,440 --> 00:14:55,800 bởi vì nó có thể tải một đầu phiên bản, không phải là một cập nhật nhất. 265 00:14:55,800 --> 00:14:59,200 >> Và sau đó bạn chỉ cần nhấp chuột của bạn nút một lần nữa, pop up-- đúng oh, 266 00:14:59,200 --> 00:15:00,510 và hiện nay có hai dạng. 267 00:15:00,510 --> 00:15:10,440 Và như vậy, nếu chúng ta gõ một điều vào mỗi one-- "jason Hirshhorn," cho instance-- 268 00:15:10,440 --> 00:15:11,590 chúng ta nói xin chào. 269 00:15:11,590 --> 00:15:12,840 Chúng tôi nhìn lên các thông số của chúng tôi. 270 00:15:12,840 --> 00:15:18,910 Dường như chúng tôi đã có, như Dự kiến, a = jason và b = Hirshhorn, 271 00:15:18,910 --> 00:15:23,760 đại diện cho hai tham số rằng chúng tôi thông qua chức năng này. 272 00:15:23,760 --> 00:15:27,900 >> Vì vậy, bây giờ chúng ta thực sự có thể thực hiện chức năng đó mà chúng ta 273 00:15:27,900 --> 00:15:30,840 đã có trong P đặt 6. 274 00:15:30,840 --> 00:15:32,490 Vì vậy, ngay bây giờ chúng tôi chỉ vang vọng hello. 275 00:15:32,490 --> 00:15:34,310 Và đó không phải là rất hữu ích. 276 00:15:34,310 --> 00:15:38,530 Chúng tôi muốn để echo một số biến đã được thông qua với chúng tôi. 277 00:15:38,530 --> 00:15:40,320 Và chúng ta biết tên của biến này. 278 00:15:40,320 --> 00:15:41,770 Chúng tôi có một và chúng tôi có b. 279 00:15:41,770 --> 00:15:43,500 Vì vậy, chúng ta có thể chọn để echo một trong hai. 280 00:15:43,500 --> 00:15:45,470 >> Nhưng làm thế nào để chúng ta truy cập vào nó? 281 00:15:45,470 --> 00:15:48,820 Vâng, có một số biến toàn cầu trong PHP. 282 00:15:48,820 --> 00:15:51,240 Và tôi sẽ viết chúng trong ý kiến ​​ở đây. 283 00:15:51,240 --> 00:15:59,910 Hai cái quan trọng nhất là get và gửi cho mục đích của chúng ngay bây giờ. 284 00:15:59,910 --> 00:16:05,350 Đây là những mảng hoặc, về mặt kỹ thuật, các từ điển 285 00:16:05,350 --> 00:16:10,540 nơi biến của chúng tôi rằng chúng tôi đi qua các trang web trực tiếp. 286 00:16:10,540 --> 00:16:14,520 Và chúng ta sẽ sớm thấy làm thế nào để sử dụng chúng. 287 00:16:14,520 --> 00:16:19,720 >> Một lưu ý ngắn gọn về mã PHP và một số chi tiết cụ thể của it-- trong C, 288 00:16:19,720 --> 00:16:23,260 để khai báo một biến hoặc sử dụng các biến, 289 00:16:23,260 --> 00:16:24,570 đầu tiên bạn phải khai báo. 290 00:16:24,570 --> 00:16:30,860 Và những gì bạn phải làm khi bạn tuyên bố họ đã nói một int hoặc char b. 291 00:16:30,860 --> 00:16:35,630 Bạn phải khai báo các loại của các các biến trước khi bạn tạo ra nó. 292 00:16:35,630 --> 00:16:38,800 PHP-- bạn không cần phải làm được điều đó. 293 00:16:38,800 --> 00:16:42,522 PHP không yêu cầu kiểu của biến. 294 00:16:42,522 --> 00:16:44,480 Và cách mà bạn tạo ra một thay variable-- 295 00:16:44,480 --> 00:16:49,930 vì nói int, char, string-- mà thực sự là char *, như chúng ta know-- 296 00:16:49,930 --> 00:16:52,180 hơn là làm tất cả rằng, bởi vì mọi thứ 297 00:16:52,180 --> 00:16:54,620 là cùng loại, typeless, chúng ta có thể chỉ 298 00:16:54,620 --> 00:16:59,210 sử dụng một ký tự, là dấu $. 299 00:16:59,210 --> 00:17:03,700 Và bạn sẽ thấy nó đã được popping lên, mọi thứ autocomplete chút. 300 00:17:03,700 --> 00:17:11,380 Và nó nói rằng _GET và _POST là hai lựa chọn mà tôi có sẵn 301 00:17:11,380 --> 00:17:11,900 tới tôi. 302 00:17:11,900 --> 00:17:16,430 Một số những thứ khác là biến toàn cầu khác trong PHP 303 00:17:16,430 --> 00:17:18,430 là bạn sẽ được sử dụng trên quá trình thiết lập P 7. 304 00:17:18,430 --> 00:17:20,569 Còn bây giờ chúng ta sẽ tập trung vào get và bài. 305 00:17:20,569 --> 00:17:22,910 Nhưng đây là một hữu ích điều mà các IDE hiện 306 00:17:22,910 --> 00:17:24,980 mà một khi bạn đã gõ trong đó ký hiệu đô la, 307 00:17:24,980 --> 00:17:28,760 nó sẽ bắt đầu điền vào các biến toàn cầu hoặc các biến mà bạn đã xác định. 308 00:17:28,760 --> 00:17:34,360 >> Vì vậy, nếu bạn muốn xác định một biến gọi là "chuỗi" 309 00:17:34,360 --> 00:17:38,290 bạn chỉ có thể thiết lập nó bằng "hi". 310 00:17:38,290 --> 00:17:40,100 Và đó là cơ bản đơn giản như vậy. 311 00:17:40,100 --> 00:17:44,720 Và sau đó chúng ta có thể làm một cái gì đó giống như "echo $ string." 312 00:17:44,720 --> 00:17:48,524 Các IDE nên ném một số lỗi nếu tôi làm điều gì sai trái, 313 00:17:48,524 --> 00:17:50,190 vì vậy hy vọng tôi đang làm tất cả mọi thứ. 314 00:17:50,190 --> 00:17:52,060 Nhưng lỗi luôn luôn làm nảy sinh. 315 00:17:52,060 --> 00:17:56,670 >> Một điều khó khăn về PHP là nó không được biên dịch. 316 00:17:56,670 --> 00:18:00,640 Vì vậy, với chương trình C, bạn sẽ làm gì các thói quen hàng ngày of-- về cơ bản, 317 00:18:00,640 --> 00:18:02,710 bạn sẽ thực hiện chỉnh sửa để mã của bạn, bạn muốn lưu nó, 318 00:18:02,710 --> 00:18:04,460 và sau đó bạn sẽ làm cho nó, nơi mà make là 319 00:18:04,460 --> 00:18:08,830 các bước đó được gọi là trình biên dịch, Clang, để làm cho mã của bạn, văn bản này 320 00:18:08,830 --> 00:18:10,570 nộp, thành một file thực thi. 321 00:18:10,570 --> 00:18:15,550 PHP là C-như thế, nhưng nó thực hiện trên bay của trình duyệt web của bạn. 322 00:18:15,550 --> 00:18:17,640 Vì vậy, không có cách nào để biết. 323 00:18:17,640 --> 00:18:19,790 >> Thực hiện sẽ ném những lỗi hữu ích, phải không? 324 00:18:19,790 --> 00:18:22,190 Nó sẽ như thế nào, bạn không khai báo biến này 325 00:18:22,190 --> 00:18:23,320 trước khi bạn cố gắng sử dụng nó. 326 00:18:23,320 --> 00:18:29,120 Bạn đã làm tất cả segfault stuff-- xấu này, segfault, tất cả những loại lần vui vẻ 327 00:18:29,120 --> 00:18:31,000 mà đến với make. 328 00:18:31,000 --> 00:18:33,920 PHP là một con dao hai lưỡi bởi vì bạn sẽ không có được những sai sót, 329 00:18:33,920 --> 00:18:37,770 nhưng điều đó cũng có nghĩa là bạn sẽ không biết thực sự những gì đang xảy ra với chương trình của bạn 330 00:18:37,770 --> 00:18:39,840 nếu bạn chỉ cần chạy nó và nó không làm việc. 331 00:18:39,840 --> 00:18:45,130 Nhưng các trình gỡ lỗi nên chỉ ra một số ít những điều hy vọng hữu ích 332 00:18:45,130 --> 00:18:47,950 cú pháp mà bạn có thể sửa chữa. 333 00:18:47,950 --> 00:18:52,850 >> Vì vậy, bây giờ nếu chúng ta đi qua đối với: nói, chúng ta hãy đóng đó. 334 00:18:52,850 --> 00:18:54,522 Mở lại. 335 00:18:54,522 --> 00:18:55,480 Và chúng tôi trở lại đây. 336 00:18:55,480 --> 00:18:57,210 Vì vậy, chúng tôi đã có một biến và một biến b. 337 00:18:57,210 --> 00:18:58,626 Và điều này sẽ không thành vấn đề cuối cùng. 338 00:18:58,626 --> 00:19:01,850 Chúng tôi sẽ gọi họ h và g không có lý do cụ thể. 339 00:19:01,850 --> 00:19:03,120 >> Và chúng ta nói xin chào. 340 00:19:03,120 --> 00:19:07,480 Bây giờ có vẻ như chuỗi của chúng tôi "hi" thực sự là in ấn. 341 00:19:07,480 --> 00:19:10,460 Chúng tôi tạo ra một biến gọi là "chuỗi", thiết lập nó bằng "hi". 342 00:19:10,460 --> 00:19:15,520 Chú ý rằng chúng ta không phải làm malloc hoặc thực hiện một mảng ký tự. 343 00:19:15,520 --> 00:19:19,110 >> Trong PHP, vì biến là typeless, một chuỗi 344 00:19:19,110 --> 00:19:22,230 là giống như một char cho tất cả ý nghĩa và mục đích. 345 00:19:22,230 --> 00:19:23,570 Điều này có thể là "hi". 346 00:19:23,570 --> 00:19:26,340 Điều này có thể chỉ là những nhân vật k. 347 00:19:26,340 --> 00:19:29,290 Đây có thể là một số 1. 348 00:19:29,290 --> 00:19:30,300 Và nó không quan tâm. 349 00:19:30,300 --> 00:19:33,560 PHP không quan tâm các loại biến của bạn. 350 00:19:33,560 --> 00:19:34,390 Hoặc, nó chăm sóc. 351 00:19:34,390 --> 00:19:36,240 Nó quan tâm khi bạn cố gắng và làm việc với nó, 352 00:19:36,240 --> 00:19:38,790 nhưng nó không quan tâm trong các bước khai báo. 353 00:19:38,790 --> 00:19:46,960 >> Và cũng giống như bạn có thể trong C, bạn có thể khai báo chuỗi trên stack như thế này 354 00:19:46,960 --> 00:19:51,130 mặc dù nói "chồng" là một chút bit của một cái tên nhầm lẫn tiềm năng khi 355 00:19:51,130 --> 00:19:52,230 chúng ta đang nói về PHP. 356 00:19:52,230 --> 00:19:54,020 Nhưng chúng tôi không phải lo lắng về điều đó. 357 00:19:54,020 --> 00:19:55,936 Vì vậy, chúng tôi đã nhận chuỗi của chúng tôi "hi", và chúng tôi vang chuỗi. 358 00:19:55,936 --> 00:19:58,880 Vì vậy, bây giờ chúng tôi đã thảo luận về các biến. 359 00:19:58,880 --> 00:20:06,060 Vì vậy, bây giờ chúng ta cần nói chuyện về get và gửi và thực hiện các điều cuối cùng đó là 360 00:20:06,060 --> 00:20:12,660 cần thiết để thực sự trở lại này lên các chức năng của các thiết lập P 6. 361 00:20:12,660 --> 00:20:14,990 Vì vậy, ngay bây giờ chúng tôi vang vọng chuỗi, nhưng chúng tôi 362 00:20:14,990 --> 00:20:17,080 không có các biến này có được và sau. 363 00:20:17,080 --> 00:20:19,430 Và bởi vì chúng ta đang sử dụng phương pháp này có được, nó 364 00:20:19,430 --> 00:20:24,810 có vẻ tự nhiên mà biến của chúng tôi chúng tôi quan tâm, cả a và b, 365 00:20:24,810 --> 00:20:29,870 sẽ được đặt trong mảng hoặc từ điển, về mặt kỹ thuật được. 366 00:20:29,870 --> 00:20:33,510 >> Vì vậy, nếu chúng ta thiết lập được như thế này với groups-- bạn tôi ép nhập 367 00:20:33,510 --> 00:20:36,770 và nó không giống như it-- nhưng ở đây chúng tôi có nhận được. 368 00:20:36,770 --> 00:20:38,000 Và do đó, có đã tồn tại. 369 00:20:38,000 --> 00:20:41,380 Vì vậy, chúng tôi đã có thể bắt đầu truy cập một số các yếu tố của get. 370 00:20:41,380 --> 00:20:45,000 Nếu chúng tôi có được, cú pháp này cho mảng trong PHP là rất C-như. 371 00:20:45,000 --> 00:20:47,900 Chúng tôi có hai dấu ngoặc vuông của chúng tôi. 372 00:20:47,900 --> 00:20:53,440 >> Vì vậy, nếu chúng ta nói có được trong một bình thường mảng, chúng ta có thể truy cập 373 00:20:53,440 --> 00:20:55,600 chỉ số 0, chỉ số đầu tiên. 374 00:20:55,600 --> 00:20:56,840 PHP là chỉ số zero. 375 00:20:56,840 --> 00:21:00,550 Chúng ta có thể nói không, một, thứ two-- như thế này. 376 00:21:00,550 --> 00:21:03,420 Và tôi đã nói rằng có được là một kỹ thuật từ điển. 377 00:21:03,420 --> 00:21:08,290 Vì vậy, những gì PHP được làm dưới mui xe, đó là một chút đẹp hơn so với C, 378 00:21:08,290 --> 00:21:12,760 là nó đã được cho bạn một số chức năng từ điển, mà 379 00:21:12,760 --> 00:21:16,240 là bảng thực sự băm, hoặc cố gắng, được cho là. 380 00:21:16,240 --> 00:21:19,360 Hoặc công, kỹ thuật có thể là một thử là tốt. 381 00:21:19,360 --> 00:21:25,500 Tuy nhiên, PHP được thực hiện một bảng băm, là một bộ từ điển hiệu quả. 382 00:21:25,500 --> 00:21:28,400 >> Và vì vậy chúng tôi biết tên các biến của chúng ta, phải không? 383 00:21:28,400 --> 00:21:32,440 Nó đang được thông qua tại các chuỗi truy vấn bằng PHP. 384 00:21:32,440 --> 00:21:37,290 Chúng tôi có một = h và b = g ở đâu và b là tên của biến. 385 00:21:37,290 --> 00:21:41,580 Vì vậy, cách mà chúng ta có thể truy cập giá trị tương ứng với phím 386 00:21:41,580 --> 00:21:45,055 trong từ điển của chúng tôi là chỉ bằng cách nói _GET_GET ["a"]. 387 00:21:45,055 --> 00:21:48,170 388 00:21:48,170 --> 00:21:51,365 >> Vì vậy, bây giờ chúng tôi có _GET ["a"]. 389 00:21:51,365 --> 00:21:56,930 Và nếu chúng ta chỉ cần thay thế bên trong tiếng vọng của chúng ta, nếu chúng ta vang _GET_GET ["a"] - 390 00:21:56,930 --> 00:22:02,410 và chúng ta sẽ thấy nếu các trình gỡ lỗi ném bất kỳ lỗi nào về this-- 391 00:22:02,410 --> 00:22:05,620 chúng ta sẽ tiết kiệm đó và đóng cửa này ra. 392 00:22:05,620 --> 00:22:07,130 Mở nó lên. 393 00:22:07,130 --> 00:22:10,390 Vì vậy, chúng ta chỉ cần làm một bên phải Hiện tại, do đó b không phải vấn đề. 394 00:22:10,390 --> 00:22:12,980 "cô" và "anh ấy" - "hum". "cô" và "hum". 395 00:22:12,980 --> 00:22:14,810 Âm thanh tốt. 396 00:22:14,810 --> 00:22:18,040 >> Và nó được in ra "cô ấy", mà là điên. 397 00:22:18,040 --> 00:22:21,920 Nhưng đó là chính xác những gì đã xảy ra ở P đặt 6. 398 00:22:21,920 --> 00:22:27,240 Về cơ bản, những gì P đặt 6 là doing-- echo hello, 399 00:22:27,240 --> 00:22:31,580 name-- nơi nó đã có một Tên biến và nó chỉ 400 00:22:31,580 --> 00:22:35,520 yêu cầu bạn gõ vào đó chút của văn bản. 401 00:22:35,520 --> 00:22:37,380 Cũng có một số thêm mã nơi 402 00:22:37,380 --> 00:22:40,550 nó bao gồm nếu báo cáo, mà chúng ta có thể làm ngay bây giờ. 403 00:22:40,550 --> 00:22:50,120 >> Chúng ta có thể nói rằng nếu tồn tại, mà là một chức năng trong PHP, 404 00:22:50,120 --> 00:22:55,110 _GET Với gạch dưới, "tên" - mà về cơ bản nói, 405 00:22:55,110 --> 00:22:58,760 "nếu tên đã bị lấp" bởi vì chúng ta có thể chỉ cần nhấp vào nút 406 00:22:58,760 --> 00:23:02,580 phải gửi biểu mẫu mà không gõ bất cứ điều gì vào lĩnh vực đó. 407 00:23:02,580 --> 00:23:07,760 Và chúng tôi bọc rằng trong chúng tôi dấu ngoặc nhọn thân thiện. 408 00:23:07,760 --> 00:23:09,175 Chúng tôi có thể có một tuyên bố khác. 409 00:23:09,175 --> 00:23:13,300 410 00:23:13,300 --> 00:23:18,820 Và đó là tất cả trong góc PHP khung, dấu hỏi, khung góc, 411 00:23:18,820 --> 00:23:20,040 nếu bạn sẽ. 412 00:23:20,040 --> 00:23:21,750 >> Và bây giờ chúng ta sẽ thấy nếu các công trình này. 413 00:23:21,750 --> 00:23:26,300 Tôi tiếp tục chờ đợi cho nó để gỡ lỗi và crap ra về tôi, về cơ bản, 414 00:23:26,300 --> 00:23:28,410 nhưng điều này chưa. 415 00:23:28,410 --> 00:23:30,830 Có lẽ nó sẽ bây giờ vì tôi đã nói. 416 00:23:30,830 --> 00:23:31,330 Yup. 417 00:23:31,330 --> 00:23:32,510 Nó đã làm, trong thực tế. 418 00:23:32,510 --> 00:23:34,610 Vì vậy, không có gì được hiển thị lên. 419 00:23:34,610 --> 00:23:38,750 Đó là bởi vì một cái gì đó sai mà tôi đã viết trong mã PHP. 420 00:23:38,750 --> 00:23:42,844 Và tôi đã đề cập việc gỡ lỗi là khó khăn bởi vì trong PHP, chúng tôi 421 00:23:42,844 --> 00:23:45,260 không biên dịch nó trước và trình biên dịch đã không thích, 422 00:23:45,260 --> 00:23:46,710 đây là nơi mà các lỗi của bạn. 423 00:23:46,710 --> 00:23:49,690 >> Nhưng những gì chúng ta có thể làm is-- làm mọi người nhớ 424 00:23:49,690 --> 00:23:57,010 làm thế nào để nhìn vào các mạng khác nhau yêu cầu rằng PHP-- hay rằng các trang web 425 00:23:57,010 --> 00:23:57,620 gửi? 426 00:23:57,620 --> 00:24:00,290 [? Malin?] Đã làm điều này trong giảng dạy một hoặc hai lần. 427 00:24:00,290 --> 00:24:05,830 Bạn hãy nhớ nơi chúng tôi đi tìm các khoản nợ khác nhau và 200 OKS, 428 00:24:05,830 --> 00:24:09,780 tất cả các mã số đó đang được gửi thông qua HTTP từ trang web vào trang web? 429 00:24:09,780 --> 00:24:12,514 Có ai nhớ nơi chúng tôi đi để làm điều đó? 430 00:24:12,514 --> 00:24:13,787 >> Đung Page Source. 431 00:24:13,787 --> 00:24:14,870 SAM LEVATICH: trang nguồn. 432 00:24:14,870 --> 00:24:15,890 Đúng như vậy. 433 00:24:15,890 --> 00:24:19,230 Nếu bạn đi đến trang Source-- hoàn hảo. 434 00:24:19,230 --> 00:24:21,630 Vì vậy Page Source kéo lên thanh tra. 435 00:24:21,630 --> 00:24:23,140 >> Và tôi đang sử dụng Safari. 436 00:24:23,140 --> 00:24:25,790 Rất nhiều bạn có thể sẽ được sử dụng Chrome hoặc Firefox. 437 00:24:25,790 --> 00:24:27,750 Nhưng miễn là bạn trong bất kỳ browser-- hiện đại 438 00:24:27,750 --> 00:24:29,500 và cảm thấy tự do để làm theo cùng, nếu bạn muốn. 439 00:24:29,500 --> 00:24:32,560 Bạn có thể gõ lên mã này hoặc chỉ cần nhìn vào trong tập hợp P 6 440 00:24:32,560 --> 00:24:35,820 thư mục cho một số công cụ tương tự. 441 00:24:35,820 --> 00:24:41,020 hello.php là những gì chúng tôi hiện đang làm việc trên mô phỏng. 442 00:24:41,020 --> 00:24:42,476 >> Vì vậy, có một loạt các tab. 443 00:24:42,476 --> 00:24:43,850 Chúng ta có thể nhìn vào tất cả các tài nguyên. 444 00:24:43,850 --> 00:24:45,810 Chúng ta có thể xem mã nguồn. 445 00:24:45,810 --> 00:24:49,900 Vì vậy, có vẻ như nó đã làm không có được cơ thể qua cuối cùng. 446 00:24:49,900 --> 00:24:54,890 Nó tìm thấy một lỗi trong PHP và nó dừng tải trang web toàn. 447 00:24:54,890 --> 00:24:58,320 Chúng tôi thậm chí không có một kết thúc tag HTML hoặc bất cứ điều gì. 448 00:24:58,320 --> 00:25:07,189 >> Và nếu chúng ta nhìn vào mạng, chúng ta có thể thấy rằng chúng tôi đang được gửi một yêu cầu. 449 00:25:07,189 --> 00:25:07,980 Đây là tên miền. 450 00:25:07,980 --> 00:25:09,270 Đây là địa chỉ. 451 00:25:09,270 --> 00:25:10,070 Đó là một tài liệu. 452 00:25:10,070 --> 00:25:14,310 Chúng tôi đang sử dụng phương thức get. 453 00:25:14,310 --> 00:25:15,760 >> Và đó là màu đỏ. 454 00:25:15,760 --> 00:25:19,030 Hoặc, nó đã đỏ khi tôi đã không chọn nó. 455 00:25:19,030 --> 00:25:22,680 Làm thế nào để bỏ chọn nó? 456 00:25:22,680 --> 00:25:23,980 Vâng, đó là màu đỏ. 457 00:25:23,980 --> 00:25:25,201 Hãy để tôi làm mới. 458 00:25:25,201 --> 00:25:25,700 Có nó là. 459 00:25:25,700 --> 00:25:26,640 Bây giờ đó là màu đỏ. 460 00:25:26,640 --> 00:25:30,530 >> Vì vậy, đó là màu đỏ, có nghĩa là nó đã thất bại, mà là xấu. 461 00:25:30,530 --> 00:25:32,280 Vì vậy, chúng ta hãy xét xem tại sao nó đã thất bại. 462 00:25:32,280 --> 00:25:37,070 Vì vậy, tất cả những Page Source có thể về cơ bản nói với bạn của bạn là gì 463 00:25:37,070 --> 00:25:38,720 đã không làm việc, mà chúng tôi đã có thể nhìn thấy. 464 00:25:38,720 --> 00:25:42,100 Vì vậy, lý tưởng vẫn sẽ là một công cụ hữu ích hơn. 465 00:25:42,100 --> 00:25:45,710 Và có một số phần mở rộng trình duyệt cho phép bạn gỡ lỗi PHP, 466 00:25:45,710 --> 00:25:50,490 nhưng chúng tôi sẽ không được viết một tấn của PHP, 467 00:25:50,490 --> 00:25:53,190 nên nó có lẽ chỉ tốt nhất để xem xét thông qua mã của bạn 468 00:25:53,190 --> 00:25:56,760 cẩn thận và chỉ cần đảm bảo rằng nó không phải làm bất cứ điều gì khác. 469 00:25:56,760 --> 00:26:03,876 >> Vì vậy, chúng ta hãy xem các định dạng này nếu tuyên bố là nơi mà vấn đề là. 470 00:26:03,876 --> 00:26:07,420 Tôi muốn tải mà lại lên đây. 471 00:26:07,420 --> 00:26:09,830 Xin chào, hi. 472 00:26:09,830 --> 00:26:11,350 Vì vậy, có một vấn đề đó. 473 00:26:11,350 --> 00:26:15,130 >> Vì vậy, cho đúng cú pháp của PHP, PHP sẽ 474 00:26:15,130 --> 00:26:17,369 là C-như trong đó bạn sẽ thấy các vòng. 475 00:26:17,369 --> 00:26:18,410 Bạn sẽ thấy nếu báo cáo. 476 00:26:18,410 --> 00:26:20,920 Bạn sẽ thấy tất cả những người bạn rằng bạn đã trở nên quen thuộc 477 00:26:20,920 --> 00:26:24,820 với hơn khóa học của học kỳ CS50 này. 478 00:26:24,820 --> 00:26:29,960 Nhưng cách tốt nhất để tìm hiểu làm thế nào để làm một cái gì đó trong PHP là để Google nó 479 00:26:29,960 --> 00:26:33,170 hoặc xem xét một số ví dụ về các mã PHP bởi vì bạn biết các chức năng. 480 00:26:33,170 --> 00:26:35,080 >> Bạn biết những gì bạn có thể làm với chương trình. 481 00:26:35,080 --> 00:26:35,976 Bạn có thể lặp. 482 00:26:35,976 --> 00:26:37,600 Bạn có thể lặp nhiều lần như bạn muốn. 483 00:26:37,600 --> 00:26:39,433 Bạn có thể lặp trong tất cả các loại cách khác nhau. 484 00:26:39,433 --> 00:26:40,700 Bạn có thể tạo các chức năng. 485 00:26:40,700 --> 00:26:43,241 Bạn có thể tạo ra các chức năng mà gọi các chức năng khác, các chức năng 486 00:26:43,241 --> 00:26:44,150 mà tự gọi mình. 487 00:26:44,150 --> 00:26:45,733 Và bạn có tên cho các khái niệm này. 488 00:26:45,733 --> 00:26:49,860 Bạn đã có đệ quy, vòng, nếu, luồng điều khiển khác. 489 00:26:49,860 --> 00:26:51,300 Và do đó, Google là người bạn tốt nhất của bạn. 490 00:26:51,300 --> 00:26:53,540 Thậm chí nói, "nếu PHP tuyên bố "và có sẽ thấy 491 00:26:53,540 --> 00:26:57,740 được tấn của bài viết với câu trả lời cho người khác 492 00:26:57,740 --> 00:27:02,090 người đã có câu hỏi tương tự như bạn, người chỉ đang bắt đầu với PHP 493 00:27:02,090 --> 00:27:03,820 và tò mò về một điều cú pháp. 494 00:27:03,820 --> 00:27:08,480 >> Bởi vì chúng tôi có sự sang trọng của việc có thể nhìn vào các mã trong tập P 6, 495 00:27:08,480 --> 00:27:14,980 chúng tôi thực sự kéo nó lên và thấy rằng OK, đây là một cái gì đó thú vị. 496 00:27:14,980 --> 00:27:18,070 Vì vậy, đây là những gì nó thực sự trông giống như trong P đặt 6. 497 00:27:18,070 --> 00:27:20,340 Vì vậy, nếu chúng ta đi qua này, chúng ta có thể thấy rằng chúng tôi đã 498 00:27:20,340 --> 00:27:27,150 có một số ít trong số này Bit dấu hỏi PHP-như. 499 00:27:27,150 --> 00:27:29,050 >> Và không có dấu ngoặc nhọn. 500 00:27:29,050 --> 00:27:30,250 Có dấu hai chấm. 501 00:27:30,250 --> 00:27:32,340 Và có rất xoăn niềng răng trong PHP, nhưng điều này 502 00:27:32,340 --> 00:27:38,700 là một định dạng và một cách làm PHP hoạt động tốt với HTML 503 00:27:38,700 --> 00:27:43,830 vì như bạn sẽ thấy, chúng ta đang đóng cửa tắt các PHP bits-- các elses 504 00:27:43,830 --> 00:27:49,770 và IFS và tất cả các that-- và sau đó chúng tôi đang xen HTML bên trong chúng 505 00:27:49,770 --> 00:27:54,640 trong khi vẫn hành dòng điều khiển được đặt ra bởi PHP. 506 00:27:54,640 --> 00:27:58,480 >> Vì vậy, tôi chỉ cần đi tới đi bộ nhanh chóng thông qua này 507 00:27:58,480 --> 00:28:01,740 bởi vì nó là rất nhiều cùng khái niệm mà chúng tôi đã làm trước đây. 508 00:28:01,740 --> 00:28:07,280 Chúng tôi đã có nếu không có sản phẩm nào, ngoặc, _GET_GET ["name"]. 509 00:28:07,280 --> 00:28:08,500 Đây là tất cả những thứ tương tự. 510 00:28:08,500 --> 00:28:15,430 Chúng tôi đang sử dụng từ điển _GET rằng PHP sẽ gửi theo yêu cầu của các hình thức, 511 00:28:15,430 --> 00:28:20,720 bởi vì nó là các thông số của hành động, và phương pháp này là có được. 512 00:28:20,720 --> 00:28:22,110 Và sau đó kết thúc mà. 513 00:28:22,110 --> 00:28:27,420 Đại tràng là một signifier để chỉ làm điều này nếu câu lệnh if để đánh giá đúng. 514 00:28:27,420 --> 00:28:29,490 Nó giống như một cú đúp xoăn. 515 00:28:29,490 --> 00:28:33,320 Và trên thực tế, nó là một nẹp xoăn trong các ngôn ngữ khác như Python, 516 00:28:33,320 --> 00:28:37,070 mà bạn có thể gặp phải nếu bạn chỉ làm điều đó cho dự án cuối cùng của bạn. 517 00:28:37,070 --> 00:28:40,170 >> Và sau đó dòng này, xin chào. 518 00:28:40,170 --> 00:28:41,510 Sau đó, chúng tôi đã có điều kỳ lạ này. 519 00:28:41,510 --> 00:28:43,190 Chúng tôi đã có dấu ngoặc hơn. 520 00:28:43,190 --> 00:28:46,140 Không có HTTP there-- hoặc PHP, xin lỗi. 521 00:28:46,140 --> 00:28:47,250 Nhưng có một dấu bằng. 522 00:28:47,250 --> 00:28:50,625 Và sau đó chúng tôi có một chức năng, htmlspecialchars (_GEThtmlspecialchars (_GET ["name"]). 523 00:28:50,625 --> 00:28:54,440 524 00:28:54,440 --> 00:28:58,040 Đây là loại giống như một hơn phiên bản tiên tiến của echo. 525 00:28:58,040 --> 00:29:01,450 Giống như chúng ta đã vang lên như là một cách để in ra những thứ trong PHP. 526 00:29:01,450 --> 00:29:03,890 Đây là một chức năng mà định nghĩa trong PHP 527 00:29:03,890 --> 00:29:08,160 sẽ đối phó với một số khó chịu hơn nhân vật và các giá trị byte 528 00:29:08,160 --> 00:29:09,540 rằng bạn có thể vượt qua nó. 529 00:29:09,540 --> 00:29:11,070 Nó luôn luôn là an toàn nhất để sử dụng. 530 00:29:11,070 --> 00:29:14,930 Nhưng tiếng vang sẽ làm công việc chỉ tốt nếu chúng ta không 531 00:29:14,930 --> 00:29:17,620 đối phó với bất cứ điều gì quá khó chịu. 532 00:29:17,620 --> 00:29:20,340 >> Và vì vậy điều này có cùng hiệu ứng về cơ bản, 533 00:29:20,340 --> 00:29:26,360 công cụ này trong giữa câu hỏi dấu được đánh giá bằng PHP. 534 00:29:26,360 --> 00:29:34,490 htmlspecialchars trả về một HTML đẹp giá trị in của _GET_GET ["name"], nghĩa là 535 00:29:34,490 --> 00:29:36,010 bất cứ điều gì chúng tôi đã nhập vào biểu mẫu. 536 00:29:36,010 --> 00:29:40,025 Và sau đó nó sẽ nói hello, dấu phẩy không gian, và sau đó đó. 537 00:29:40,025 --> 00:29:42,910 Đó là điều hoàn toàn giữa các dấu ngoặc nhọn 538 00:29:42,910 --> 00:29:47,390 sẽ được thay thế bởi bất cứ điều gì htmlspecialchars đặt ra. 539 00:29:47,390 --> 00:29:49,390 Vì vậy, đó là cơ bản tương tự với những gì chúng tôi đang làm. 540 00:29:49,390 --> 00:29:54,760 Và chúng ta có một tuyên bố khác đó là hello thế giới, có ý nghĩa. 541 00:29:54,760 --> 00:29:58,070 Vì vậy, bây giờ chúng ta hãy quay trở lại của chúng tôi mã và xem exactly-- oh. 542 00:29:58,070 --> 00:30:02,200 Tôi nói tồn tại, mà không phải là một điều mà chúng tôi muốn làm. 543 00:30:02,200 --> 00:30:05,370 Chúng tôi muốn nói không có sản phẩm nào. 544 00:30:05,370 --> 00:30:10,020 >> Và vì thế này nên làm việc một chút bit tốt hơn, không có sản phẩm nào _GET_GET ["name"]. 545 00:30:10,020 --> 00:30:12,710 Và đó là cú đúp xoăn phù hợp mà ngoặc móc. 546 00:30:12,710 --> 00:30:15,210 Chúng tôi đã có dấu ngoặc nhọn của chúng tôi ở đây. 547 00:30:15,210 --> 00:30:17,790 echo hello _GET ["name"]. 548 00:30:17,790 --> 00:30:19,912 Hãy xem nếu điều này làm việc tốt hơn một chút. 549 00:30:19,912 --> 00:30:21,350 Chúng tôi vẫn đang chạy máy chủ của chúng tôi. 550 00:30:21,350 --> 00:30:23,910 Xin chào Jason. 551 00:30:23,910 --> 00:30:24,780 Xin chào Jason. 552 00:30:24,780 --> 00:30:25,810 Và nó đã làm việc lần này. 553 00:30:25,810 --> 00:30:29,860 Và đó là một bằng chứng mà bạn có thể thực sự 554 00:30:29,860 --> 00:30:35,180 sử dụng các dấu ngoặc nhọn mà bạn biết và tình yêu trong mã PHP trong HTML. 555 00:30:35,180 --> 00:30:41,100 Các mã PHP cung cấp cho bạn trong pset 6-- pset 6-- 556 00:30:41,100 --> 00:30:44,760 cung cấp một cách khác làm điều đó cùng một điều. 557 00:30:44,760 --> 00:30:49,220 >> Vì vậy, bây giờ chúng tôi có quyền lực. 558 00:30:49,220 --> 00:30:55,740 Chúng tôi có các chức năng để thực hiện mã PHP mà chúng ta đã thấy trong pset 6 559 00:30:55,740 --> 00:30:57,390 bởi chính chúng ta, về cơ bản. 560 00:30:57,390 --> 00:31:01,350 Trước khi tiếp tục, một số là những gì câu hỏi mà bạn có vào thời điểm này? 561 00:31:01,350 --> 00:31:02,066 Có [không nghe được]. 562 00:31:02,066 --> 00:31:06,512 >> Đung Vì vậy, trong các phiên bản trong pset6, khi bạn chạy nó, có một không gian. 563 00:31:06,512 --> 00:31:09,330 Và tôi có thể nhìn thấy nơi các không gian sau dấu phẩy. [Không nghe thấy] bắt đầu 564 00:31:09,330 --> 00:31:10,700 khung mở. 565 00:31:10,700 --> 00:31:15,420 Làm thế nào để bạn kết hợp các không gian trong cách bạn viết mã của riêng bạn? 566 00:31:15,420 --> 00:31:17,910 >> SPEAKER: Đó là một câu hỏi hay. 567 00:31:17,910 --> 00:31:21,650 Và như vậy chúng ta hãy hiểu rằng con số. 568 00:31:21,650 --> 00:31:24,450 Vì vậy, đó là một câu hỏi thực sự tốt và một trong đó tôi đã không xem xét. 569 00:31:24,450 --> 00:31:25,950 Nhưng chúng ta hãy làm điều đó với nhau. 570 00:31:25,950 --> 00:31:30,280 >> Vì vậy, trước hết, những gì Tôi đang làm với echo 571 00:31:30,280 --> 00:31:33,690 là khi chúng tôi chỉ vang hello, nó ra chào. 572 00:31:33,690 --> 00:31:41,310 Nếu chúng ta vang vọng bây giờ điều này có được trên một riêng biệt dòng, chúng ta hãy xem xét những gì sẽ xảy ra. 573 00:31:41,310 --> 00:31:43,740 Vì vậy, chúng ta click này. 574 00:31:43,740 --> 00:31:45,220 Chúng tôi tiếp tục nói, hi Jason. 575 00:31:45,220 --> 00:31:48,690 Vì vậy, một lần nữa, chúng tôi không có không gian này. 576 00:31:48,690 --> 00:31:53,090 >> Và đó là bởi vì, trong PHP, khi chúng tôi đã tạo tiếng vang, 577 00:31:53,090 --> 00:31:55,820 không có vấn đề bao nhiêu spaces-- nope, không phải là V-- 578 00:31:55,820 --> 00:32:01,770 dù có bao nhiêu không gian chúng ta đưa vào here-- nếu bây giờ chúng ta tải lên đó một lần nữa, 579 00:32:01,770 --> 00:32:03,010 hi Jason. 580 00:32:03,010 --> 00:32:05,770 Yeah, thấy, tất cả những không gian đã ăn lên. 581 00:32:05,770 --> 00:32:08,020 Và đó là một cái gì đó mà chức năng tiếng vang nào. 582 00:32:08,020 --> 00:32:11,110 >> Vì vậy, để chăm sóc không gian đó, và điều này là 583 00:32:11,110 --> 00:32:14,960 một trong những lý do tại sao bạn không sử dụng echo 584 00:32:14,960 --> 00:32:18,200 và bạn sử dụng htmlspecialchars thay thế. 585 00:32:18,200 --> 00:32:22,140 Tôi tò mò những gì sẽ xảy ra nếu chúng tôi đã làm điều này 586 00:32:22,140 --> 00:32:26,700 nơi chúng tôi gửi kèm theo một không gian trong một chuỗi. 587 00:32:26,700 --> 00:32:29,720 Tôi thành thật không chắc chắn những gì sẽ xảy ra khi tôi làm điều này. 588 00:32:29,720 --> 00:32:30,790 >> Vì vậy, đó là một cách. 589 00:32:30,790 --> 00:32:32,210 Đó là một cách để chăm sóc nó. 590 00:32:32,210 --> 00:32:34,840 Nếu bạn quấn các không gian trong một chuỗi, sau đó không gian 591 00:32:34,840 --> 00:32:36,920 sẽ được sản xuất độc đáo của echo. 592 00:32:36,920 --> 00:32:41,930 Điều an toàn nhất để làm là làm htmlspecialchars. 593 00:32:41,930 --> 00:32:43,800 Đó là luôn luôn đặt cược an toàn. 594 00:32:43,800 --> 00:32:47,050 Nhưng bây giờ chúng ta có một cách để làm nó với echo nếu cần thiết. 595 00:32:47,050 --> 00:32:50,700 Và theo một cách tương tự, chúng ta có thể tiếng vang dòng mới, tất cả các loại 596 00:32:50,700 --> 00:32:53,550 thứ bạn quen làm trong PHP. 597 00:32:53,550 --> 00:32:57,460 >> Bất cứ ai khác, những gì là bất kỳ chi tiết câu hỏi mà người khác có 598 00:32:57,460 --> 00:33:01,090 vào thời điểm này về PHP? 599 00:33:01,090 --> 00:33:04,620 Nếu người đến muộn một chút, Tôi đang hạnh phúc ở lại sau một chút 600 00:33:04,620 --> 00:33:06,420 và nói về một số đầu. 601 00:33:06,420 --> 00:33:10,380 Và nó cũng có tất cả livestreamed, và lưu trữ, mà là điên. 602 00:33:10,380 --> 00:33:13,960 >> Dù sao, vì vậy bây giờ chúng ta hãy làm một số cụ cao cấp hơn với PHP. 603 00:33:13,960 --> 00:33:18,790 Và một trong những điều đầu tiên bạn đã được giới thiệu trong C là cho vòng lặp. 604 00:33:18,790 --> 00:33:24,060 Và PHP có một mạnh mẽ hơn cho vòng lặp được gọi là vòng lặp foreach. 605 00:33:24,060 --> 00:33:37,940 Và có vẻ như this-- cho mỗi trống như trống, dấu ngoặc nhọn, làm điều. 606 00:33:37,940 --> 00:33:41,500 Vì vậy, đây là cơ bản một cách viết tắt. 607 00:33:41,500 --> 00:33:45,380 >> Xem, vòng lặp for như một xây dựng cú pháp 608 00:33:45,380 --> 00:33:50,590 được đưa ra trong C và lắp ráp ngôn ngữ và những thứ thích. 609 00:33:50,590 --> 00:33:56,300 Nghĩ ra trong C, chính xác, như một cách viết tắt cho rất nhiều các loại vòng 610 00:33:56,300 --> 00:33:57,750 rằng mọi người sẽ thấy. 611 00:33:57,750 --> 00:34:01,230 Giống như khi bạn viết một vòng lặp, có thường một bước khởi tạo 612 00:34:01,230 --> 00:34:04,700 thực hiện ngay từ đầu, một điều kiện nơi vòng lặp sẽ stop-- 613 00:34:04,700 --> 00:34:07,030 và đó là tính năng đó là chỉ trong vòng một thời gian, 614 00:34:07,030 --> 00:34:10,040 hay rằng một khi có chính xác Chỉ là feature-- và sau đó 615 00:34:10,040 --> 00:34:12,320 một bước incrementation ở cuối. 616 00:34:12,320 --> 00:34:16,489 Và vì vậy bạn nên thường tìm thấy chính mình viết code như sau. 617 00:34:16,489 --> 00:34:19,780 Tôi sẽ xóa đi những vùng này. 618 00:34:19,780 --> 00:34:23,850 >> Nhưng nếu chúng ta lặp qua nhân vật trong một mảng, 619 00:34:23,850 --> 00:34:26,960 Ví dụ, như chúng tôi đã có một mảng ký tự. 620 00:34:26,960 --> 00:34:29,400 Xin lỗi để mang lại C. Tôi biết, bạn nghĩ rằng bạn đã thực hiện. 621 00:34:29,400 --> 00:34:31,900 Nhưng nó chỉ cho mục đích của việc học PHP, tôi hứa. 622 00:34:31,900 --> 00:34:38,880 Vì vậy, nếu bạn có một char str chiều dài 8, và chúng ta hãy 623 00:34:38,880 --> 00:34:46,760 nói nó nói hellooo với một null dấu. 624 00:34:46,760 --> 00:34:48,270 Tuyệt vời, vì vậy đó là chuỗi của chúng tôi. 625 00:34:48,270 --> 00:34:51,469 >> Và sau đó chúng tôi đã có một vòng lặp for. 626 00:34:51,469 --> 00:34:53,730 Chúng tôi có int i bằng 0. 627 00:34:53,730 --> 00:34:57,960 628 00:34:57,960 --> 00:35:09,110 Và chúng tôi muốn thoát ra khi str của tôi bằng không bằng null, 629 00:35:09,110 --> 00:35:11,590 bởi vì chúng ta thoát ra khi nó bằng null. 630 00:35:11,590 --> 00:35:19,170 Và sau đó chúng tôi làm i ++ tại mỗi điểm trong vòng lặp for. 631 00:35:19,170 --> 00:35:30,480 Làm gì đó với str của tôi. 632 00:35:30,480 --> 00:35:34,950 >> Vì vậy, các công thức cơ bản là, chúng tôi đã có mảng này mà chúng ta 633 00:35:34,950 --> 00:35:37,910 muốn để điều trị các yếu tố riêng biệt. 634 00:35:37,910 --> 00:35:45,170 Nhưng những gì chúng tôi phải làm là chúng ta phải về cơ bản tạo ra một số nguyên riêng biệt 635 00:35:45,170 --> 00:35:50,530 biến đó được đếm lên mỗi Hiện chúng tôi đã đi qua vòng lặp. 636 00:35:50,530 --> 00:35:55,240 Và sau đó chúng tôi sẽ phải sau đó gọi strstr [i] khi những gì chúng ta thực sự muốn làm 637 00:35:55,240 --> 00:35:57,280 chỉ được đi nhân vật của nhân vật, phải không? 638 00:35:57,280 --> 00:36:00,185 Chúng tôi không muốn để tăng một số nguyên và sau đó sử dụng số nguyên 639 00:36:00,185 --> 00:36:02,780 để truy cập vào từng nhân vật riêng lẻ. 640 00:36:02,780 --> 00:36:04,410 Chúng tôi thực sự muốn nhân vật của nhân vật. 641 00:36:04,410 --> 00:36:08,600 >> Và do đó, cho mỗi một cách thông minh tính toán đó cho chúng ta. 642 00:36:08,600 --> 00:36:11,875 Nếu chúng ta có một mảng, mà chúng ta có thể khai báo trong PHP 643 00:36:11,875 --> 00:36:15,900 như just-- nếu chúng ta có một biến gọi, hãy gọi nó là mảng. 644 00:36:15,900 --> 00:36:19,840 Các phép lạ của không đánh máy, nó giống như bất kỳ biến khác. 645 00:36:19,840 --> 00:36:20,730 Nó chỉ là một mảng. 646 00:36:20,730 --> 00:36:26,890 Và chúng tôi có một chút [Không nghe thấy] như 1, 2, 3, chỉ là một loại mảng khởi tạo. 647 00:36:26,890 --> 00:36:29,680 Đó là OK, nó không giống như foreach của tôi. 648 00:36:29,680 --> 00:36:33,120 >> Nhưng nếu chúng ta thực sự foreach-- Tôi đã đánh một chút sai. 649 00:36:33,120 --> 00:36:34,840 Có hai cách để làm một vòng lặp foreach. 650 00:36:34,840 --> 00:36:37,400 Có cú pháp trong và như cú pháp. 651 00:36:37,400 --> 00:36:40,580 Và chúng tôi đang đi làm trong cú pháp đầu tiên, không phải là. 652 00:36:40,580 --> 00:36:41,780 Đó là sai lầm của tôi. 653 00:36:41,780 --> 00:36:53,785 >> Num Vì vậy foreach trong mảng, echo num. 654 00:36:53,785 --> 00:36:56,970 655 00:36:56,970 --> 00:36:59,500 Và PHP được la hét tôi đối với một số lý do. 656 00:36:59,500 --> 00:37:03,520 Nó tìm kiếm một bất ngờ ở trong một cái gì đó, 657 00:37:03,520 --> 00:37:05,820 đó là một chút của một bận tâm. 658 00:37:05,820 --> 00:37:09,105 Nhưng chúng ta sẽ tìm ra tại sao đó là trong một thời điểm. 659 00:37:09,105 --> 00:37:11,960 660 00:37:11,960 --> 00:37:13,610 Vì vậy, không phải như thế. 661 00:37:13,610 --> 00:37:15,040 Hãy thử sử dụng như. 662 00:37:15,040 --> 00:37:17,310 Nó thích như cú pháp là vẻ. 663 00:37:17,310 --> 00:37:22,550 Vì vậy, chúng ta hãy làm mảng foreach như num. 664 00:37:22,550 --> 00:37:24,520 >> Vì vậy, giải thích một chút về những gì vừa xảy ra 665 00:37:24,520 --> 00:37:30,670 là như cú pháp được saying-- giếng đầu tiên, chúng ta hãy nhìn vào những gì này in ra. 666 00:37:30,670 --> 00:37:32,260 Vì vậy, chúng tôi mở ra IDE của chúng tôi. 667 00:37:32,260 --> 00:37:33,110 Chúng tôi đi đây. 668 00:37:33,110 --> 00:37:35,845 Chúng ta nói, Hello Jason. 669 00:37:35,845 --> 00:37:41,390 Và nó đã làm 123, đó là những nội dung của mảng mà chúng ta đã tạo lên hàng đầu. 670 00:37:41,390 --> 00:37:45,500 >> Vì vậy, lặn vào trong vòng lặp foreach này, chúng tôi có một mảng biến gọi là 671 00:37:45,500 --> 00:37:47,470 đó là một mảng của ba con số. 672 00:37:47,470 --> 00:37:52,120 Và sau đó chúng tôi đang làm foreach mảng như num, echo num. 673 00:37:52,120 --> 00:37:54,990 Và đó là nhiều trực quan hơn một cho lop. 674 00:37:54,990 --> 00:38:02,380 Chúng ta đang nói, điều trị mỗi những điều trong các mảng như num, 675 00:38:02,380 --> 00:38:05,180 Tôi muốn bạn để cho tôi num. 676 00:38:05,180 --> 00:38:06,640 Và đó là chính xác những gì nó làm. 677 00:38:06,640 --> 00:38:12,000 >> PHP được tính toán rằng khi bạn nói mảng foreach, 678 00:38:12,000 --> 00:38:16,080 và bạn đang làm việc với một mảng, những gì bạn sẽ muốn lặp trên 679 00:38:16,080 --> 00:38:19,950 là các nhân vật trong mảng đó, là ints trong mảng đó, 680 00:38:19,950 --> 00:38:21,920 là các yếu tố trong mảng đó. 681 00:38:21,920 --> 00:38:26,110 Và nó cho phép bạn lưu trữ các biến như num, 682 00:38:26,110 --> 00:38:29,360 và sau đó chỉ cần ra num ngay lập tức thay vì nói: 683 00:38:29,360 --> 00:38:34,090 Tôi có một biến gọi là i, và sau đó tôi muốn đầu ra strstr [i]. 684 00:38:34,090 --> 00:38:39,130 >> Và do đó cho phép chúng ta làm những điều mát mẻ. 685 00:38:39,130 --> 00:38:43,330 Giống như về cơ bản chúng ta không cần phải tạo ra các biến này như tôi và làm tất cả 686 00:38:43,330 --> 00:38:45,090 thứ incrementation này ở cuối. 687 00:38:45,090 --> 00:38:48,290 PHP sẽ chăm sóc của tất cả các điều đó cho bạn. 688 00:38:48,290 --> 00:38:54,470 >> Vì vậy, bây giờ hãy nói về foreach như nó áp dụng cho từ điển của chúng tôi _GET. 689 00:38:54,470 --> 00:38:57,170 Vì vậy, chúng tôi sẽ bình luận này ra một cách nhanh chóng. 690 00:38:57,170 --> 00:39:02,030 Vì vậy, chúng ta có mảng _GET của chúng tôi. 691 00:39:02,030 --> 00:39:04,361 Chúng tôi có biến này. 692 00:39:04,361 --> 00:39:05,610 Và nó có một số công cụ trong đó. 693 00:39:05,610 --> 00:39:10,275 >> Ngay bây giờ, chúng tôi chỉ có một biến được truyền cho nó, mà là tên. 694 00:39:10,275 --> 00:39:13,420 Nhưng nếu chúng ta nhấn Enter, bây giờ chúng ta có thể có hai biến. 695 00:39:13,420 --> 00:39:17,910 Chúng tôi có thể có tên và tuổi tác, ví dụ, nếu chúng ta muốn có được tuổi và cũng 696 00:39:17,910 --> 00:39:20,960 tên của một người, hoạt kê đủ. 697 00:39:20,960 --> 00:39:25,690 >> Vì vậy bây giờ _GET là có được một từ điển với hai yếu tố, 698 00:39:25,690 --> 00:39:27,980 với hai cặp giá trị quan trọng. 699 00:39:27,980 --> 00:39:33,490 Và key-- đầu tiên tôi sẽ viết này lên trên diễn đàn quá. 700 00:39:33,490 --> 00:39:37,136 Chúng tôi có từ điển của chúng tôi là _GET. 701 00:39:37,136 --> 00:39:39,520 Xin lỗi, nó là một chút khó khăn để xem. 702 00:39:39,520 --> 00:39:46,690 Nhưng bên trong từ điển của chúng tôi, chúng tôi có tên, mà là có được một cái gì đó 703 00:39:46,690 --> 00:39:47,680 rằng chúng tôi đang đưa ra. 704 00:39:47,680 --> 00:39:53,040 Và chúng ta sẽ có tuổi, đó cũng là sẽ là một cái gì đó mà chúng ta đang đưa ra. 705 00:39:53,040 --> 00:39:56,020 Và đây là toàn bộ của từ điển của chúng tôi. 706 00:39:56,020 --> 00:39:57,730 >> Vì vậy, nó có hai yếu tố trong đó. 707 00:39:57,730 --> 00:40:01,310 Và như vậy bởi vì foreach vòng là thông minh, chúng tôi 708 00:40:01,310 --> 00:40:04,900 có thể suy nghĩ, và chính xác có thể nghĩ rằng foreach 709 00:40:04,900 --> 00:40:08,080 có thể lặp qua này từ điển, in ra 710 00:40:08,080 --> 00:40:10,850 các giá trị được đưa ra bởi tên và tuổi. 711 00:40:10,850 --> 00:40:14,510 >> Vì vậy, hãy thực hiện điều đó. 712 00:40:14,510 --> 00:40:17,520 Hãy xây dựng một vòng lặp foreach. 713 00:40:17,520 --> 00:40:23,351 Và chúng ta sẽ làm cho _GET như. 714 00:40:23,351 --> 00:40:24,850 Và chúng ta sẽ làm như sau. 715 00:40:24,850 --> 00:40:34,186 Vì vậy, chúng ta hãy xem những gì sẽ xảy ra nếu chúng ta gõ chỉ từ, và sau đó nói lời echo. 716 00:40:34,186 --> 00:40:40,540 Chúng tôi cũng sẽ echo một dòng mới chỉ để làm cho nó một ít rõ ràng hơn, 717 00:40:40,540 --> 00:40:41,260 những gì đang xảy ra. 718 00:40:41,260 --> 00:40:42,890 >> Vì vậy, chúng ta hãy xem. 719 00:40:42,890 --> 00:40:44,390 Nó không cho tôi bất kỳ lỗi nào. 720 00:40:44,390 --> 00:40:46,810 Và chúng tôi sẽ đóng cửa này. 721 00:40:46,810 --> 00:40:51,020 Trên trang web của chúng tôi, bạn sẽ được làm rất nhiều rằng trong quá trình pset7. 722 00:40:51,020 --> 00:40:53,890 Vì vậy, chúng tôi nói tên tôi là Sam. 723 00:40:53,890 --> 00:40:58,560 Tuổi của tôi là 45. 724 00:40:58,560 --> 00:41:01,060 Nó không phải. 725 00:41:01,060 --> 00:41:05,640 Nhưng nó in ra, như mong đợi, Sam 45. 726 00:41:05,640 --> 00:41:08,930 >> Và do đó, bạn sẽ nhận thấy rằng những vòng lặp foreach did-- đây, 727 00:41:08,930 --> 00:41:12,360 chúng ta hãy trở lại đó để nó trên board-- chúng tôi nhận _GET như lời. 728 00:41:12,360 --> 00:41:15,130 Và có bốn điều trong _GET. 729 00:41:15,130 --> 00:41:17,410 Nhưng nó chỉ in ra hai điều. 730 00:41:17,410 --> 00:41:21,290 foreach, được tự mình thông minh, giả định rằng những gì chúng ta thực sự muốn 731 00:41:21,290 --> 00:41:24,100 là các giá trị, không phải là chìa khóa. 732 00:41:24,100 --> 00:41:27,800 >> Nhưng có một cách mà chúng ta có thể in ra các phím là tốt, nếu chúng ta muốn. 733 00:41:27,800 --> 00:41:30,810 Nếu chúng ta muốn cũng phải biết những gì các biến này được gọi là, 734 00:41:30,810 --> 00:41:33,540 có một cách mà chúng ta có thể truy cập này là tốt. 735 00:41:33,540 --> 00:41:36,840 Và cách để loại làm điều đó, vì vậy chúng tôi có thể nói, cho phép thực sự 736 00:41:36,840 --> 00:41:39,485 chia nó thành các cặp giá trị quan trọng. 737 00:41:39,485 --> 00:41:42,370 738 00:41:42,370 --> 00:41:47,580 Vì vậy, chúng ta hãy xem những gì sẽ xảy ra bây giờ. 739 00:41:47,580 --> 00:41:50,550 >> Vì vậy, chúng ta có chìa khóa. 740 00:41:50,550 --> 00:41:52,290 Chúng tôi có giá trị. 741 00:41:52,290 --> 00:41:56,650 Chúng tôi có một mới dòng cho dễ đọc. 742 00:41:56,650 --> 00:42:00,540 Và chúng ta hãy xem những gì sẽ xảy ra khi chúng ta làm điều này bây giờ. 743 00:42:00,540 --> 00:42:04,950 744 00:42:04,950 --> 00:42:06,720 Tôi không biết làm thế nào cũ là Jason. 745 00:42:06,720 --> 00:42:09,180 Jason của 15. 746 00:42:09,180 --> 00:42:11,650 Vì vậy, chúng tôi có tên Jason, 15 tuổi. 747 00:42:11,650 --> 00:42:15,830 Vì vậy, chúng tôi đã có thể truy cập các phím và cặp giá trị của từ điển này 748 00:42:15,830 --> 00:42:18,590 chỉ bằng cách nói điểm then chốt đối với giá trị. 749 00:42:18,590 --> 00:42:23,350 Và đó là một cú pháp foreach chút đường cho phép 750 00:42:23,350 --> 00:42:25,960 bạn truy cập vào những thứ có trong từ điển. 751 00:42:25,960 --> 00:42:31,190 >> Vì vậy, hy vọng loại này nhấn mạnh sức mạnh của các vòng lặp foreach. 752 00:42:31,190 --> 00:42:35,690 Bạn có khá nhiều ném bất cứ điều gì mà có vẻ iterable, 753 00:42:35,690 --> 00:42:38,922 giống như bất cứ điều gì mà có nhiều các yếu tố như một mảng, 754 00:42:38,922 --> 00:42:41,880 như một dictionary-- những người là hai điều chính bạn sẽ được làm việc với 755 00:42:41,880 --> 00:42:45,630 cả trong cuộc sống và trong pset 7. 756 00:42:45,630 --> 00:42:49,350 Vì vậy, bạn có thể ném những thứ đó vào nó, và nó sẽ tìm ra 757 00:42:49,350 --> 00:42:51,030 những gì bạn muốn làm gì với nó. 758 00:42:51,030 --> 00:42:54,250 Nó sẽ nói, OK, tôi sẽ có được những việc này từ các dữ liệu mà 759 00:42:54,250 --> 00:42:55,680 đã được chuyền đến tay tôi. 760 00:42:55,680 --> 00:43:02,470 Và đó là một cái gì đó mà bạn sẽ được sử dụng rất nhiều trong pset 7. 761 00:43:02,470 --> 00:43:08,550 >> Tôi sẽ nhanh chóng cuộn xuống chỉ để xem nơi tôi đang ở. 762 00:43:08,550 --> 00:43:11,410 763 00:43:11,410 --> 00:43:13,070 Người dân có câu hỏi vào thời điểm này? 764 00:43:13,070 --> 00:43:13,778 Câu hỏi ở tất cả? 765 00:43:13,778 --> 00:43:14,400 Vâng? 766 00:43:14,400 --> 00:43:18,320 >> Đung Vì vậy, với những khoá và giá trị bạn có thể đặt tên cho nó bất cứ điều gì khác 767 00:43:18,320 --> 00:43:20,507 và nó vẫn sẽ làm việc? 768 00:43:20,507 --> 00:43:21,090 SPEAKER: Oops. 769 00:43:21,090 --> 00:43:22,820 Wow, tôi hoàn toàn bị xóa toàn bộ dòng. 770 00:43:22,820 --> 00:43:23,380 Great làm việc. 771 00:43:23,380 --> 00:43:26,502 Vì vậy, một, một. 772 00:43:26,502 --> 00:43:30,109 Key và giá trị chỉ là một quy ước. 773 00:43:30,109 --> 00:43:30,650 Nó rất hữu ích. 774 00:43:30,650 --> 00:43:34,010 Bạn sẽ nhận được một số thiết kế điểm, có thể một số điểm phong cách 775 00:43:34,010 --> 00:43:36,970 để làm điều đó bởi vì nó thực sự truyền tải được ý định. 776 00:43:36,970 --> 00:43:39,650 Nhưng chúng ta nói a và yarp. 777 00:43:39,650 --> 00:43:42,476 >> Đung Bạn không cần phải thay đổi bất cứ điều gì trong tập tin HTML 778 00:43:42,476 --> 00:43:43,607 để phản ánh điều đó? 779 00:43:43,607 --> 00:43:44,440 SPEAKER: Không phải ở tất cả. 780 00:43:44,440 --> 00:43:47,260 Đung Và nó chỉ biết rằng vì bằng than-- lớn hơn 781 00:43:47,260 --> 00:43:47,801 SPEAKER: Yes. 782 00:43:47,801 --> 00:43:49,489 Đung chỉ --that rằng that's-- 783 00:43:49,489 --> 00:43:50,030 SPEAKER: Yes. 784 00:43:50,030 --> 00:43:52,260 Đó là một cú pháp foreach, nhưng đúng. 785 00:43:52,260 --> 00:43:53,720 >> Đung Không có loại. 786 00:43:53,720 --> 00:43:57,230 Vì vậy, những gì nếu bạn muốn tuổi chỉ là một con số? 787 00:43:57,230 --> 00:43:59,510 Có cách nào để làm điều đó? 788 00:43:59,510 --> 00:44:04,550 >> SPEAKER: Có nhiều cách để kiểm tra xem biến phù hợp với một số loại. 789 00:44:04,550 --> 00:44:08,482 Vì vậy, PHP hỏi nhiều hơn một chút từ bạn bởi vì không có loại trong. 790 00:44:08,482 --> 00:44:09,440 Một số cách nó yêu cầu ít hơn. 791 00:44:09,440 --> 00:44:11,070 Trong một số cách nó yêu cầu nhiều hơn. 792 00:44:11,070 --> 00:44:13,320 Bởi vì nếu bạn có chỉ một cái gì đó trong một biến, 793 00:44:13,320 --> 00:44:14,960 bạn không có ý tưởng những gì loại nó được. 794 00:44:14,960 --> 00:44:19,310 Nhưng nếu bạn là thông minh về các biến mà bạn chỉ định kiểu cho và chắc chắn 795 00:44:19,310 --> 00:44:22,750 có chức năng chỉ return-- bạn muốn chức năng để chỉ trở lại 796 00:44:22,750 --> 00:44:26,210 một loại giá trị như vậy mà bạn có thể cơ bản 797 00:44:26,210 --> 00:44:31,090 mong rằng các biến bạn trở lại từ một chức năng sẽ là loại 798 00:44:31,090 --> 00:44:32,780 mà bạn nghĩ rằng nó sẽ được, về cơ bản. 799 00:44:32,780 --> 00:44:36,550 >> Nhưng có một số phương pháp do đó bạn có thể kiểm tra. 800 00:44:36,550 --> 00:44:39,801 Tôi không nhớ chúng ra khỏi đỉnh đầu của tôi. 801 00:44:39,801 --> 00:44:43,300 Tôi đang chờ đợi cho nó để chuyển sang màu xanh. 802 00:44:43,300 --> 00:44:45,560 isint? 803 00:44:45,560 --> 00:44:48,070 isstr? 804 00:44:48,070 --> 00:44:52,000 Có nhiều phương pháp được xây dựng vào PHP mà có thể 805 00:44:52,000 --> 00:44:54,440 kiểm tra các loại biến cho bạn. 806 00:44:54,440 --> 00:44:58,250 Nhưng nếu bạn gán biến thông minh, bạn không nên 807 00:44:58,250 --> 00:45:01,330 phải làm điều đó quá nhiều trong pset 7. 808 00:45:01,330 --> 00:45:02,780 Nhưng các phương pháp đó không tồn tại. 809 00:45:02,780 --> 00:45:06,704 Và đó là một cái gì đó mà là bằng ngôn ngữ riêng của mình. 810 00:45:06,704 --> 00:45:08,370 Và tôi không nhớ cú pháp chính xác. 811 00:45:08,370 --> 00:45:09,930 Chúng tôi thậm chí có thể nhìn nó lên. 812 00:45:09,930 --> 00:45:11,974 Nhưng thời gian là điều cốt yếu. 813 00:45:11,974 --> 00:45:13,890 Có ai khác có có bất kỳ câu hỏi nhiều hơn? 814 00:45:13,890 --> 00:45:14,660 Vâng. 815 00:45:14,660 --> 00:45:15,951 >> Đung Tôi chỉ có một nhiều hơn. 816 00:45:15,951 --> 00:45:19,050 Vì vậy, bạn đề cập đến các phương thức GET, nhưng bạn không đề cập đến các phương thức POST. 817 00:45:19,050 --> 00:45:20,500 Có phải chúng ta quay trở lại với điều đó? 818 00:45:20,500 --> 00:45:21,540 >> SPEAKER: Vâng, chúng tôi sẽ được trở lại đó. 819 00:45:21,540 --> 00:45:24,840 Đó chính xác là những gì tôi đang tìm kiếm vào điện thoại của tôi, mà bây giờ đã ngủ, 820 00:45:24,840 --> 00:45:26,960 nhưng tôi sẽ tìm thấy nó. 821 00:45:26,960 --> 00:45:30,680 Chỉ cần đảm bảo rằng chúng tôi nhấn tất cả các ghi chú PHP. 822 00:45:30,680 --> 00:45:35,640 Yep, không có phiên bản sửa lỗi. 823 00:45:35,640 --> 00:45:41,940 Có, chúng tôi có một vài điều nữa mà chúng tôi muốn làm bây giờ vào thời điểm này. 824 00:45:41,940 --> 00:45:45,980 >> Vì vậy, nói về POST, mà bạn đã đề cập, 825 00:45:45,980 --> 00:45:49,630 sự khác biệt duy nhất giữa GET và POST là 826 00:45:49,630 --> 00:45:53,150 mà nhớ khi chúng ta nhìn tại URL này và chúng ta đã thấy, oh, 827 00:45:53,150 --> 00:45:58,270 Tên bằng a và tuổi bằng yarp là đúng trong các URL đó cho chúng ta. 828 00:45:58,270 --> 00:46:03,300 POST là bí mật nhiều hơn một chút với thông qua quyết định của thông tin. 829 00:46:03,300 --> 00:46:08,090 >> Vì vậy, nếu bạn không muốn người dùng cho biết, ví dụ, bạn 830 00:46:08,090 --> 00:46:11,160 không muốn tên người dùng và mật khẩu của người 831 00:46:11,160 --> 00:46:15,080 hiện đang đăng nhập để được hiển thị trong URL, đó là một điều hợp lý 832 00:46:15,080 --> 00:46:17,770 không muốn trong URL, vì một người nào đó có thể nhìn thấy nó. 833 00:46:17,770 --> 00:46:21,520 Nếu họ liên kết một người nào đó đến một trang, bạn không muốn URL của họ dán ở đó, 834 00:46:21,520 --> 00:46:27,850 vì đó sẽ cho phép mọi người đăng nhập chỉ với dán các URL thay vì 835 00:46:27,850 --> 00:46:29,670 của thực tế việc điền vào một mẫu đơn. 836 00:46:29,670 --> 00:46:31,710 POST là một chút bí mật hơn. 837 00:46:31,710 --> 00:46:34,150 >> Và điều duy nhất mà chúng tôi sẽ phải thay đổi 838 00:46:34,150 --> 00:46:38,550 là phương pháp này, thay đổi từ nhận được để gửi. 839 00:46:38,550 --> 00:46:42,367 Và sau đó bên trong HTTP, thay vì truy cập vào các mảng _GET, 840 00:46:42,367 --> 00:46:43,950 chúng ta sẽ truy cập vào các mảng _POST. 841 00:46:43,950 --> 00:46:48,600 >> Và chúng ta sẽ nhận thấy rằng, nếu chúng tôi mở lại này lên một lần nữa, 842 00:46:48,600 --> 00:46:51,910 Jason từ từ giảm đi tuổi. 843 00:46:51,910 --> 00:46:53,230 tên Jason, 14 tuổi. 844 00:46:53,230 --> 00:46:54,280 Các công cụ tương bật lên. 845 00:46:54,280 --> 00:46:57,190 Nhưng chúng tôi đi đến URL và các biến là không có. 846 00:46:57,190 --> 00:47:00,540 >> Và cách mà POST passes-- nên nhớ 847 00:47:00,540 --> 00:47:02,750 làm thế nào để nhìn vào mã nguồn của một trang. 848 00:47:02,750 --> 00:47:04,570 Chúng tôi đi vào mạng. 849 00:47:04,570 --> 00:47:06,920 Chúng tôi làm mới. 850 00:47:06,920 --> 00:47:10,690 Và đây là một điều mà POST sẽ cung cấp cho bạn những cảnh báo về. 851 00:47:10,690 --> 00:47:15,050 Bạn có thể đã thấy một cái hộp, một văn bản hộp như thế này trong trình duyệt của bạn. 852 00:47:15,050 --> 00:47:18,170 Bạn có chắc chắn bạn muốn để gửi một mẫu một lần nữa? 853 00:47:18,170 --> 00:47:21,170 POST là những gì đang gửi những hình thức. 854 00:47:21,170 --> 00:47:24,680 >> Bởi vì về cơ bản nếu bạn gửi của bạn thông tin thẻ tín dụng với một ai đó, 855 00:47:24,680 --> 00:47:26,350 đó không phải đi để hiển thị trong URL. 856 00:47:26,350 --> 00:47:28,180 Đó sẽ là một yêu cầu POST. 857 00:47:28,180 --> 00:47:32,905 Vì vậy, khi bạn làm mới trang, nó gửi lại rằng yêu cầu của bài. 858 00:47:32,905 --> 00:47:35,530 Vì vậy, bây giờ chúng tôi muốn gửi hình thành một lần nữa bởi vì nó không phải đi 859 00:47:35,530 --> 00:47:37,340 để tạo ra bất kỳ mua hàng trùng lặp. 860 00:47:37,340 --> 00:47:41,160 >> Và chúng ta sẽ nhận thấy rằng ở đây, phương pháp chúng tôi đang sử dụng là POST. 861 00:47:41,160 --> 00:47:43,065 Và nó đã thực sự chuyển byte. 862 00:47:43,065 --> 00:47:45,460 Nó chuyển 401 của họ. 863 00:47:45,460 --> 00:47:47,190 Của chương trình khá nhỏ. 864 00:47:47,190 --> 00:47:51,600 Nhưng có nơi nào mà chúng ta có thể nhìn thấy các giá trị được được thông qua. 865 00:47:51,600 --> 00:47:59,540 Các trang web có thể tự mình nhìn thấy, nhưng chúng tôi như người dùng không thể nhìn thấy, 866 00:47:59,540 --> 00:48:01,650 trừ khi bạn là một hacker. 867 00:48:01,650 --> 00:48:05,340 Nếu bạn là một hacker tốt, bạn có thể nhìn. 868 00:48:05,340 --> 00:48:09,360 >> Nếu bạn biết cơ bản định dạng của HTML, 869 00:48:09,360 --> 00:48:11,790 các giá trị sẽ làm cho mình được biết trong các trang. 870 00:48:11,790 --> 00:48:13,160 Bạn sẽ có thể nhìn thấy. 871 00:48:13,160 --> 00:48:16,720 Các giá trị sẽ có mặt ở đó, họ chỉ là một chút ít rõ ràng hơn cho bạn 872 00:48:16,720 --> 00:48:19,522 để truy cập, về cơ bản. 873 00:48:19,522 --> 00:48:23,620 >> Do chúng tôi có bất kỳ chi tiết câu hỏi về GET, POST 874 00:48:23,620 --> 00:48:26,800 before-- những gì chúng ta sẽ làm gì tiếp theo đang thực sự nhìn vào một số mã 875 00:48:26,800 --> 00:48:30,837 rằng bạn đang đưa ra trong pset 7, nói về cách nó sử dụng một số khái niệm, 876 00:48:30,837 --> 00:48:32,670 và nói về những điều mà bạn đang đi 877 00:48:32,670 --> 00:48:35,090 phải làm một chút trong pset 7. 878 00:48:35,090 --> 00:48:36,760 Bất kỳ câu hỏi nhiều hơn trước đó? 879 00:48:36,760 --> 00:48:38,047 Nhiều câu hỏi các bạn có? 880 00:48:38,047 --> 00:48:41,250 881 00:48:41,250 --> 00:48:41,840 Thật tuyệt. 882 00:48:41,840 --> 00:48:45,370 >> Được rồi, chúng ta hãy nhìn một chút tại pset 7, 883 00:48:45,370 --> 00:48:49,530 không có nghi ngờ gì bạn đang có tất cả vui mừng nhất. 884 00:48:49,530 --> 00:48:52,126 885 00:48:52,126 --> 00:48:54,750 Ý tôi là, đây là một cái gì đó David đi qua một chút. 886 00:48:54,750 --> 00:49:00,890 Nhưng chúng tôi sẽ có ba thư mục ở hàng đầu, cũng như một tập tin cấu hình. 887 00:49:00,890 --> 00:49:04,650 Đó là cơ sở dữ liệu cho, mà chúng tôi sẽ nói về trong khoảng năm phút. 888 00:49:04,650 --> 00:49:07,220 Bao gồm, bạn không bao giờ cần tìm trong thư mục này 889 00:49:07,220 --> 00:49:12,480 nếu bạn không muốn nhưng nó là tốt đẹp để biết có tất cả các loại của người trợ giúp. 890 00:49:12,480 --> 00:49:14,210 Helpers là như chức năng hữu ích. 891 00:49:14,210 --> 00:49:18,120 Và sau đó chúng tôi có cấu hình, trong đó đặt một số thứ lên. 892 00:49:18,120 --> 00:49:24,590 >> Có một số chức năng mà có CS50 văn bản có trong helper và config. 893 00:49:24,590 --> 00:49:27,250 Và một số các PHP đã thoát ra trong các tập tin 894 00:49:27,250 --> 00:49:30,880 sẽ làm rất nhiều loại hơn công việc chân của tù cho bạn. 895 00:49:30,880 --> 00:49:35,250 Cũng giống như nếu chúng ta đi vào công cộng login.php, đó là những gì 896 00:49:35,250 --> 00:49:38,350 hiện lên ngay khi bạn đi vào pset 7. 897 00:49:38,350 --> 00:49:40,580 Chúng ta sẽ thấy rằng có này yêu cầu tuyên bố. 898 00:49:40,580 --> 00:49:43,420 Và đó là loại giống như một sắc nét bao gồm, hashtag 899 00:49:43,420 --> 00:49:46,850 bao gồm nếu bạn là của một thế hệ mới hơn. 900 00:49:46,850 --> 00:49:49,740 Nhưng về cơ bản này nói rằng tôi cần phải truy cập 901 00:49:49,740 --> 00:49:52,260 cho tất cả các chức năng trong config.php. 902 00:49:52,260 --> 00:49:55,290 Và bạn có thể có một yêu cầu cho tất cả các loại vật khác. 903 00:49:55,290 --> 00:49:59,670 >> cấu hình thực sự đòi hỏi người trợ giúp. 904 00:49:59,670 --> 00:50:02,490 Vì vậy, bất cứ khi nào bạn cần config, bạn cũng 905 00:50:02,490 --> 00:50:05,660 bao gồm hoặc yêu cầu người giúp việc tốt. 906 00:50:05,660 --> 00:50:09,590 Vì vậy, cung cấp cho bạn truy cập vào tất cả các chức năng mát mà chúng ta đang sử dụng, 907 00:50:09,590 --> 00:50:10,420 những điều muốn làm. 908 00:50:10,420 --> 00:50:13,490 Tôi thực sự sẽ dễ dàng này xuống một chút. 909 00:50:13,490 --> 00:50:16,280 Vì vậy, các chức năng sau đó chúng tôi sẽ đi bộ qua 910 00:50:16,280 --> 00:50:22,380 ngay trước khi chúng ta chuyển đến SQL một chút bit là chức năng login.php, chỉ 911 00:50:22,380 --> 00:50:26,586 bởi vì nó sử dụng một số các chủ đề mà chúng ta vừa nói đến trong PHP. 912 00:50:26,586 --> 00:50:30,840 >> Bạn thấy điều đầu tiên là nếu $ _SERVER. 913 00:50:30,840 --> 00:50:34,500 Đây là một biến toàn cầu bạn sẽ được xử lý. 914 00:50:34,500 --> 00:50:38,460 Nó giống như _GET và _POST, nhưng những gì máy chủ chứa là điều này có thể cho bạn 915 00:50:38,460 --> 00:50:42,730 biết nếu phương thức yêu cầu là một GET hoặc POST. 916 00:50:42,730 --> 00:50:47,250 Giống như trước đây những gì chúng tôi đã làm chỉ là trong mã của chúng tôi mà chúng tôi đã viết, 917 00:50:47,250 --> 00:50:51,880 chúng tôi chỉ thay đổi nó là GET và POST phụ thuộc vào những gì mà HTML có. 918 00:50:51,880 --> 00:50:55,120 Nhưng có những trang mà có thể truy cập với cả hai kiểu yêu cầu. 919 00:50:55,120 --> 00:50:57,410 Và bạn có thể muốn làm những thứ khác nhau tùy thuộc 920 00:50:57,410 --> 00:50:59,740 vào loại yêu cầu, chỉ đăng nhập như nào. 921 00:50:59,740 --> 00:51:04,400 >> Vì vậy, bạn có thể kiểm tra yêu cầu đó phương pháp truy cập thông qua các phím, 922 00:51:04,400 --> 00:51:08,630 thông qua sử dụng một chìa khóa và nhận được giá trị của một cái gì đó có trong từ điển 923 00:51:08,630 --> 00:51:10,260 _SERVER. 924 00:51:10,260 --> 00:51:13,800 Vì vậy, đó là một toàn cầu biến như thế _GET và _POST. 925 00:51:13,800 --> 00:51:16,990 >> Nếu nó GET, chúng tôi muốn làm cho các mẫu đăng nhập. 926 00:51:16,990 --> 00:51:21,920 Render là một chức năng mà về cơ bản chỉ đặt lên thích hợp HTML 927 00:51:21,920 --> 00:51:24,500 và vượt qua nó một số thông số. 928 00:51:24,500 --> 00:51:28,740 Tiêu đề này là một tham số đó là được sử dụng trong việc hiển thị, kỳ quặc đủ, 929 00:51:28,740 --> 00:51:32,670 tiêu đề của trang trong câu hỏi, các điều lên đây, 930 00:51:32,670 --> 00:51:34,850 nói hoặc hello trong ví dụ trước. 931 00:51:34,850 --> 00:51:36,100 Bây giờ chúng tôi có một điều khác nhau. 932 00:51:36,100 --> 00:51:38,570 Khác nếu đó là POST, chúng tôi làm một số công cụ khác. 933 00:51:38,570 --> 00:51:40,790 Chúng tôi đang sử dụng là phương pháp có sản phẩm nào. 934 00:51:40,790 --> 00:51:42,750 Nó không tồn tại, nó trống. 935 00:51:42,750 --> 00:51:45,440 Và chúng ta đã thấy trước đây, PHP có một số tiền hợp lý của xây dựng 936 00:51:45,440 --> 00:51:52,370 trong phương pháp mà David will-- nếu có là phương pháp hữu ích cho bạn, 937 00:51:52,370 --> 00:51:55,560 họ sẽ được thông báo cho bạn trong bộ qua rằng David 938 00:51:55,560 --> 00:51:59,770 cho qua tổng kết bắt đầu, và cũng bit hữu ích của Zamyla. 939 00:51:59,770 --> 00:52:01,040 Cô trở lại tất cả mọi người. 940 00:52:01,040 --> 00:52:03,100 Tất cả chúng ta có thể vui mừng. 941 00:52:03,100 --> 00:52:06,530 xin lỗi là một chức năng có tên là aptly mà về cơ bản chỉ in ra 942 00:52:06,530 --> 00:52:10,130 một số thông báo lỗi, vì CS50 là rất lịch sự. 943 00:52:10,130 --> 00:52:14,770 >> Và bây giờ điều này, đây là một hơi khó khăn vì đây 944 00:52:14,770 --> 00:52:16,697 là nơi mà chúng ta đang truy vấn cơ sở dữ liệu. 945 00:52:16,697 --> 00:52:18,280 Bây giờ chúng tôi đã không nói về cơ sở dữ liệu. 946 00:52:18,280 --> 00:52:22,220 Và chúng ta sẽ ở bên cạnh năm phút hoặc lâu hơn, tối đa. 947 00:52:22,220 --> 00:52:24,980 Nhưng đây là một chức năng CS50 đã viết 948 00:52:24,980 --> 00:52:38,050 để có được một bảng cơ sở dữ liệu cơ bản từ một rằng chúng tôi đang làm việc với trong pset 7. 949 00:52:38,050 --> 00:52:40,860 Tôi thực sự xấu với tôi không lập chỉ mục ngày nay. 950 00:52:40,860 --> 00:52:42,060 Nhưng có, đó là 7. 951 00:52:42,060 --> 00:52:46,340 >> Vì vậy, truy vấn nó sẽ trả lại một mảng, về cơ bản là các bit. 952 00:52:46,340 --> 00:52:54,130 Và bởi vì những điều này không có đánh máy, do đó hàng là một mảng của mảng. 953 00:52:54,130 --> 00:52:59,480 Bởi vì khi chúng ta nghĩ về một bảng, những gì chúng tôi đang đi làm 954 00:52:59,480 --> 00:53:04,830 là, như bạn đã học được trong psets giống như các trò chơi của 15, anyway 955 00:53:04,830 --> 00:53:06,990 nơi bạn phải sử dụng một mảng hai, chúng tôi về cơ bản 956 00:53:06,990 --> 00:53:15,210 có mảng khác mảng làm cho một bảng. 957 00:53:15,210 --> 00:53:18,150 Và bạn đã có hàng và cột. 958 00:53:18,150 --> 00:53:24,450 Và sau đó bạn có thể truy cập chúng như [0] [1], bạn sẽ có được [0] [1]. 959 00:53:24,450 --> 00:53:26,900 Nội dung cơ bản như thế. 960 00:53:26,900 --> 00:53:29,380 >> Vì vậy, những gì chúng tôi đang làm ở đây trong chức năng này, 961 00:53:29,380 --> 00:53:35,070 chúng tôi đang yêu cầu các cơ sở dữ liệu nếu người sử dụng đó là 962 00:53:35,070 --> 00:53:40,200 cố gắng để đăng nhập, đó sẽ là gửi thông qua phương thức POST. 963 00:53:40,200 --> 00:53:43,950 Chúng ta sẽ thấy chúng tôi đang nhận tên người dùng từ _POST. 964 00:53:43,950 --> 00:53:46,900 Họ sẽ đã gửi, người sử dụng hoặc bạn sẽ gửi một giá trị 965 00:53:46,900 --> 00:53:50,750 thông qua một hình thức thông qua POST vì đó là tên người dùng và mật khẩu công cụ. 966 00:53:50,750 --> 00:53:54,830 Chúng tôi đang kiểm tra tên người dùng để xem, là này trong bảng? 967 00:53:54,830 --> 00:53:58,070 Bởi vì nếu một người dùng đăng nhập trong, sau đó ghi tên người 968 00:53:58,070 --> 00:54:03,320 nên được lưu trữ trong các bảng người dùng có cho trang web này. 969 00:54:03,320 --> 00:54:09,360 Vì vậy, về cơ bản nếu sử dụng là trong cơ sở dữ liệu, 970 00:54:09,360 --> 00:54:16,400 truy vấn sẽ trả lại hàng đó, mà là một mảng. 971 00:54:16,400 --> 00:54:24,560 >> Nhưng phần khó là nếu ngay cả nếu mảng đôi chỉ trong một hàng, 972 00:54:24,560 --> 00:54:31,900 thậm chí nếu đó là một hàng một array-- như bạn đã có basically-- 973 00:54:31,900 --> 00:54:36,900 nếu bạn đã có một kích thước một mảng đó là giữ một mảng khác, 974 00:54:36,900 --> 00:54:38,940 bạn đang thực sự đối phó với một cột. 975 00:54:38,940 --> 00:54:41,420 Nhưng nó vẫn còn điều trị giống như một mảng đôi. 976 00:54:41,420 --> 00:54:44,560 >> Và đây là nơi mà đôi khi nó có thể nhận được khó khăn, bởi vì chúng tôi đã có hàng ở đây. 977 00:54:44,560 --> 00:54:46,440 Biến của chúng tôi là hàng. 978 00:54:46,440 --> 00:54:48,590 Và sau đó chúng tôi đang tạo một biến gọi là hàng mới 979 00:54:48,590 --> 00:54:51,450 và đặt nó bằng với hàng đầu tiên của hàng. 980 00:54:51,450 --> 00:54:55,150 Và bạn sẽ nhận thấy rằng bình luận nói đó là hàng đầu tiên và duy nhất. 981 00:54:55,150 --> 00:54:57,080 >> Vì vậy, đây là khó khăn phần mà bây giờ chức năng 982 00:54:57,080 --> 00:54:59,660 có thể trở lại mảng rất dễ dàng. 983 00:54:59,660 --> 00:55:01,270 Không có mallocs. 984 00:55:01,270 --> 00:55:02,280 Bạn sẽ không thấy mallocs. 985 00:55:02,280 --> 00:55:03,940 Vì vậy, bạn sẽ không nhìn thấy lỗi seg. 986 00:55:03,940 --> 00:55:08,380 Nhưng chức năng vẫn sẽ đi qua xung quanh các mảng và các dữ liệu trong nhóm. 987 00:55:08,380 --> 00:55:12,250 Và bạn phải cảnh giác với những gì chính xác chức năng của bạn sẽ trở lại. 988 00:55:12,250 --> 00:55:15,160 Và thậm chí nếu nó là một cột như thế này, truy vấn 989 00:55:15,160 --> 00:55:17,520 vẫn sẽ trả về một mảng đôi. 990 00:55:17,520 --> 00:55:21,390 Vì vậy, để truy cập mà column-- hoặc bạn có thể nghĩ về tất cả những điều này là đảo ngược 991 00:55:21,390 --> 00:55:22,870 kể từ khi chúng ta đang nói về hàng. 992 00:55:22,870 --> 00:55:26,810 Nhưng để truy cập vào một hàng, bạn không thể chỉ nói hàng. 993 00:55:26,810 --> 00:55:31,540 Mặc dù nó là một dòng, bạn phải làm rowsrows [0] để loại trừ này 994 00:55:31,540 --> 00:55:37,360 bit ngoài của mảng và chỉ có một hàng của bạn. 995 00:55:37,360 --> 00:55:38,342 >> Do một số thứ khác. 996 00:55:38,342 --> 00:55:40,050 Có một chức năng gọi password_verify 997 00:55:40,050 --> 00:55:42,980 mà xác minh mật khẩu đã được đăng. 998 00:55:42,980 --> 00:55:48,500 Và sau đó chúng ta thấy một toàn cầu biến ở đây, _SESSION. 999 00:55:48,500 --> 00:55:51,340 Về cơ bản phiên id là làm thế nào bạn theo dõi 1000 00:55:51,340 --> 00:55:53,990 của ai đó đang đăng nhập hay không. 1001 00:55:53,990 --> 00:55:58,590 Vì vậy, ngay bây giờ với login.php, chúng tôi đang đăng nhập người dùng trong. 1002 00:55:58,590 --> 00:56:01,920 Vì vậy, những gì chúng tôi muốn làm là chúng ta muốn nói phiên id bằng hàng 1003 00:56:01,920 --> 00:56:05,890 id, mà chỉ có ý nghĩa vì mỗi hàng sẽ có một id khác nhau 1004 00:56:05,890 --> 00:56:07,239 số như là một phần của bảng. 1005 00:56:07,239 --> 00:56:09,280 Chúng tôi sẽ nhận được vào SQL trong một thứ hai, do đó, nếu bất cứ điều này 1006 00:56:09,280 --> 00:56:13,500 có vẻ như một chút như blah, sau đó tất cả sẽ được làm sáng tỏ. 1007 00:56:13,500 --> 00:56:18,450 Nhưng chúng ta sẽ thiết lập id bằng điều thích hợp, đăng nhập người sử dụng trong. 1008 00:56:18,450 --> 00:56:20,530 Xin lỗi nếu bất cứ điều gì sai trái. 1009 00:56:20,530 --> 00:56:27,600 Và đó là mục đích trong thông tin đăng nhập cuộc sống như giáo sư Malan sẽ nói. 1010 00:56:27,600 --> 00:56:29,130 >> Vì vậy, đó là login.php. 1011 00:56:29,130 --> 00:56:33,750 Và rất nhiều các mã PHP bạn viết trong pset 7, họ sẽ có một chút. 1012 00:56:33,750 --> 00:56:36,470 Đừng quên chmod để các điều khoản thích hợp. 1013 00:56:36,470 --> 00:56:40,180 Sẽ có một chút ít về rằng trong đầu của spec. 1014 00:56:40,180 --> 00:56:46,382 >> Nhưng PHP mà bạn văn bản là có được 1015 00:56:46,382 --> 00:56:47,840 làm công cụ đó là tương tự như này. 1016 00:56:47,840 --> 00:56:49,715 Bạn đang đi đến được truy cập vào một số thứ 1017 00:56:49,715 --> 00:56:52,760 được trao cho bạn trong biến toàn cầu của PHP 1018 00:56:52,760 --> 00:56:56,105 đang đối phó với hiện tại đăng nhập người dùng, cho dù có 1019 00:56:56,105 --> 00:57:00,460 có được yêu cầu gửi đến này trang, những thứ khác nhau như thế. 1020 00:57:00,460 --> 00:57:05,790 Và nó cũng sẽ có khả năng lặp lại thông qua các hàng của điều này. 1021 00:57:05,790 --> 00:57:09,010 >> Trong một chức năng khác nhau, truy vấn không trả lại mảng này tăng gấp đôi. 1022 00:57:09,010 --> 00:57:11,450 Và nếu có nhiều hơn một hàng trong nó, 1023 00:57:11,450 --> 00:57:15,080 nếu có are-- có, nếu có nhiều hơn một hàng trong nó, 1024 00:57:15,080 --> 00:57:16,870 sau đó nó sẽ được một bảng. 1025 00:57:16,870 --> 00:57:20,500 Và bạn có thể muốn lặp qua các hàng của mảng này sử dụng 1026 00:57:20,500 --> 00:57:22,860 vòng lặp foreach mà chúng tôi mô tả. 1027 00:57:22,860 --> 00:57:30,270 >> Vì vậy, nếu bạn làm foreach trên một đôi mảng, những gì sẽ là word-- đây, 1028 00:57:30,270 --> 00:57:31,909 Tôi thực sự sẽ viết nó. 1029 00:57:31,909 --> 00:57:32,950 Tôi sẽ viết nó nhanh chóng ở đây. 1030 00:57:32,950 --> 00:57:44,280 >> Nếu chúng ta có một foreach hàng theo hàng, loại hàng là gì? 1031 00:57:44,280 --> 00:57:45,390 Có ai biết không? 1032 00:57:45,390 --> 00:57:54,000 1033 00:57:54,000 --> 00:57:54,500 Bạn đã nhận nó? 1034 00:57:54,500 --> 00:57:57,110 Vì vậy, các hàng là một mảng đôi. 1035 00:57:57,110 --> 00:58:02,810 Vì vậy, những gì đang foreach sẽ suy ra mà chúng tôi muốn từ mảng này tăng gấp đôi 1036 00:58:02,810 --> 00:58:04,280 nếu chúng ta lặp qua nó? 1037 00:58:04,280 --> 00:58:07,170 1038 00:58:07,170 --> 00:58:10,770 Chúng tôi về cơ bản có thể giả định rằng nó sẽ là một trong hai yếu tố, 1039 00:58:10,770 --> 00:58:14,970 hoặc các hàng, cột, về cơ bản. 1040 00:58:14,970 --> 00:58:18,740 Và như vậy các hàng và cột chúng ta có thể điều trị như điều tương tự. 1041 00:58:18,740 --> 00:58:23,880 >> Về cơ bản những gì các vòng lặp foreach sẽ làm là nó sẽ trả lại hàng. 1042 00:58:23,880 --> 00:58:28,500 hàng là có được các loại hàng, trong khi đó hàng là một mảng đôi. 1043 00:58:28,500 --> 00:58:32,290 Vì vậy, nếu bạn cung cấp cho foreach một mảng hai, đó là 1044 00:58:32,290 --> 00:58:35,830 sẽ không để lặp nhiều hơn một mức độ sâu sắc. 1045 00:58:35,830 --> 00:58:44,464 Đó là cơ bản để nói nếu có tám tế bào trong này table-- 1,2, 1046 00:58:44,464 --> 00:58:48,110 3 4, 5, 6, 7, 8-- sự foreach vòng lặp không phải là 1047 00:58:48,110 --> 00:58:51,880 sẽ đi qua từng tế bào. 1048 00:58:51,880 --> 00:58:56,390 Những gì các vòng lặp foreach sẽ làm được nó sẽ đi qua hàng này, 1049 00:58:56,390 --> 00:58:57,870 cung cấp cho bạn toàn bộ hàng này. 1050 00:58:57,870 --> 00:58:59,410 Và sau đó nó sẽ đi qua hàng đó. 1051 00:58:59,410 --> 00:59:01,850 >> Vì vậy, nó chỉ lặp một mức độ sâu sắc. 1052 00:59:01,850 --> 00:59:05,310 Nếu bạn thêm một lồng nhau foreach vòng lặp, sau đó bạn 1053 00:59:05,310 --> 00:59:16,280 có thể đối xử với mỗi hàng trở về từ hàng, bạn làm hàng foreach là nguyên tố, 1054 00:59:16,280 --> 00:59:17,640 hãy cùng nói nào. 1055 00:59:17,640 --> 00:59:22,750 Và sau đó bạn có thể đồng nguyên tố này. 1056 00:59:22,750 --> 00:59:24,930 Vì vậy, đó là một bản tóm tắt chút bồi dưỡng về cách 1057 00:59:24,930 --> 00:59:30,220 bạn có thể được sử dụng foreach vòng trong bối cảnh của câu truy vấn. 1058 00:59:30,220 --> 00:59:32,840 >> Có bất kỳ câu hỏi về PHP? 1059 00:59:32,840 --> 00:59:36,520 Bất cứ điều gì ở tất cả trước khi chúng ta chuyển sang nói về SQL 1060 00:59:36,520 --> 00:59:37,820 và những niềm vui của cơ sở dữ liệu? 1061 00:59:37,820 --> 00:59:41,480 1062 00:59:41,480 --> 00:59:42,110 Cảm thấy tốt? 1063 00:59:42,110 --> 00:59:42,750 Cảm thấy tốt. 1064 00:59:42,750 --> 00:59:43,470 Được rồi. 1065 00:59:43,470 --> 00:59:49,130 >> Chúng ta hãy chuyển trở lại PowerPoint, mà bạn có thể bỏ lỡ. 1066 00:59:49,130 --> 00:59:51,800 SQL, yay. 1067 00:59:51,800 --> 00:59:57,900 Những người trong phần của tôi thường sẽ biết rằng các phân nhóm từ viết tắt 1068 00:59:57,900 --> 01:00:01,220 luôn luôn chỉ là những từ đầu tiên Tôi nghĩ về trận đấu đó mà 1069 01:00:01,220 --> 01:00:02,690 algorithm-- từ viết tắt mà. 1070 01:00:02,690 --> 01:00:04,090 Nó không phải là một thuật toán. 1071 01:00:04,090 --> 01:00:08,050 >> Vì vậy, một cơ sở dữ liệu SQL là. 1072 01:00:08,050 --> 01:00:11,060 Đó là một ngôn ngữ làm việc với cơ sở dữ liệu. 1073 01:00:11,060 --> 01:00:14,440 Và tất cả các cơ sở dữ liệu đang là bảng, ít nhất là trong cách 1074 01:00:14,440 --> 01:00:17,220 SQL mà đại diện cho họ. 1075 01:00:17,220 --> 01:00:23,610 >> Một cách khác để suy nghĩ về cơ sở dữ liệu là cơ sở dữ liệu là một tập hợp các phím và các giá trị 1076 01:00:23,610 --> 01:00:24,110 về cơ bản. 1077 01:00:24,110 --> 01:00:29,530 Bạn có thể nghĩ về một cơ sở dữ liệu như một từ điển và cũng như một bảng. 1078 01:00:29,530 --> 01:00:34,300 Về cơ bản đó là một cách để liên kết dữ liệu khác nhau với dữ liệu khác, 1079 01:00:34,300 --> 01:00:36,270 thường là thông qua các hàng và cột. 1080 01:00:36,270 --> 01:00:38,470 Và đó là cách đó là SQL hoạt động tốt nhất. 1081 01:00:38,470 --> 01:00:40,880 >> Vì vậy, đây là một ví dụ của một bảng. 1082 01:00:40,880 --> 01:00:44,610 Tôi đã có một vài ví dụ về người trong phần của tôi, mà 1083 01:00:44,610 --> 01:00:45,970 Tôi không có thời gian để thay đổi. 1084 01:00:45,970 --> 01:00:52,020 Nhưng chúng tôi đã có những điều giống như ID, tên, siêu cường, và quê hương. 1085 01:00:52,020 --> 01:00:54,100 Tôi không biết nơi mà bất kỳ ai từ trong phần của tôi, 1086 01:00:54,100 --> 01:00:56,266 vì vậy tôi chỉ cần đi để giả tất cả mọi người từ New York 1087 01:00:56,266 --> 01:00:59,370 Thành phố vì tôi có một thống kê cao khả năng là chính xác. 1088 01:00:59,370 --> 01:01:04,200 >> SQL sẽ tự động mất quan tâm của cột ID cho bạn. 1089 01:01:04,200 --> 01:01:07,560 Nếu bạn chèn một hàng mới vào một cơ sở dữ liệu SQL, 1090 01:01:07,560 --> 01:01:09,700 nó sẽ thặng dư mà Số ID và chỉ 1091 01:01:09,700 --> 01:01:14,890 về cơ bản dính như năm tên, siêu cường, quê hương, bất cứ ai 1092 01:01:14,890 --> 01:01:16,430 vào cuối của bảng đó. 1093 01:01:16,430 --> 01:01:19,160 Vì vậy, ID là một cột bạn sẽ không bao giờ phải lo lắng về. 1094 01:01:19,160 --> 01:01:22,770 Nhưng, như trong trường hợp của login.php, khi chúng ta 1095 01:01:22,770 --> 01:01:26,610 đã nhận được các ID phiên từ một bảng và chỉ sử dụng ID, 1096 01:01:26,610 --> 01:01:30,320 ID là một cách để nhận diện một phần tử của một cơ sở dữ liệu. 1097 01:01:30,320 --> 01:01:34,980 >> Vì vậy, nếu chúng tôi có hai Sams, cả hai mà dạy CS50, và cả hai người 1098 01:01:34,980 --> 01:01:39,370 là từ Milwaukee, những người sẽ vẫn có số ID riêng biệt 1099 01:01:39,370 --> 01:01:43,420 và do đó phải khác biệt trong bối cảnh của bảng. 1100 01:01:43,420 --> 01:01:48,700 Vì vậy, đây là những gì SQL là đối phó với, làm việc với trong các kết thúc trở lại. 1101 01:01:48,700 --> 01:01:54,160 >> Bây giờ đây là bốn lệnh mà bạn sẽ cần phải làm việc với SQL. 1102 01:01:54,160 --> 01:01:56,390 Và tôi đã ném tất cả chúng lên trên một slide. 1103 01:01:56,390 --> 01:01:59,530 Nhưng chúng ta sẽ đi qua tất cả chúng riêng rẽ. 1104 01:01:59,530 --> 01:02:03,300 >> Lệnh đầu tiên là UPDATE, mà hiện những gì bạn có thể mong đợi. 1105 01:02:03,300 --> 01:02:07,240 Giả sử bạn có một số dữ liệu trong bảng đó là lỗi thời. 1106 01:02:07,240 --> 01:02:09,470 Cũng giống như nếu bạn đang giữ theo dõi các tên của người dân 1107 01:02:09,470 --> 01:02:13,350 và lứa tuổi, nếu một ai đó độ tuổi tăng lên, sau đó 1108 01:02:13,350 --> 01:02:18,590 bạn sẽ muốn đi vào và cập nhật tuổi chỉ của người đó. 1109 01:02:18,590 --> 01:02:21,902 Đối với một ví dụ mà các công trình với table-- đầu tiên của chúng tôi 1110 01:02:21,902 --> 01:02:24,610 đừng lo lắng về cách viết tất cả các lệnh cùng một lúc. 1111 01:02:24,610 --> 01:02:27,640 Nhưng nếu bạn đã có bản cập nhật xuống, rằng sẽ tốt cho phần này, 1112 01:02:27,640 --> 01:02:29,790 bởi vì chúng ta sẽ quay trở lại bàn. 1113 01:02:29,790 --> 01:02:33,920 >> Vì vậy, nếu chúng ta quay trở lại bàn, chúng ta hãy nói điều gì đó đã xảy ra 1114 01:02:33,920 --> 01:02:38,480 đã có một trận động đất hoặc có một đường nứt mà chia trực tiếp 1115 01:02:38,480 --> 01:02:39,920 qua thành phố New York. 1116 01:02:39,920 --> 01:02:45,130 Và chúng tôi muốn để cập nhật tất cả mọi người người sống ở thành phố New York. 1117 01:02:45,130 --> 01:02:49,670 Tất cả họ đều đã phải di chuyển tới Pennsylvania. 1118 01:02:49,670 --> 01:02:51,130 Đó không phải là một quê hương. 1119 01:02:51,130 --> 01:02:53,180 Tất cả họ đều đã phải di chuyển đến New Haven. 1120 01:02:53,180 --> 01:02:54,030 Hiện chúng tôi đi. 1121 01:02:54,030 --> 01:02:57,630 Vì vậy, tất cả mọi người ở New York di chuyển đến New Haven. 1122 01:02:57,630 --> 01:03:01,300 >> Và đó là một cái gì đó chỉnh sửa ba hàng trong bảng này. 1123 01:03:01,300 --> 01:03:04,716 Nhưng trong SQL, bạn có thể làm mà chỉ trong một tuyên bố. 1124 01:03:04,716 --> 01:03:05,715 Vì vậy, chúng tôi quay trở lại UPDATE. 1125 01:03:05,715 --> 01:03:09,670 Hãy để tôi nhanh chóng xóa bảng này một lần nữa. 1126 01:03:09,670 --> 01:03:14,570 Khi chúng ta đang nói về cập nhật, có 1127 01:03:14,570 --> 01:03:17,640 một vài bộ phận của cú pháp đó là chìa khóa. 1128 01:03:17,640 --> 01:03:19,770 Vâng, tất cả các cú pháp là chìa khóa. 1129 01:03:19,770 --> 01:03:22,210 Nhưng những thứ trong xanh là tùy chọn. 1130 01:03:22,210 --> 01:03:25,680 Màu trắng được yêu cầu, như tên được xác định trước. 1131 01:03:25,680 --> 01:03:30,750 Và ánh sáng màu xanh là những thứ mà thay đổi tùy theo bảng. 1132 01:03:30,750 --> 01:03:34,640 Vì vậy, đó là những gì đang xảy ra với các màu sắc ở đây, ở trên đó. 1133 01:03:34,640 --> 01:03:40,250 >> Vì vậy, nếu chúng ta muốn cập nhật chỉ những hàng của những người sống ở New York, 1134 01:03:40,250 --> 01:03:43,490 vì vậy những gì chúng ta sẽ làm gì nếu chúng ta nói CẬP NHẬT? 1135 01:03:43,490 --> 01:03:46,320 Vì vậy, bảng là nơi mà chúng ta đặt tên bảng của chúng tôi. 1136 01:03:46,320 --> 01:03:49,170 Hãy chỉ nói tên bảng của chúng tôi là một bảng. 1137 01:03:49,170 --> 01:03:52,515 Vì vậy, chúng tôi muốn UPDATE bảng một. 1138 01:03:52,515 --> 01:03:57,470 Và chúng tôi muốn set-- những gì chúng ta muốn thiết lập? 1139 01:03:57,470 --> 01:04:05,160 Vâng, chúng tôi muốn nói, vì vậy column-- PHP đối xử với các hàng như là định danh duy nhất. 1140 01:04:05,160 --> 01:04:07,930 Và sau đó là cột các lĩnh vực khác nhau 1141 01:04:07,930 --> 01:04:09,940 của những yếu tố của cơ sở dữ liệu. 1142 01:04:09,940 --> 01:04:14,210 >> Vì vậy, yếu tố đầu tiên của cơ sở dữ liệu có một cái tên của Sam, siêu cường của CS50, 1143 01:04:14,210 --> 01:04:16,210 và một quê hương của Milwaukee. 1144 01:04:16,210 --> 01:04:20,710 Vì vậy, nếu chúng ta biết thiết lập, chúng ta hãy nhìn vào các thông số thiết lập lại mà mất. 1145 01:04:20,710 --> 01:04:23,880 Chúng tôi có cột bằng giá trị. 1146 01:04:23,880 --> 01:04:27,290 Vì vậy, chúng tôi muốn nói một số column-- mà nhớ 1147 01:04:27,290 --> 01:04:31,850 là một field-- chúng tôi muốn thấy một lĩnh vực tương đương với một cái gì đó mới. 1148 01:04:31,850 --> 01:04:42,340 >> Vì vậy, nếu chúng ta chỉ nói cập nhật bảng 1, đặt tên bằng Elliot. 1149 01:04:42,340 --> 01:04:46,310 Nhận được một số người từ phần mới trong ngày này. 1150 01:04:46,310 --> 01:04:51,540 Nhưng nếu chúng ta chỉ cần làm cập nhật bảng 1 đặt tên bằng Elliot, những gì sẽ 1151 01:04:51,540 --> 01:04:55,530 bảng trông giống như sau đó? 1152 01:04:55,530 --> 01:04:56,410 Mọi người có bất cứ ý tưởng? 1153 01:04:56,410 --> 01:04:59,710 1154 01:04:59,710 --> 01:05:00,210 Yeah. 1155 01:05:00,210 --> 01:05:03,195 >> Đung Tất cả mọi thứ trong đó hàng sẽ trở thành Elliot. 1156 01:05:03,195 --> 01:05:04,570 SPEAKER: Tất cả mọi thứ trong đó hàng? 1157 01:05:04,570 --> 01:05:06,067 Đung Trong hàng đầu tiên. 1158 01:05:06,067 --> 01:05:07,150 SPEAKER: Trong hàng đầu tiên? 1159 01:05:07,150 --> 01:05:09,724 Tại sao hàng đầu tiên? 1160 01:05:09,724 --> 01:05:10,890 Tôi không có ý trêu bạn. 1161 01:05:10,890 --> 01:05:13,287 >> Đung Có lẽ tất cả mọi thứ trong toàn bộ bảng? 1162 01:05:13,287 --> 01:05:15,120 SPEAKER: Tất cả mọi thứ trong toàn bộ bảng, yes. 1163 01:05:15,120 --> 01:05:19,520 Và đó chính xác là đúng because-- tôi chỉ giúp bạn ra ngoài một chút 1164 01:05:19,520 --> 01:05:22,650 there-- vì chúng ta bỏ qua các khoản tùy chọn WHERE. 1165 01:05:22,650 --> 01:05:27,260 Nếu bạn không có WHERE khoản, điều lệnh này sẽ làm 1166 01:05:27,260 --> 01:05:32,240 là nó sẽ làm việc với tất cả các hàng duy nhất trong bảng. 1167 01:05:32,240 --> 01:05:35,430 Tên của tất cả mọi người sẽ trở thành Elliott, về cơ bản, 1168 01:05:35,430 --> 01:05:37,360 mà Elliot là rất hạnh phúc về. 1169 01:05:37,360 --> 01:05:40,070 Hoặc Yanni, một trong hai. 1170 01:05:40,070 --> 01:05:42,490 Nhưng tên của tất cả mọi người sẽ thay đổi. 1171 01:05:42,490 --> 01:05:47,880 >> Vì vậy, cách chúng ta sử dụng WHERE clause-- và điều này áp dụng cho tất cả các Wheres 1172 01:05:47,880 --> 01:05:51,410 đó là trong mỗi những điều khác nhau. 1173 01:05:51,410 --> 01:05:54,380 Vì vậy, bạn sẽ nhận thấy rằng SET có giá trị bằng cột. 1174 01:05:54,380 --> 01:05:55,190 Và do đó, hiện WHERE. 1175 01:05:55,190 --> 01:06:00,040 Nhưng đây là những khác nhau các loại báo cáo. 1176 01:06:00,040 --> 01:06:04,400 Vì vậy, các cột bằng giá trị trong SET là trong chuyển nhượng. 1177 01:06:04,400 --> 01:06:08,320 Giống như chúng ta nói rằng chúng ta muốn để đặt tên bằng Elliot. 1178 01:06:08,320 --> 01:06:15,390 Nhưng trong điều khoản WHERE, đây là những câu bình đẳng. 1179 01:06:15,390 --> 01:06:20,410 Vì vậy, hãy nói chúng tôi chỉ muốn thay đổi tên của người này để Elliot 1180 01:06:20,410 --> 01:06:23,940 nếu tên của họ là Ryan, chúng ta hãy nói. 1181 01:06:23,940 --> 01:06:24,920 >> Vì vậy, khi chúng ta nói 1182 01:06:24,920 --> 01:06:32,700 >> WHERE name bằng Ryan, rằng sẽ thành công chỉ thay đổi 1183 01:06:32,700 --> 01:06:37,440 các name-- nó sẽ chỉ thay đổi các trường tên trong hàng 1184 01:06:37,440 --> 01:06:40,770 nơi mà các trường tên là bằng Ryan. 1185 01:06:40,770 --> 01:06:44,430 Vì vậy, nếu chúng ta có nhiều người tên là Ryan, tất cả các tên của họ 1186 01:06:44,430 --> 01:06:45,730 sẽ thay đổi để Elliot. 1187 01:06:45,730 --> 01:06:48,169 >> Đây là giống như ví dụ của nếu có một đường nứt tách 1188 01:06:48,169 --> 01:06:50,960 Thành phố New York và tất cả mọi người có để di chuyển đến New Haven, cách chúng ta có thể 1189 01:06:50,960 --> 01:06:56,570 làm điều đó trong một tuyên bố là CẬP NHẬT table1 SET quê hương = New Haven 1190 01:06:56,570 --> 01:07:00,210 nơi quê hương bằng thành phố New York. 1191 01:07:00,210 --> 01:07:03,410 Đây là sức mạnh của câu lệnh UPDATE. 1192 01:07:03,410 --> 01:07:10,530 Chúng ta có thể chọn bất kỳ số hàng thông qua các báo cáo đúng 1193 01:07:10,530 --> 01:07:12,860 về các lĩnh vực trong những hàng. 1194 01:07:12,860 --> 01:07:19,510 Chúng tôi không thể nói CẬP NHẬT table1 đặt name = Elliot ĐÂU hàng = 1, 1195 01:07:19,510 --> 01:07:24,820 ngoại trừ chúng ta có thể nếu chúng ta nói ID = 1. 1196 01:07:24,820 --> 01:07:27,350 1197 01:07:27,350 --> 01:07:29,830 >> Vì vậy, chúng ta sẽ được làm việc với bình đẳng 1198 01:07:29,830 --> 01:07:32,830 lĩnh vực, bình đẳng của các cột. 1199 01:07:32,830 --> 01:07:38,030 Nhưng sử dụng các lĩnh vực ID là một cách để lựa chọn các hàng cá nhân cụ thể, 1200 01:07:38,030 --> 01:07:43,210 vì trường ID là một độc đáo định danh trong một cơ sở dữ liệu SQL. 1201 01:07:43,210 --> 01:07:45,860 Vì vậy, như cập nhật hàng một, ID bằng 1. 1202 01:07:45,860 --> 01:07:49,560 Cập nhật hàng hai, chỉ thay đổi mà số ID. 1203 01:07:49,560 --> 01:07:51,610 Nhưng sức mạnh của Tuyên bố WHERE là chúng ta rằng 1204 01:07:51,610 --> 01:07:57,480 có thể cập nhật những điều dựa trên những gì họ giá trị hiện tại của những điều nào đó. 1205 01:07:57,480 --> 01:07:58,155 Có Elliot? 1206 01:07:58,155 --> 01:08:02,678 >> Đung Và nếu những gì bạn muốn với: một lần nữa, đây là một câu hỏi khác. 1207 01:08:02,678 --> 01:08:07,660 Nhưng câu hỏi đầu tiên của tôi là, nơi này xảy ra? 1208 01:08:07,660 --> 01:08:09,130 Nơi tôi đang cập nhật này? 1209 01:08:09,130 --> 01:08:11,100 Đây có phải là trong một mã PHP? 1210 01:08:11,100 --> 01:08:13,379 >> SPEAKER: Nơi bạn cập nhật, có. 1211 01:08:13,379 --> 01:08:15,170 Chúng ta sẽ nói chuyện về nơi mà tất cả những điều này 1212 01:08:15,170 --> 01:08:18,729 xảy ra loại một khi chúng ta đi thông qua tất cả các lệnh. 1213 01:08:18,729 --> 01:08:21,130 Nhưng những gì bạn cần biết ngay bây giờ về cơ bản là 1214 01:08:21,130 --> 01:08:26,279 rằng cơ sở dữ liệu SQL của bạn tồn tại như một cái gì đó 1215 01:08:26,279 --> 01:08:30,090 để được truy cập bởi các truy vấn chức năng, mà CS50 định nghĩa. 1216 01:08:30,090 --> 01:08:33,800 Vì vậy, nếu bạn sử dụng các chức năng truy vấn, bạn có thể truy cập vào bảng này. 1217 01:08:33,800 --> 01:08:39,529 >> Vì vậy, bạn sẽ được gửi những lệnh để bàn của bạn trong file PHP 1218 01:08:39,529 --> 01:08:41,420 thông qua các chức năng truy vấn. 1219 01:08:41,420 --> 01:08:45,410 Bạn cũng có thể chơi xung quanh với bảng của bạn trực tiếp. 1220 01:08:45,410 --> 01:08:49,050 Và đó là cách tốt nhất để kiểm tra các loại lệnh. 1221 01:08:49,050 --> 01:08:52,720 Và chúng ta sẽ đi qua một cách chính xác như thế nào để làm điều đó chỉ một chút. 1222 01:08:52,720 --> 01:08:54,910 >> Vì vậy, đó là CẬP NHẬT lệnh. 1223 01:08:54,910 --> 01:08:57,939 Và phần còn lại của lệnh đang có được loại tương tự, 1224 01:08:57,939 --> 01:08:59,069 làm việc trên những điều tương tự. 1225 01:08:59,069 --> 01:09:02,740 INSERT INTO có lẽ sự khác nhau nhất từ ​​UPDATE. 1226 01:09:02,740 --> 01:09:06,170 Tôi sẽ để lại rằng lên đó cho chỉ cần một chút và làm việc ở đây. 1227 01:09:06,170 --> 01:09:10,215 Vì vậy, INSERT INTO, bạn sẽ thấy bảng đó là vẫn như nhau. 1228 01:09:10,215 --> 01:09:17,010 Bạn muốn INSERT INTO. 1229 01:09:17,010 --> 01:09:20,286 Giá trị vốn hóa, SQL là trường hợp nhạy cảm. 1230 01:09:20,286 --> 01:09:22,160 Vì vậy, bạn không cần phải tận dụng những điều này. 1231 01:09:22,160 --> 01:09:27,960 Theo quy ước, những lời trong trắng được vốn. 1232 01:09:27,960 --> 01:09:31,590 Nhưng tôi cũng màu mã chúng. 1233 01:09:31,590 --> 01:09:34,390 Lý do duy nhất mà bạn viết hoa những khi bạn đang gõ chúng 1234 01:09:34,390 --> 01:09:36,609 chỉ là để nhấn mạnh đó là những hằng số. 1235 01:09:36,609 --> 01:09:39,189 Và như vậy bạn có thể nhìn vào các hoa hoặc thực tế 1236 01:09:39,189 --> 01:09:40,740 mà tôi đã tô màu chúng khác nhau. 1237 01:09:40,740 --> 01:09:44,910 >> Vì vậy, chúng tôi đã có INSERT INTO, chúng ta hãy làm table1 một lần nữa. 1238 01:09:44,910 --> 01:09:45,930 Đây là tất cả trên cùng một dòng. 1239 01:09:45,930 --> 01:09:48,609 Tôi chỉ tách nó bằng các báo cáo khác nhau. 1240 01:09:48,609 --> 01:09:52,399 Vì vậy, đừng lo lắng về thực tế là table1 đã làm cho nó vào dòng thứ hai. 1241 01:09:52,399 --> 01:09:56,130 >> Vì vậy, chúng tôi muốn INSERT INTO Table1 một số giá trị. 1242 01:09:56,130 --> 01:09:58,922 Và bạn sẽ nhận thấy các tùy chọn bit, mà tôi sẽ nhận được để trong một giây. 1243 01:09:58,922 --> 01:09:59,755 Vì vậy, chúng tôi đã có GIÁ TRỊ. 1244 01:09:59,755 --> 01:10:03,640 1245 01:10:03,640 --> 01:10:08,100 >> Vì vậy, chúng ta hãy nói rằng chúng ta muốn thêm Andi bảng của chúng ta, bởi vì chúng ta bỏ lỡ Andi. 1246 01:10:08,100 --> 01:10:09,390 Andi bị bệnh. 1247 01:10:09,390 --> 01:10:12,490 Vì vậy, chúng ta hãy thêm Andi để bàn của chúng tôi. 1248 01:10:12,490 --> 01:10:15,150 Hãy nhớ rằng số ID được cập nhật tự động. 1249 01:10:15,150 --> 01:10:17,320 Vì vậy, các lĩnh vực duy nhất chúng tôi cần phải lo lắng về 1250 01:10:17,320 --> 01:10:20,230 là tên, siêu cường, và quê hương. 1251 01:10:20,230 --> 01:10:23,660 >> Và do đó, cách mà chúng tôi làm điều đó, nhìn vào cú pháp của chúng tôi, là chúng tôi đã 1252 01:10:23,660 --> 01:10:28,780 chỉ có một dấu ngoặc đơn, dấu phẩy với giá trị tách biệt, mỗi trong số đó 1253 01:10:28,780 --> 01:10:29,890 là một giá trị. 1254 01:10:29,890 --> 01:10:35,530 Vì vậy, nếu chúng ta muốn chèn Andi thành của chúng tôi bàn, tất cả chúng ta phải làm là đúng Andi. 1255 01:10:35,530 --> 01:10:38,630 Siêu cường của Andi là gì, người trong phần Andi không? 1256 01:10:38,630 --> 01:10:45,406 1257 01:10:45,406 --> 01:10:47,545 Cô muốn bay, hay thích tốc độ, hoặc một cái gì đó. 1258 01:10:47,545 --> 01:10:48,920 Những gì chúng tôi đã có ở đó? 1259 01:10:48,920 --> 01:10:53,425 Chúng tôi có CS50, chuyến bay, tốc độ và sức mạnh. 1260 01:10:53,425 --> 01:10:54,850 >> Đung Thời gian đi lại. 1261 01:10:54,850 --> 01:10:56,180 >> SPEAKER: Thời gian đi lại, tuyệt vời. 1262 01:10:56,180 --> 01:11:04,280 Vì vậy, chúng tôi đã có Andi, thời gian du lịch, và quê hương của cô. 1263 01:11:04,280 --> 01:11:05,530 Đó là một câu hỏi thực sự tốt. 1264 01:11:05,530 --> 01:11:09,210 Thành phố New York, trừ khi có ai đó biết. 1265 01:11:09,210 --> 01:11:13,600 Mọi người đều là từ New York là bài học để lấy đi từ ngày hôm nay. 1266 01:11:13,600 --> 01:11:17,710 >> Vì vậy, tuyên bố này sẽ chèn, như là một hàng thứ năm, 1267 01:11:17,710 --> 01:11:21,900 với thời gian đi siêu cường và một quê hương của thành phố New York. 1268 01:11:21,900 --> 01:11:25,660 Nhưng các lĩnh vực tùy chọn về cơ bản là một cách 1269 01:11:25,660 --> 01:11:30,090 để xác định chính xác các cột bạn muốn chèn thứ trong. 1270 01:11:30,090 --> 01:11:33,710 >> Cách mà chúng tôi đang làm bây giờ, Andi, thời gian đi lại, thành phố New York, 1271 01:11:33,710 --> 01:11:38,150 sắp theo thứ tự chính xác của chúng tôi Tên table--, siêu cường, quê hương. 1272 01:11:38,150 --> 01:11:42,290 Và nếu bạn muốn làm một cái gì đó khác hơn, 1273 01:11:42,290 --> 01:11:44,970 như nói rằng bạn không biết siêu cường của một ai đó, 1274 01:11:44,970 --> 01:11:47,660 như thế nào tôi không biết Andi của siêu cường lúc đầu. 1275 01:11:47,660 --> 01:11:50,450 Vì vậy, tôi chỉ biết là mình đặt tên và quê hương của cô. 1276 01:11:50,450 --> 01:11:54,550 Những gì tôi có thể làm là tôi có thể do-- tôi sẽ xóa sổ nhanh chóng này. 1277 01:11:54,550 --> 01:11:57,910 1278 01:11:57,910 --> 01:12:00,090 >> Tôi muốn chỉ cập nhật các cột. 1279 01:12:00,090 --> 01:12:04,100 Và đây là nơi mà các tùy chọn danh sách cột đến chơi. 1280 01:12:04,100 --> 01:12:09,185 Tôi chỉ muốn cập nhật tên và quê hương. 1281 01:12:09,185 --> 01:12:12,650 1282 01:12:12,650 --> 01:12:16,480 Và sau đó tôi sẽ nói VALUES. 1283 01:12:16,480 --> 01:12:24,430 Tôi sẽ làm Andi và thành phố New York. 1284 01:12:24,430 --> 01:12:28,980 >> Nếu tôi đã bỏ qua danh sách các cột và chỉ cần thực hiện hai điều này, 1285 01:12:28,980 --> 01:12:32,450 nơi sẽ thành phố New York đã đi? 1286 01:12:32,450 --> 01:12:35,900 Những cột sẽ New York Thành phố đã được đặt trong? 1287 01:12:35,900 --> 01:12:38,950 Mọi người có bất cứ ý tưởng? 1288 01:12:38,950 --> 01:12:40,160 Siêu cường, chính xác. 1289 01:12:40,160 --> 01:12:41,890 >> Vì vậy, điều này sẽ chỉ đi theo thứ tự. 1290 01:12:41,890 --> 01:12:45,530 Và một khi nó đến điểm cuối của danh sách, nó sẽ chỉ dừng ở việc làm đầy. 1291 01:12:45,530 --> 01:12:49,080 Và các giá trị mà nó sẽ dính vào tất cả các cột sẽ chỉ là NULL. 1292 01:12:49,080 --> 01:12:51,840 Vì vậy, bởi vì chúng tôi quy định tên và quê hương, 1293 01:12:51,840 --> 01:12:56,110 chúng ta sẽ có ID 5, tên Andi, siêu cường NULL. 1294 01:12:56,110 --> 01:12:58,750 Vì vậy, siêu cường là một giá trị chưa được khởi tạo. 1295 01:12:58,750 --> 01:13:01,340 Bạn sẽ không nhất thiết phải có được lỗi tương Valgrind nếu bạn cố gắng 1296 01:13:01,340 --> 01:13:01,970 và truy cập nó. 1297 01:13:01,970 --> 01:13:05,160 Tất cả mọi thứ sẽ được độc đáo zeroed ra, bởi vì NULL là một giá trị trong SQL. 1298 01:13:05,160 --> 01:13:06,780 Đó là một hằng số. 1299 01:13:06,780 --> 01:13:08,980 Và sau đó quê hương sẽ là thành phố New York. 1300 01:13:08,980 --> 01:13:11,860 Vì vậy, đó là INSERT INTO lệnh. 1301 01:13:11,860 --> 01:13:13,610 Trước khi chúng tôi di chuyển, có hơn hai lệnh. 1302 01:13:13,610 --> 01:13:19,060 Người dân có bất kỳ câu hỏi về UPDATE, INSERT INTO về, về SQL 1303 01:13:19,060 --> 01:13:21,556 nói chung là trước khi chúng tôi di chuyển lên bit thức của chúng tôi? 1304 01:13:21,556 --> 01:13:25,500 1305 01:13:25,500 --> 01:13:26,910 Mọi người cảm thấy tốt, tuyệt vời. 1306 01:13:26,910 --> 01:13:27,410 Yêu nó. 1307 01:13:27,410 --> 01:13:29,480 Vì vậy, chúng ta hãy nói về SELECT. 1308 01:13:29,480 --> 01:13:33,445 Đi mương CẬP NHẬT ở đây. 1309 01:13:33,445 --> 01:13:35,720 >> Và SELECT sẽ là rất tương tự. 1310 01:13:35,720 --> 01:13:38,790 Mục tiêu của SELECT, Mục đích của CHỌN trong cuộc sống 1311 01:13:38,790 --> 01:13:45,910 là để cung cấp cho bạn một loạt các cột đáp ứng các điều kiện nhất định. 1312 01:13:45,910 --> 01:13:48,230 Và khi tôi nói đáp điều kiện nhất định, 1313 01:13:48,230 --> 01:13:50,800 tâm trí của bạn có thể ngay lập tức đi lại cho rằng mệnh đề WHERE 1314 01:13:50,800 --> 01:13:52,090 mà đến trong UPDATE. 1315 01:13:52,090 --> 01:13:54,880 Và đó là điều khoản chính xác có trong SELECT. 1316 01:13:54,880 --> 01:14:06,020 >> Nếu chúng ta không đặt WHERE khoản và chúng tôi nói CHỌN tên, 1317 01:14:06,020 --> 01:14:16,490 hometown-- đánh vần mà một chút Tên wrong--, quê hương FROM table1. 1318 01:14:16,490 --> 01:14:19,690 Nếu chúng ta chỉ nói rằng, những gì CHỌN sẽ cung cấp cho chúng tôi là nó 1319 01:14:19,690 --> 01:14:23,730 sẽ cung cấp cho chúng ta một double-- một bảng, thay. 1320 01:14:23,730 --> 01:14:27,450 Một mảng tăng gấp đôi nếu chúng tôi suy nghĩ về trong PHP cảm. 1321 01:14:27,450 --> 01:14:33,239 Nhưng nó chỉ là sẽ cung cấp cho chúng ta một mảng đôi của hai tên columns--, 1322 01:14:33,239 --> 01:14:33,780 và quê hương. 1323 01:14:33,780 --> 01:14:36,400 1324 01:14:36,400 --> 01:14:38,130 Và nó sẽ bỏ qua ID. 1325 01:14:38,130 --> 01:14:41,310 Và nó sẽ bỏ qua siêu cường. 1326 01:14:41,310 --> 01:14:44,696 Và nó sẽ chỉ cung cấp cho chúng ta mỗi hàng duy nhất của bảng đó. 1327 01:14:44,696 --> 01:14:46,570 Vì vậy, nếu chúng ta chỉ cần chèn Andi, chúng tôi sẽ có Andi. 1328 01:14:46,570 --> 01:14:48,605 Và chúng tôi sẽ có bản gốc bốn. 1329 01:14:48,605 --> 01:14:53,720 Nếu họ đã được cập nhật, mà sẽ được phản ánh, vân vân, vân vân. 1330 01:14:53,720 --> 01:14:56,520 >> Vì vậy, đây là bởi vì chúng tôi không sử dụng mệnh đề WHERE. 1331 01:14:56,520 --> 01:14:59,200 Nhưng chúng ta có thể sử dụng nó trong cách chính xác cùng một cách mà chúng ta sử dụng nó trong UPDATE. 1332 01:14:59,200 --> 01:15:05,310 Nếu chúng ta chỉ muốn có một bảng tên và siêu quyền hạn của những người sống 1333 01:15:05,310 --> 01:15:13,430 ở New York, chúng ta có thể thực thi một lệnh như SELECT name, superpower-- 1334 01:15:13,430 --> 01:15:27,190 Tôi chỉ đi để lại that-- TỪ table1 ĐÂU quê hương = Thành phố New York. 1335 01:15:27,190 --> 01:15:33,370 >> Vì vậy, điều này đi để cho thấy rằng bạn có thể lấy cốt hoàn toàn khác nhau, 1336 01:15:33,370 --> 01:15:36,920 và sau đó đặt các cột mà bạn không thậm chí nhận được trở lại trong mệnh đề WHERE. 1337 01:15:36,920 --> 01:15:39,200 Chúng tôi thậm chí không muốn quê hương của tất cả mọi người. 1338 01:15:39,200 --> 01:15:41,920 Nhưng chúng tôi muốn tên và siêu cường của người dân 1339 01:15:41,920 --> 01:15:43,817 có quê hương là thành phố New York. 1340 01:15:43,817 --> 01:15:45,650 Vì vậy, đó là điều chúng tôi có thể làm với các WHERE 1341 01:15:45,650 --> 01:15:49,112 Mệnh đề là chúng ta có thể đối phó với các cột rằng chúng ta không nhất thiết muốn trở lại. 1342 01:15:49,112 --> 01:15:52,320 Trong cùng một cách trong UPDATE, chúng ta có thể đối phó với các cột mà chúng ta không nhất thiết phải 1343 01:15:52,320 --> 01:15:53,270 muốn cập nhật. 1344 01:15:53,270 --> 01:15:58,890 Chúng tôi có thể cập nhật các thành phố của tất cả mọi người ai tên là Sam, ví dụ. 1345 01:15:58,890 --> 01:16:02,080 Chúng tôi có thể cập nhật các thành phố tất cả mọi người có ID số là 2. 1346 01:16:02,080 --> 01:16:04,960 Vì vậy, chỉ cần cập nhật các thành phố của hàng thứ hai 1347 01:16:04,960 --> 01:16:08,220 mà chúng ta không phải đối phó với cần thiết các câu hỏi thường gặp. 1348 01:16:08,220 --> 01:16:13,264 >> Và DELETE là, như bạn muốn mong đợi, DELETE FROM table1. 1349 01:16:13,264 --> 01:16:14,930 Và sau đó chúng tôi đã có một mệnh đề WHERE. 1350 01:16:14,930 --> 01:16:17,940 Vì vậy, chúng ta có thể nói đâu ID = 1. 1351 01:16:17,940 --> 01:16:18,950 Xóa hàng đầu tiên. 1352 01:16:18,950 --> 01:16:23,240 Và DELETE sẽ luôn luôn xóa một hàng, hoặc nó sẽ xóa một số số lượng hàng. 1353 01:16:23,240 --> 01:16:26,990 DELETE FROM table WHERE Thành phố quê hương = New York 1354 01:16:26,990 --> 01:16:28,740 sẽ xóa tất cả mọi người trong thành phố New York. 1355 01:16:28,740 --> 01:16:30,985 Đó là nếu có một đột ngột bệnh dịch hạch bi thảm 1356 01:16:30,985 --> 01:16:33,360 và bạn chỉ muốn loại bỏ tất cả mọi người từ bảng người 1357 01:16:33,360 --> 01:16:35,760 sống trong một thành phố nào đó nơi bị bệnh dịch hạch. 1358 01:16:35,760 --> 01:16:38,050 Họ có thể nghỉ ngơi trong hòa bình. 1359 01:16:38,050 --> 01:16:43,849 >> Đây là bốn câu lệnh SQL mà bạn sẽ cần phải sử dụng. 1360 01:16:43,849 --> 01:16:45,390 Bạn có thể thậm chí không cần phải sử dụng tất cả. 1361 01:16:45,390 --> 01:16:47,690 Nhưng đây là bốn rằng CS50 hy vọng bạn 1362 01:16:47,690 --> 01:16:53,630 để được thoải mái với việc đi vào cả hai bài kiểm tra 1 và cũng pset7 và pset8. 1363 01:16:53,630 --> 01:16:55,820 >> Không chỉ là bảng đó một lần nữa. 1364 01:16:55,820 --> 01:16:58,930 Trong một này, siêu cường của Roy có được cập nhật để các chùm laser, mà 1365 01:16:58,930 --> 01:17:00,880 là một ví dụ tôi đã không sử dụng. 1366 01:17:00,880 --> 01:17:05,480 Tôi không biết cái nào Roy thích, nhưng sức mạnh. 1367 01:17:05,480 --> 01:17:07,670 Roy có một siêu cường của sức mạnh. 1368 01:17:07,670 --> 01:17:09,090 Katherine đã không làm cho nó ngày hôm nay. 1369 01:17:09,090 --> 01:17:10,260 Thật không may. 1370 01:17:10,260 --> 01:17:11,260 Nhưng cô có siêu tốc độ. 1371 01:17:11,260 --> 01:17:13,780 1372 01:17:13,780 --> 01:17:14,670 >> Vâng đó là PHP. 1373 01:17:14,670 --> 01:17:19,410 Trước khi chúng ta nói về MVC, không ai có thắc mắc về PHP? 1374 01:17:19,410 --> 01:17:23,864 Bây giờ SQL, PHP hoặc nếu bạn đột nhiên có đưa ra một câu hỏi về PHP? 1375 01:17:23,864 --> 01:17:27,560 1376 01:17:27,560 --> 01:17:28,460 Thật tuyệt. 1377 01:17:28,460 --> 01:17:29,920 Được rồi, chúng ta đã cài đặt xong rồi. 1378 01:17:29,920 --> 01:17:33,660 >> Vì vậy, nói một chút về mô hình điều khiển xem, 1379 01:17:33,660 --> 01:17:38,770 chúng ta hãy trở lại một số các công cụ trong pset7. 1380 01:17:38,770 --> 01:17:42,470 Vì vậy, những gì mô hình điểm điều khiển is-- Tôi không 1381 01:17:42,470 --> 01:17:45,660 sẽ lưu các thay đổi của tôi để đăng nhập bởi vì tôi hoàn toàn làm thịt nó. 1382 01:17:45,660 --> 01:17:49,220 Nhưng về cơ bản chúng ta có hai những điều riêng biệt xảy ra. 1383 01:17:49,220 --> 01:17:52,390 Chúng tôi có một công thư mục có chứa 1384 01:17:52,390 --> 01:17:56,460 mã đó sẽ được thực thi và các trang web đó sẽ được viếng thăm. 1385 01:17:56,460 --> 01:17:58,780 Và chúng tôi cũng có thư mục quan điểm này. 1386 01:17:58,780 --> 01:18:01,780 Và quan điểm chứa mẫu. 1387 01:18:01,780 --> 01:18:04,390 >> Đây là những gì các chức năng render-- chúng ta đã thấy render 1388 01:18:04,390 --> 01:18:08,240 chức năng trong một loạt các mã PHP CS50 đó đã viết cho bạn, 1389 01:18:08,240 --> 01:18:10,550 mà mất trong một số thông số. 1390 01:18:10,550 --> 01:18:14,510 Những mã mà là làm là nó sẽ vào xem, 1391 01:18:14,510 --> 01:18:18,000 đó là bộ như Mã HTML prewritten, 1392 01:18:18,000 --> 01:18:20,720 và nó chèn các giá trị vào những nơi nhất định. 1393 01:18:20,720 --> 01:18:23,990 Đây là thế nào khi bạn đi vào CS50 Tài chính, 1394 01:18:23,990 --> 01:18:25,760 các tiêu đề tương tự trên mỗi trang. 1395 01:18:25,760 --> 01:18:28,130 Footer tương tự trên mỗi trang. 1396 01:18:28,130 --> 01:18:31,880 Điều này là do đường mà làm cho công trình là nó sẽ thấy 1397 01:18:31,880 --> 01:18:36,720 tự động vá trong tiêu đề đó và xem mà bạn có thể tìm thấy trong quan điểm. 1398 01:18:36,720 --> 01:18:41,400 >> Chúng tôi có thể thực sự đi vào tiêu đề, và nhìn, nó là một tập tin HTML với một cái đầu. 1399 01:18:41,400 --> 01:18:43,280 Nó có một số stylesheets. 1400 01:18:43,280 --> 01:18:48,450 Bạn không cần phải nhìn vào CSS cho pset7 nếu bạn không muốn. 1401 01:18:48,450 --> 01:18:50,560 Nhưng bạn có thể sửa đổi họ nếu bạn muốn, làm cho 1402 01:18:50,560 --> 01:18:53,470 Tài chính của bạn trông hơi khác một chút. 1403 01:18:53,470 --> 01:18:57,560 >> Nó có một số PHP ở tiêu đề một chút để xem 1404 01:18:57,560 --> 01:19:01,240 nếu có một tiêu đề khác nhau nó nên đặt ở đầu này. 1405 01:19:01,240 --> 01:19:04,300 Nhưng chỉ một số kịch bản khác, và các liên kết, và những thứ khác. 1406 01:19:04,300 --> 01:19:08,700 Đầu kết thúc, cơ thể bắt đầu, và oops, chúng tôi có chút kỳ lạ này kết thúc. 1407 01:19:08,700 --> 01:19:14,730 Và có một div, giống như một loại vô sắc của nguyên tố 1408 01:19:14,730 --> 01:19:17,120 rằng có một ý tưởng về trung. 1409 01:19:17,120 --> 01:19:22,450 >> Và sau đó khi chúng ta nhìn thấy chân, chúng tôi có sự kết thúc của một div. 1410 01:19:22,450 --> 01:19:25,000 Chúng tôi có một dưới, đó là nơi mà các văn bản footer là. 1411 01:19:25,000 --> 01:19:26,770 Cuối div, kết thúc của cơ thể, kết thúc của HTML. 1412 01:19:26,770 --> 01:19:29,070 >> Vì vậy, những gì làm là làm là làm là sắp xếp 1413 01:19:29,070 --> 01:19:33,150 vá lên tiêu đề, một file PHP khác nhau mà 1414 01:19:33,150 --> 01:19:37,110 sẽ chứa những điều thực tế mà bạn sẽ xem, giống như bảng của cổ phiếu 1415 01:19:37,110 --> 01:19:39,690 nếu bạn đang mua hay bán cổ phiếu. 1416 01:19:39,690 --> 01:19:41,480 Và sau đó nó sẽ thêm vào phần cuối trang. 1417 01:19:41,480 --> 01:19:44,890 Và quan điểm mô hình ý tưởng điều khiển là chúng ta rằng 1418 01:19:44,890 --> 01:19:49,590 muốn tách riêng như thế nào những điều nhìn từ mã. 1419 01:19:49,590 --> 01:19:53,420 Đó là chúng ta muốn tách riêng các lối vào và các phụ trợ, nơi lối vào là 1420 01:19:53,420 --> 01:20:00,440 những thứ mà người dùng thấy, tốt đẹp visuals-- HTML, CSS, những điều như thế, 1421 01:20:00,440 --> 01:20:02,320 hình ảnh, vân vân. 1422 01:20:02,320 --> 01:20:05,780 Và các phụ trợ là PHP. 1423 01:20:05,780 --> 01:20:07,710 Đây là đoạn code mà bạn viết. 1424 01:20:07,710 --> 01:20:10,240 Đây là nơi mà các mã đó là làm các hoạt động thực tế. 1425 01:20:10,240 --> 01:20:12,400 Đây là khi bạn đang thêm một cổ phiếu để bàn của bạn, 1426 01:20:12,400 --> 01:20:14,890 khi bạn mua và bán, đó là phụ trợ. 1427 01:20:14,890 --> 01:20:20,210 >> Và chúng ta có thể, như bạn đã thấy, bao gồm PHP trực tiếp trong HTML. 1428 01:20:20,210 --> 01:20:23,210 Vì vậy, những gì chúng tôi có thể đã làm cho chuyển nhượng này chỉ là có 1429 01:20:23,210 --> 01:20:26,200 một tập tin HTML cho mỗi trang, như đăng nhập. 1430 01:20:26,200 --> 01:20:30,260 Và sau đó trên trang đó, chỉ đã có một khối lớn các mã PHP, 1431 01:20:30,260 --> 01:20:33,822 bao gồm tất cả các mã trang mà cụ thể sẽ cần. 1432 01:20:33,822 --> 01:20:35,780 Và sau đó chúng ta có thể có làm điều đó cho danh mục đầu tư. 1433 01:20:35,780 --> 01:20:40,250 Chúng tôi đã có thể làm tất cả các mua và bán trong các trang cá nhân. 1434 01:20:40,250 --> 01:20:43,680 >> Nhưng vì chúng ta đang vẽ một cách riêng biệt từ nơi 1435 01:20:43,680 --> 01:20:46,660 chúng ta đang viết các phụ trợ code, chúng ta có thể dễ dàng 1436 01:20:46,660 --> 01:20:52,660 thay đổi như thế nào những điều trông không thay đổi từng tập tin duy nhất. 1437 01:20:52,660 --> 01:20:55,460 Chúng tôi làm những việc như chỉ cần thêm một div mới đến đáy 1438 01:20:55,460 --> 01:21:00,720 of-- Xin chào, tôi đổi chân. 1439 01:21:00,720 --> 01:21:03,710 Bạn chỉ có thể làm những thứ như thế. 1440 01:21:03,710 --> 01:21:07,250 Nhưng cũng có thể, bạn có thể thay đổi toàn bộ bố trí trực quan 1441 01:21:07,250 --> 01:21:09,290 mà không ảnh hưởng gì đi trong backend. 1442 01:21:09,290 --> 01:21:12,000 Và bạn có thể thay đổi toàn bộ phụ trợ và vẫn 1443 01:21:12,000 --> 01:21:13,900 có nó trông giống như nó đã làm trước đây. 1444 01:21:13,900 --> 01:21:14,400 Cái này 1445 01:21:14,400 --> 01:21:16,170 >> Là ý tưởng của mô hình điều khiển xem. 1446 01:21:16,170 --> 01:21:19,992 Và nó thực sự là một mô hình áp đặt trong một số ngôn ngữ lập trình 1447 01:21:19,992 --> 01:21:21,700 bạn có thể muốn sử dụng cho các dự án cuối cùng. 1448 01:21:21,700 --> 01:21:25,100 Nếu bạn làm phát triển iOS, họ có tầm nhìn, 1449 01:21:25,100 --> 01:21:29,120 đó là những gì bạn thấy trên iPhone, và sau đó phụ trợ như là giống như một điều riêng biệt. 1450 01:21:29,120 --> 01:21:31,260 >> Bạn có thể nghĩ về một chút. 1451 01:21:31,260 --> 01:21:35,190 Có rất nhiều các tập tin nhị phân trong khoa học máy tính, mà là funny, 1452 01:21:35,190 --> 01:21:37,270 bởi vì tất cả mọi thứ là trong hệ nhị phân. 1453 01:21:37,270 --> 01:21:38,550 Tôi không có kế hoạch đó. 1454 01:21:38,550 --> 01:21:41,590 Đó là một sự chơi chữ không mong muốn. 1455 01:21:41,590 --> 01:21:43,860 Có, chơi chữ không có ý định. 1456 01:21:43,860 --> 01:21:49,070 >> Nhưng giống như các file .h và các file .c, có rất nhiều phân cách thứ chúng ta 1457 01:21:49,070 --> 01:21:49,900 có thể không cần. 1458 01:21:49,900 --> 01:21:54,330 Vì vậy, chúng tôi chỉ có thể chỉnh sửa các tập tin h, hoặc một người nào đó chỉ có thể nhìn thấy một file .h và biết 1459 01:21:54,330 --> 01:21:57,650 chính xác các chức năng có trong tập .c mà không nhất thiết biết 1460 01:21:57,650 --> 01:21:58,870 thực hiện của họ. 1461 01:21:58,870 --> 01:22:02,800 Ý tưởng này của các thành phần tách mà phụ thuộc vào nhau 1462 01:22:02,800 --> 01:22:06,990 nhưng có thể loại truy cập mỗi khác thông qua các kênh khác nhau, qua 1463 01:22:06,990 --> 01:22:09,310 của các biến, chỉ bao gồm báo cáo, điều 1464 01:22:09,310 --> 01:22:14,440 như thế, nguyên tắc này giúp tạo ra các ứng dụng 1465 01:22:14,440 --> 01:22:17,080 có thể được dễ dàng hơn sửa bởi nhiều người, 1466 01:22:17,080 --> 01:22:20,440 có thể được dễ dàng hơn thay đổi hoặc sửa đổi trên một quy mô lớn, 1467 01:22:20,440 --> 01:22:24,880 và dễ gỡ lỗi trong rất nhiều cách khác nhau. 1468 01:22:24,880 --> 01:22:28,254 >> Thật nhanh chóng, tôi có một vài lời khuyên cho pset7, 1469 01:22:28,254 --> 01:22:31,420 mà tôi sẽ làm cho màn hình đầy đủ, do đó bạn không chỉ cần nhìn vào the-- tip tip tippee. 1470 01:22:31,420 --> 01:22:33,964 1471 01:22:33,964 --> 01:22:35,130 Hiện có không có nhiều lời khuyên. 1472 01:22:35,130 --> 01:22:38,060 >> Nhưng tôi đã đề cập PHP là khó để gỡ lỗi. 1473 01:22:38,060 --> 01:22:39,290 Đôi và gấp ba lần kiểm tra xem nó. 1474 01:22:39,290 --> 01:22:41,550 Nếu mã của bạn chỉ là không hiển thị trên trang, 1475 01:22:41,550 --> 01:22:46,240 nó có thể là một lỗi PHP, xin lỗi. 1476 01:22:46,240 --> 01:22:48,570 >> Bạn không bao giờ cần phải nhìn vào CSS nếu bạn không muốn. 1477 01:22:48,570 --> 01:22:52,150 Nhưng một khi bạn đã hoàn tất, nó có thể được vui một chút điều tốt đẹp để chỉ cần đi vào 1478 01:22:52,150 --> 01:22:54,770 và gây rối với các thông số CSS. 1479 01:22:54,770 --> 01:22:58,700 CSS và HTML là một ví dụ về một mô hình điều khiển xem phong cách điều quá, phải không? 1480 01:22:58,700 --> 01:23:02,150 Bạn có thể có thẻ phong cách bên trong các phần tử HTML. 1481 01:23:02,150 --> 01:23:04,800 Nhưng nếu bạn sắp xếp của gia công phần mềm họ CSS, 1482 01:23:04,800 --> 01:23:08,180 chúng dễ dàng hơn để chỉnh sửa và chơi xung quanh, và vui chơi với. 1483 01:23:08,180 --> 01:23:10,816 >> Hãy đối xử với CS50 helper chức năng như hộp đen. 1484 01:23:10,816 --> 01:23:12,940 Bạn không cần phải biết chính xác những gì Render làm, 1485 01:23:12,940 --> 01:23:16,770 nhưng tin tưởng nó sẽ luôn luôn làm đúng các điều tùy thuộc vào những gì bạn vượt qua nó, 1486 01:23:16,770 --> 01:23:17,690 thứ như thế này. 1487 01:23:17,690 --> 01:23:21,040 Và tôi muốn giới thiệu xem walkthrough của David, 1488 01:23:21,040 --> 01:23:24,490 đi qua tất cả các công cụ, không chỉ các todos, 1489 01:23:24,490 --> 01:23:26,960 nhưng bạn thực sự có thể điều trị các hộp đen. 1490 01:23:26,960 --> 01:23:29,280 Đừng đi vào những chức năng tìm kiếm lỗi. 1491 01:23:29,280 --> 01:23:33,510 >> Và chào đón sự trở lại của overlord Zamyla của chúng tôi. 1492 01:23:33,510 --> 01:23:34,010 Thật tuyệt. 1493 01:23:34,010 --> 01:23:40,430 >> Có bất kỳ câu hỏi cuối cùng trước khi chúng tôi loại trả lại cho ngày? 1494 01:23:40,430 --> 01:23:42,610 Tôi vẫn còn sống? 1495 01:23:42,610 --> 01:23:44,700 Thật tuyệt. 1496 01:23:44,700 --> 01:23:47,120 Người livestream Hi. 1497 01:23:47,120 --> 01:23:47,620 Thật tuyệt. 1498 01:23:47,620 --> 01:23:50,260 Có câu hỏi nữa? 1499 01:23:50,260 --> 01:23:50,760 Không? 1500 01:23:50,760 --> 01:23:52,884 >> Và sau đó tôi nghĩ rằng chúng tôi tốt để đi cho ngày hôm nay. 1501 01:23:52,884 --> 01:23:55,550 Tôi sẽ dính vào xung quanh một chút sau đó nếu mọi người đã có câu hỏi 1502 01:23:55,550 --> 01:23:57,480 họ sợ không dám hỏi trên suối. 1503 01:23:57,480 --> 01:23:59,790 Nhưng nếu không, có một ngày tốt lành. 1504 01:23:59,790 --> 01:24:01,933