1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Phần 8] [Ít thoải mái] 2 00:00:02,000 --> 00:00:04,000 [Nate hardison] [Đại học Harvard] 3 00:00:04,000 --> 00:00:08,000 [Đây là CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:11,000 >> Chào mừng bạn đến với thứ hai đến phần cuối. 5 00:00:11,000 --> 00:00:13,000 Trong tuần này, chúng tôi đang đi để nói về PHP, và sau đó vào tuần tới 6 00:00:13,000 --> 00:00:17,000 chúng tôi sẽ làm một xét nhỏ cho quiz 1. 7 00:00:17,000 --> 00:00:20,000 Chúng ta sẽ bắt đầu trên trang 3 của vấn đề đặt gói, 8 00:00:20,000 --> 00:00:28,000 và chúng tôi sẽ làm việc thông qua phần câu hỏi khá nhanh chóng. 9 00:00:28,000 --> 00:00:34,000 Trên trang 3, chúng tôi bắt đầu nói về sự khác biệt này giữa C và PHP 10 00:00:34,000 --> 00:00:38,000 trong ý nghĩa rằng PHP là một ngôn ngữ động gõ, 11 00:00:38,000 --> 00:00:42,000 trong khi C là tĩnh đánh máy, 12 00:00:42,000 --> 00:00:46,000 và có ai thực sự nhanh chóng thực hiện bất kỳ mã hóa trong một cái gì đó như PHP 13 00:00:46,000 --> 00:00:51,000 hay Python hay Ruby trước, JavaScript? 14 00:00:51,000 --> 00:00:53,000 Hoàn toàn mới? Okay. 15 00:00:53,000 --> 00:00:56,000 >> Tất cả các ngôn ngữ này mà tôi chỉ đề cập 16 00:00:56,000 --> 00:01:01,000 là rất khác nhau từ các ngôn ngữ như C và C + + và Java 17 00:01:01,000 --> 00:01:04,000 trong ý nghĩa rằng khi bạn khai báo một biến, bạn không phải khai báo 18 00:01:04,000 --> 00:01:09,000 loại của biến, vì vậy trong C, chúng tôi đã bị mắc kẹt phải luôn luôn nói 19 00:01:09,000 --> 00:01:13,000 này là có được một biến int, hoặc điều này là có được một biến char *, 20 00:01:13,000 --> 00:01:16,000 trong khi với PHP, Python, Ruby, 21 00:01:16,000 --> 00:01:20,000 với rất nhiều các ngôn ngữ hiện đại hơn, bạn không phải làm điều đó ở tất cả. 22 00:01:20,000 --> 00:01:24,000 Bạn chỉ cần khai báo biến của bạn, và trong trường hợp của PHP 23 00:01:24,000 --> 00:01:28,000 bạn khai báo rằng nó là một biến bằng cách đặt trước nó với một dấu hiệu $ 24 00:01:28,000 --> 00:01:35,000 và sau đó là kiểu của biến được xác định bởi bất cứ điều gì giá trị của nó đang nắm giữ, 25 00:01:35,000 --> 00:01:38,000 đó là loại mát mẻ. 26 00:01:38,000 --> 00:01:44,000 Để chơi xung quanh với điều này một chút, chúng tôi có mẫu mã PHP ngay tại đây 27 00:01:44,000 --> 00:01:47,000 giữa các thẻ bắt đầu và kết thúc. 28 00:01:47,000 --> 00:01:53,000 Chúng tôi đang sử dụng loại này như HTML trong ý nghĩa rằng 29 00:01:53,000 --> 00:01:56,000 chúng tôi đã có những dấu ngoặc nhọn để mở và đóng. 30 00:01:56,000 --> 00:01:58,000 Bạn sẽ thấy điều này với HTML. 31 00:01:58,000 --> 00:02:03,000 Bạn sẽ thấy cùng một loại cú pháp XML. 32 00:02:03,000 --> 00:02:06,000 >> Điều này cho thấy sự khởi đầu của một khối PHP. 33 00:02:06,000 --> 00:02:09,000 Này php? Cụ thể cho PHP. 34 00:02:09,000 --> 00:02:16,000 Chúng tôi đóng tất cả mọi thứ với a> là tốt? 35 00:02:16,000 --> 00:02:22,000 Hãy mở một tập tin trong thiết bị của chúng tôi bằng cách sử dụng bất cứ điều gì bạn muốn. 36 00:02:22,000 --> 00:02:25,000 Trong gói tin này, nó nói gọi dynamic.php. 37 00:02:25,000 --> 00:02:29,000 Sự thật là bạn có thể gọi nó là bất cứ điều gì bạn muốn, nhưng tên tập tin sẽ đi lên 38 00:02:29,000 --> 00:02:34,000 và quan trọng sau đó, do đó, chỉ cần nhớ bất cứ điều gì bạn gọi nó. 39 00:02:34,000 --> 00:02:36,000 Tôi sẽ chuyển sang thiết bị, 40 00:02:36,000 --> 00:02:43,000 và tôi sẽ làm cho một thư mục cho 41 00:02:43,000 --> 00:02:48,000 phần 9 tôi tin rằng chúng tôi đang ở bây giờ. 42 00:02:48,000 --> 00:02:51,000 Và chúng ta sẽ đi vào phần 9, 43 00:02:51,000 --> 00:02:54,000 và tôi sẽ sử dụng gedit. 44 00:02:54,000 --> 00:02:59,000 Hãy xem, gedit, và tôi sẽ gọi dynamic.php tôi. 45 00:02:59,000 --> 00:03:03,000 Boom. 46 00:03:03,000 --> 00:03:06,000 Trong dynamic.php, vì đây là một tập tin PHP 47 00:03:06,000 --> 00:03:09,000 và tôi muốn chạy điều này thông qua các thông dịch viên PHP 48 00:03:09,000 --> 00:03:12,000 Tôi cần phải bắt đầu tất cả mọi thứ với những thẻ mở, 49 00:03:12,000 --> 00:03:17,000 vì vậy tôi sẽ để bắt đầu những ngay lập tức, 50 00:03:17,000 --> 00:03:23,000 cung cấp cho bản thân mình một khoảng trống nhỏ giữa các thẻ, 51 00:03:23,000 --> 00:03:26,000 và sau đó là điểm của bài tập này là để chơi xung quanh với 52 00:03:26,000 --> 00:03:34,000 chức năng này được gọi là GetType, vì vậy GetType, chức năng này ngay tại đây. 53 00:03:34,000 --> 00:03:38,000 >> Chú ý rằng có không có gạch dưới hoặc không gian hoặc dấu nối hoặc bất cứ điều gì như thế 54 00:03:38,000 --> 00:03:42,000 tách 2 từ, và gõ, chỉ cần một từ hoàn toàn. 55 00:03:42,000 --> 00:03:46,000 Nhưng điều này sẽ làm là nếu tôi vượt qua trong một biến để GetType, 56 00:03:46,000 --> 00:03:51,000 nói $ var hoặc $ x, 57 00:03:51,000 --> 00:03:55,000 điều này sẽ cho tôi biết loại trong một định dạng gỡ lỗi 58 00:03:55,000 --> 00:03:59,000 những gì tên của loại đó. 59 00:03:59,000 --> 00:04:03,000 Chúng tôi sẽ thử nghiệm ở đây. 60 00:04:03,000 --> 00:04:07,000 Đặc biệt, nếu bạn nhìn lại vào spec pset 61 00:04:07,000 --> 00:04:11,000 chúng tôi đã có một vài dòng khác nhau của mã ở đây. 62 00:04:11,000 --> 00:04:16,000 Trong dòng mã đầu tiên chúng ta khởi tạo biến này, $ var, 63 00:04:16,000 --> 00:04:21,000 bằng 7, và sau đó chúng tôi có dòng này printf 64 00:04:21,000 --> 00:04:25,000 nói rằng hey, printf var là trống. 65 00:04:25,000 --> 00:04:29,000 Printf là một trong nhiều cách chúng ta có thể in những thứ trong PHP. 66 00:04:29,000 --> 00:04:33,000 Thường thì bạn sẽ thấy hàm echo được sử dụng thay cho printf, 67 00:04:33,000 --> 00:04:40,000 nhưng printf chúng ta đều quen thuộc với đã được mã hóa trong C trong một thời gian. 68 00:04:40,000 --> 00:04:42,000 Những gì bạn thực sự có thể làm được cho xem các công trình sao chép và dán. 69 00:04:42,000 --> 00:04:46,000 Tôi sẽ cung cấp cho một thử. 70 00:04:46,000 --> 00:04:52,000 Chúng tôi sẽ trở lại trên thiết bị. 71 00:04:52,000 --> 00:05:00,000 Được rồi, và ở đó chúng tôi đi. 72 00:05:00,000 --> 00:05:05,000 Và khoảng cách là một funky chút, nhưng ở đây chúng tôi đi. 73 00:05:05,000 --> 00:05:08,000 Chúng tôi đã có mã này ở đây. 74 00:05:08,000 --> 00:05:11,000 >> [Sinh viên không tốt phong cách cho tab nó? 75 00:05:11,000 --> 00:05:13,000 Xin lỗi? 76 00:05:13,000 --> 00:05:15,000 [Sinh viên thông thường để tab nó? 77 00:05:15,000 --> 00:05:21,000 Đúng, vì vậy Sam hỏi nếu đó là quy ước để tab nó hay không. 78 00:05:21,000 --> 00:05:23,000 Thông thường có. 79 00:05:23,000 --> 00:05:26,000 Trong trường hợp này tôi đã chọn không. 80 00:05:26,000 --> 00:05:33,000 Thành thật mà nói, bạn sẽ thấy những điều khác nhau giữa các lập trình khác nhau. 81 00:05:33,000 --> 00:05:40,000 PHP thường được sử dụng thường xuyên kết hợp với HTML 82 00:05:40,000 --> 00:05:45,000 và ngôn ngữ khác, vì vậy đôi khi việc in ấn sẽ xem xét một funky nhỏ 83 00:05:45,000 --> 00:05:50,000 nếu bạn thụt trong PHP bắt đầu và thẻ kết thúc. 84 00:05:50,000 --> 00:05:53,000 Nó thực sự phụ thuộc. 85 00:05:53,000 --> 00:05:56,000 Trong trường hợp này sao chép và dán không dán các tab trong đối với tôi, 86 00:05:56,000 --> 00:06:02,000 nhưng nó chắc chắn không, như bạn nói, làm cho nó rõ ràng hơn. 87 00:06:02,000 --> 00:06:06,000 Được rồi, nếu bạn lưu mã này trong dynamic.php 88 00:06:06,000 --> 00:06:10,000 sau đó những gì bạn có thể làm là đi xuống đến cửa sổ thiết bị đầu cuối của bạn nơi tôi ngay xuống đây 89 00:06:10,000 --> 00:06:17,000 gedit, và để làm tương đương của biên dịch 90 00:06:17,000 --> 00:06:20,000 sử dụng thực hiện và sau đó chạy mã của bạn trong C 91 00:06:20,000 --> 00:06:25,000 tất cả những gì bạn phải làm với các tập tin PHP là bắt đầu lên các thông dịch viên PHP, 92 00:06:25,000 --> 00:06:30,000 đó là một chương trình nhỏ được gọi là PHP, 93 00:06:30,000 --> 00:06:35,000 và đối số bạn cung cấp cho thông dịch viên là các tập tin bạn muốn giải thích. 94 00:06:35,000 --> 00:06:40,000 Trong trường hợp này, dynamic.php. 95 00:06:40,000 --> 00:06:43,000 Whoops, nơi mà tôi đặt nó? 96 00:06:43,000 --> 00:06:52,000 Ồ, tôi đặt nó trong phần 9, và ở đây tôi. Đó là lý do tại sao. 97 00:06:52,000 --> 00:06:57,000 >> Bây giờ nếu tôi chạy đó một lần nữa 98 00:06:57,000 --> 00:07:02,000 chúng ta thấy rằng trong chức năng đầu tiên của tôi gọi GetType 99 00:07:02,000 --> 00:07:04,000 var là một số nguyên. 100 00:07:04,000 --> 00:07:12,000 Trong var tiếp theo là một chuỗi, và sau đó trong var 1/3 là một boolean. 101 00:07:12,000 --> 00:07:15,000 Có gì thú vị về điều này là nếu chúng ta di chuyển trở lại, chúng ta thấy rằng 102 00:07:15,000 --> 00:07:18,000 đây là những loại tương tự như những cái mà chúng tôi đã có trong C. 103 00:07:18,000 --> 00:07:22,000 Chúng tôi đã có ints trong C. 104 00:07:22,000 --> 00:07:26,000 Chúng tôi sắp xếp của chuỗi trong C, 105 00:07:26,000 --> 00:07:31,000 để dây không phải là một loại hoàn toàn legit trong ý nghĩa 106 00:07:31,000 --> 00:07:37,000 chuỗi CS50 của chúng tôi là thực sự những gì? 107 00:07:37,000 --> 00:07:39,000 Xin lỗi? Missy? 108 00:07:39,000 --> 00:07:41,000 [Missy] Char *. 109 00:07:41,000 --> 00:07:43,000 Yeah, nó là char * này chúng tôi sử dụng. 110 00:07:43,000 --> 00:07:47,000 Vào lúc bắt đầu của học kỳ, chúng tôi đã sử dụng loại dây, 111 00:07:47,000 --> 00:07:52,000 nhưng nó đã thực sự là một char * dưới mui xe. 112 00:07:52,000 --> 00:07:58,000 Chúng tôi chỉ loại được xác định, trong khi các chuỗi trong PHP là một loại thực tế. 113 00:07:58,000 --> 00:08:07,000 Không có nhiều công cụ này kiểu char *. 114 00:08:07,000 --> 00:08:10,000 >> Bạn sẽ thấy rằng chúng ta có thể làm nhiều điều hơn nữa với chuỗi 115 00:08:10,000 --> 00:08:14,000 dễ dàng hơn nhiều trong PHP hơn chúng ta có thể trong C, 116 00:08:14,000 --> 00:08:17,000 và cuối cùng, chúng tôi có kiểu boolean này, và sự khác biệt lớn ở đây là 117 00:08:17,000 --> 00:08:21,000 nếu chúng ta di chuyển xuống trở lại, chúng tôi thấy rằng tên của các loại 118 00:08:21,000 --> 00:08:28,000 là số nguyên, chuỗi, và boolean thay vì int và bool, 119 00:08:28,000 --> 00:08:31,000 và khi bạn chọn ngôn ngữ lập trình khác nhau, 120 00:08:31,000 --> 00:08:36,000 giả sử rằng tại một số điểm trong cuộc sống của bạn, bạn sẽ tiếp xúc với 121 00:08:36,000 --> 00:08:40,000 những người khác nhau, bạn sẽ nhận thấy quirks chút như thế này 122 00:08:40,000 --> 00:08:44,000 trong đó C gọi là số nguyên ints. 123 00:08:44,000 --> 00:08:46,000 Một số người gọi nó là số nguyên. 124 00:08:46,000 --> 00:08:51,000 Có những điều khoản khác mà bạn sẽ chạy vào. 125 00:08:51,000 --> 00:08:55,000 Int lớn, chúng tôi đã thấy hôm nay trong SQL. 126 00:08:55,000 --> 00:08:59,000 Ngoài ra còn có số lượng và sau đó bool, boolean, 127 00:08:59,000 --> 00:09:03,000 tất cả các loại của sự khác biệt đó. 128 00:09:03,000 --> 00:09:07,000 >> Điều này không phải là terribly thú vị, nhưng bây giờ tôi sẽ cung cấp cho bạn một chút ít thời gian 129 00:09:07,000 --> 00:09:13,000 nếu chúng ta thu nhỏ trở lại làm việc thông qua bài tập này ở dưới cùng của trang 3 130 00:09:13,000 --> 00:09:20,000 mà nó yêu cầu những loại tương ứng với các giá trị ở đây ở phía dưới. 131 00:09:20,000 --> 00:09:24,000 Chúng tôi có 3,50. 132 00:09:24,000 --> 00:09:28,000 Chúng tôi có điều này ngay tại đây, là thú vị. 133 00:09:28,000 --> 00:09:32,000 Chúng tôi đã không thấy rằng trước đây, mặc dù nếu bạn đã đi theo trong bài giảng 134 00:09:32,000 --> 00:09:35,000 bạn có thể đã biết đó là gì. 135 00:09:35,000 --> 00:09:40,000 Sau đó, chúng tôi có điều này, mà điều này là loại của funky. 136 00:09:40,000 --> 00:09:42,000 Bạn nhận ra điều này. 137 00:09:42,000 --> 00:09:46,000 Điều này trong C là gì? 138 00:09:46,000 --> 00:09:50,000 Sam? Điều này sẽ cung cấp cho bạn trong C? 139 00:09:50,000 --> 00:09:54,000 Nó sẽ mở ra một tập tin gọi là dynamic.php và làm cho nó có thể đọc được. 140 00:09:54,000 --> 00:09:58,000 Yeah, và những gì sẽ là kiểu của biến rằng chúng tôi sẽ chỉ định này sao File? >>. 141 00:09:58,000 --> 00:10:02,000 Chính xác, chúng tôi sẽ chỉ định tới một ngôi sao tập tin. 142 00:10:02,000 --> 00:10:08,000 Điều này là hợp pháp PHP. 143 00:10:08,000 --> 00:10:12,000 Chạy mà. Xem những gì sẽ xảy ra khi bạn vượt qua đó vào GetType. 144 00:10:12,000 --> 00:10:19,000 Và sau đó cũng kiểm tra null là gì, những gì có thể được trong PHP. 145 00:10:19,000 --> 00:10:21,000 Tôi sẽ cung cấp cho bạn một vài phút. 146 00:10:21,000 --> 00:10:24,000 Bạn có nghĩa là có thể sao chép và dán các giá trị này, 147 00:10:24,000 --> 00:10:29,000 và sau đó chúng tôi sẽ làm một cuộc gọi chút ngẫu nhiên trên bạn 148 00:10:29,000 --> 00:10:34,000 và xem những gì bạn có. 149 00:10:34,000 --> 00:10:36,000 >> [Sinh viên] Tôi có một câu hỏi. << Vâng. 150 00:10:36,000 --> 00:10:40,000 Trong một trong các bài giảng, David cho biết có điều gì đó bạn có thể đặt ở đầu của tập tin của bạn 151 00:10:40,000 --> 00:10:43,000 vì vậy bạn không phải gõ trong PHP. 152 00:10:43,000 --> 00:10:45,000 Cái gì thế? 153 00:10:45,000 --> 00:10:50,000 Ông có thể nói về các bang pound, các bang băm. 154 00:10:50,000 --> 00:10:57,000 Đó là một chỉ thị rằng nếu bạn đánh dấu tập tin của bạn như là thực thi 155 00:10:57,000 --> 00:11:01,000 sau đó những gì nó làm là khi bạn thực hiện các tập tin 156 00:11:01,000 --> 00:11:06,000 nó sẽ cho các chương trình bao 157 00:11:06,000 --> 00:11:12,000 sử dụng các thông dịch viên PHP để giải thích các nội dung của tập tin. 158 00:11:12,000 --> 00:11:16,000 Câu hỏi là dòng này đặc biệt là những gì 159 00:11:16,000 --> 00:11:20,000 chúng tôi có thể bao gồm ở trên cùng của các tập tin PHP của chúng tôi không phải bao gồm 160 00:11:20,000 --> 00:11:26,000 dòng này PHP hoặc lệnh này PHP bất cứ khi nào chúng ta muốn thực hiện các tập tin? 161 00:11:26,000 --> 00:11:31,000 Và bạn thực sự có thể làm điều này với một loạt các tập tin khác nhau. 162 00:11:31,000 --> 00:11:37,000 Tôi tin rằng nó phụ thuộc vào nơi nhị phân PHP được lưu trữ, 163 00:11:37,000 --> 00:11:43,000 nhưng thường usr / bin / php là một nơi tốt để bắt đầu. 164 00:11:43,000 --> 00:11:45,000 Bạn có thể con số này ra một cách chính xác bằng cách quay trở lại thiết bị của bạn 165 00:11:45,000 --> 00:11:50,000 và gõ ra php. 166 00:11:50,000 --> 00:11:55,000 Lệnh ra khi bạn đang thực hiện nhị phân 167 00:11:55,000 --> 00:12:01,000 hoặc một lệnh, nơi các tập tin tương ứng. 168 00:12:01,000 --> 00:12:06,000 Này nói với tôi rằng PHP thực sự là răng cưa này tập tin nhị phân 169 00:12:06,000 --> 00:12:13,000 được lưu trữ trong usr / bin, đó là nơi mà rất nhiều những chương trình hệ thống được cài đặt. 170 00:12:13,000 --> 00:12:21,000 Ví dụ, nếu tôi di chuyển lên đến đỉnh, bây giờ mà tôi đã đặt này #! ở đây 171 00:12:21,000 --> 00:12:27,000 Tôi có thể di chuyển xuống, và tôi có thể cố gắng để chạy 172 00:12:27,000 --> 00:12:35,000 dynamic.php, nhưng tôi nhận được lỗi về sự cho phép bị từ chối, 173 00:12:35,000 --> 00:12:42,000 và điều đó có nghĩa là tập tin này không cho phép thực thi. 174 00:12:42,000 --> 00:12:46,000 Nó không được đánh dấu như là một tập tin rằng ai đó có thể chạy. 175 00:12:46,000 --> 00:12:52,000 >> Khi bạn chạy thực hiện hoặc Clang và bạn có một thực thi từ nó 176 00:12:52,000 --> 00:12:56,000 trình biên dịch đã đủ thông minh để biết rằng hey, Tôi đang xây dựng một tập tin thực thi. 177 00:12:56,000 --> 00:13:00,000 Bạn có thể muốn thực hiện nó, do đó, nó sẽ tự động cấu hình 178 00:13:00,000 --> 00:13:02,000 các điều khoản cho bạn. 179 00:13:02,000 --> 00:13:06,000 Đây không phải là trường hợp, tuy nhiên, khi bạn tạo một tập tin bình thường từ đầu, 180 00:13:06,000 --> 00:13:13,000 lý do thông thường bạn không muốn có bất kỳ tập tin trên hệ thống của bạn được thực thi, 181 00:13:13,000 --> 00:13:15,000 do đó, bạn thực sự phải đi vào và tự làm điều đó. 182 00:13:15,000 --> 00:13:22,000 Cách dễ nhất để làm điều đó với lệnh chmod, 183 00:13:22,000 --> 00:13:28,000 và chmod + x cho biết thêm các bit thực thi 184 00:13:28,000 --> 00:13:31,000 bởi vì có chút đọc, viết các bit và bit thực thi, 185 00:13:31,000 --> 00:13:35,000 r, w và x, 186 00:13:35,000 --> 00:13:39,000 và nói chmod + x sẽ bật bit thực thi 187 00:13:39,000 --> 00:13:46,000 cho tập tin sau đó chúng tôi chỉ định, trong trường hợp này sẽ dynamic.php. 188 00:13:46,000 --> 00:13:49,000 >> [Sinh viên] mà bật cho tất cả mọi người? 189 00:13:49,000 --> 00:13:52,000 Hãy kiểm tra này ra, vì vậy làm thế nào tôi sẽ kiểm tra xem các cho phép? 190 00:13:52,000 --> 00:13:54,000 Bạn có biết làm thế nào tôi muốn kiểm tra xem các điều khoản của một tập tin? 191 00:13:54,000 --> 00:13:56,000 [Không nghe được sinh viên phản ứng] 192 00:13:56,000 --> 00:13:58,000 Xin lỗi >> [Sinh viên] XSD. 193 00:13:58,000 --> 00:14:03,000 XSD cho chúng ta các tập tin trong hacks. 194 00:14:03,000 --> 00:14:09,000 Liệt kê tất cả các tập tin,-l, sẽ cho tôi xem tất cả các file trong thư mục của tôi 195 00:14:09,000 --> 00:14:13,000 loại trong dài danh sách chi tiết của họ, và vì vậy ở đây chúng ta thấy rằng 196 00:14:13,000 --> 00:14:17,000 tập tin này dynamic.php 197 00:14:17,000 --> 00:14:23,000 Lần sửa cuối: 05 tháng mười một tại 04:21 PM. 198 00:14:23,000 --> 00:14:26,000 Chủ sở hữu của tập tin này được jharvard. 199 00:14:26,000 --> 00:14:28,000 Đó là người dùng đăng nhập. 200 00:14:28,000 --> 00:14:31,000 Đó là người sử dụng tôi đang làm việc như, 201 00:14:31,000 --> 00:14:36,000 và nếu bạn cũng có trong thiết bị, bạn tôi cũng làm việc như jharvard người sử dụng. 202 00:14:36,000 --> 00:14:38,000 Bạn đang ở trong nhóm sinh viên, 203 00:14:38,000 --> 00:14:44,000 và đây là những điều mà bạn sẽ thấy thường xuyên đủ. 204 00:14:44,000 --> 00:14:47,000 >> Chúng ta có thể đi vào nhiều chi tiết ở đây, 205 00:14:47,000 --> 00:14:50,000 nhưng đối với hầu hết các phần những gì bạn muốn để xem xét khi bạn đang tìm kiếm để xem 206 00:14:50,000 --> 00:14:55,000 có hoặc không có một tập tin thực thi là chủ yếu 207 00:14:55,000 --> 00:14:58,000 người dùng sở hữu các tập tin, chủ sở hữu, 208 00:14:58,000 --> 00:15:03,000 do đó, điều này jharvard, và sau đó chúng tôi có 209 00:15:03,000 --> 00:15:07,000 cho phép các bit trên bên trái, 210 00:15:07,000 --> 00:15:13,000 và cách đọc này là các bit cuối cùng 211 00:15:13,000 --> 00:15:18,000 thường được sử dụng để đánh dấu hay không, ít nhất là trong trường hợp này 212 00:15:18,000 --> 00:15:21,000 bit cuối cùng này thường sẽ được thiết lập quảng cáo để chỉ ra 213 00:15:21,000 --> 00:15:24,000 rằng tập tin là một thư mục và không chỉ là một tập tin bình thường. 214 00:15:24,000 --> 00:15:28,000 Sau đó, sau đây 3 bit ngay tại đây 215 00:15:28,000 --> 00:15:34,000 xác định các điều khoản chủ sở hữu của tập tin có, 216 00:15:34,000 --> 00:15:38,000 do đó, trong trường hợp này jharvard, là chủ sở hữu của tập tin, có thể đọc và ghi tập tin này, 217 00:15:38,000 --> 00:15:42,000 nhưng có một dấu gạch ngang nói rằng jharvard không thể thực thi tập tin này. 218 00:15:42,000 --> 00:15:46,000 3 bit tiếp theo là cho nhóm, vì vậy đây là nhóm sinh viên, 219 00:15:46,000 --> 00:15:49,000 vì vậy nếu có nhiều người dùng trên thiết bị của tôi, 220 00:15:49,000 --> 00:15:52,000 và chúng tôi đã có nhiều người sử dụng như là một phần của nhóm sinh viên, 221 00:15:52,000 --> 00:15:55,000 sau đó tất cả họ đều có thể đọc tập tin này, nhưng họ không thể viết nó, 222 00:15:55,000 --> 00:15:59,000 và tương tự như vậy bất cứ ai khác, thế giới 223 00:15:59,000 --> 00:16:01,000 chỉ có thể đọc tập tin này là tốt. 224 00:16:01,000 --> 00:16:03,000 Có một writeup tốt về việc này, 225 00:16:03,000 --> 00:16:05,000 để bạn có thể đọc trực tuyến. 226 00:16:05,000 --> 00:16:10,000 Trong spec bộ vấn đề, chúng ta đi vào chi tiết hơn. 227 00:16:10,000 --> 00:16:12,000 >> [Sinh viên] 218 giới thiệu với thế giới? 228 00:16:12,000 --> 00:16:17,000 218 được ra khỏi đỉnh đầu của tôi Tôi quên, 229 00:16:17,000 --> 00:16:20,000 nhưng không có. 230 00:16:20,000 --> 00:16:29,000 Hãy xem. Tôi xóa trên đó ngay bây giờ. 231 00:16:29,000 --> 00:16:32,000 Trở lại những gì chúng tôi đã làm với điều này + chmod x 232 00:16:32,000 --> 00:16:37,000 nơi mà chúng tôi muốn để cho phép thực thi dynamic.php, 233 00:16:37,000 --> 00:16:40,000 và câu hỏi là có hay không này sẽ cho phép thực thi để tất cả mọi người 234 00:16:40,000 --> 00:16:44,000 hoặc chỉ jharvard, và chúng tôi có thể thấy điều này bằng 235 00:16:44,000 --> 00:16:48,000 chạy các lệnh và gõ ls-l, 236 00:16:48,000 --> 00:16:51,000 và bây giờ chúng ta thấy rằng nó được đánh dấu như là thực thi. 237 00:16:51,000 --> 00:16:54,000 Bạn thấy rằng có một sự thay đổi màu sắc. 238 00:16:54,000 --> 00:16:57,000 Bây giờ dynamic.php được liệt kê trong màu xanh lá cây, 239 00:16:57,000 --> 00:17:01,000 và nó trông giống như câu trả lời cho câu hỏi là gì, Charlotte? 240 00:17:01,000 --> 00:17:04,000 [Charlotte] Chỉ jharvard. >> Chỉ jharvard, yeah. 241 00:17:04,000 --> 00:17:08,000 >> Nếu chúng ta muốn bật bit thực thi cho tất cả mọi người 242 00:17:08,000 --> 00:17:10,000 làm thế nào chúng ta có thể làm điều đó? 243 00:17:10,000 --> 00:17:13,000 Bất kỳ suy nghĩ >> A + x? 244 00:17:13,000 --> 00:17:15,000 Yeah, chính xác. 245 00:17:15,000 --> 00:17:23,000 Charlotte nói chúng ta có thể làm chmod x + của dynamic.php, 246 00:17:23,000 --> 00:17:26,000 và bây giờ nếu chúng ta chạy ls-l chúng ta thấy rằng thực thi bit 247 00:17:26,000 --> 00:17:30,000 có thực sự bật cho tất cả mọi người. 248 00:17:30,000 --> 00:17:37,000 Và bạn có thể thực sự làm đảo ngược này, vì vậy bạn có thể biến nó cho tất cả mọi người 249 00:17:37,000 --> 00:17:41,000 sử dụng trừ. 250 00:17:41,000 --> 00:17:46,000 Bây giờ nó tắt, và bây giờ chúng tôi có thể biến nó trở lại cho jharvard 251 00:17:46,000 --> 00:17:52,000 để chúng tôi thực sự có thể chạy nó bây giờ, 252 00:17:52,000 --> 00:17:58,000 và bây giờ bạn nhìn thấy khi chúng tôi chạy mã này đặc biệt #! dòng ở đầu trang, 253 00:17:58,000 --> 00:18:04,000 #! dòng, nói với vỏ, 254 00:18:04,000 --> 00:18:08,000 nói với thiết bị đầu cuối của chúng tôi hey, khi tập tin này được chạy, 255 00:18:08,000 --> 00:18:14,000 sử dụng / usr / bin / php để giải thích điều này tập tin 256 00:18:14,000 --> 00:18:20,000 và sau đó in sản lượng. 257 00:18:20,000 --> 00:18:22,000 [Câu hỏi sinh viên không nghe được] 258 00:18:22,000 --> 00:18:25,000 Chắc chắn rồi, hãy để tôi di chuyển trở lại. Chỉ như thế này. 259 00:18:25,000 --> 00:18:36,000 Bạn sẽ thấy tất cả các chỉ thị bắt đầu với bảng này và sau đó là dấu chấm than, 260 00:18:36,000 --> 00:18:39,000 đôi khi được gọi là một tiếng nổ, xe củ băm. 261 00:18:39,000 --> 00:18:48,000 >> [Sinh viên] Làm thế nào chúng ta có thể chạy nó với php dynamic.php trước khi chúng tôi làm cho nó thực thi? 262 00:18:48,000 --> 00:18:55,000 Câu hỏi là làm thế nào chúng ta có thể chạy điều này bằng cách sử dụng nhị phân PHP 263 00:18:55,000 --> 00:18:58,000 trong khi dynamic.php là không thực thi? 264 00:18:58,000 --> 00:19:01,000 Điều này là siêu quan trọng vì đây chính là cách 265 00:19:01,000 --> 00:19:06,000 nó sẽ làm việc khi bạn viết đặt vấn đề 7. 266 00:19:06,000 --> 00:19:09,000 Hầu hết các PHP thời không thực thi trực tiếp. 267 00:19:09,000 --> 00:19:14,000 Cách mà các công trình là bởi vì nó là nhị phân PHP đó là thực thi. 268 00:19:14,000 --> 00:19:16,000 Thông dịch viên là điều đang được thực hiện, 269 00:19:16,000 --> 00:19:20,000 và như vậy những gì nó làm là nghĩa đen slurping trong toàn bộ nội dung 270 00:19:20,000 --> 00:19:25,000 của tập tin dynamic.php của chúng tôi và đường đi của dòng 271 00:19:25,000 --> 00:19:29,000 và thực hiện các lệnh, do đó, nó sử dụng file PHP của chúng tôi 272 00:19:29,000 --> 00:19:31,000 như là một danh sách các hướng dẫn. 273 00:19:31,000 --> 00:19:36,000 Nó không phải trực tiếp thực hiện nó. 274 00:19:36,000 --> 00:19:40,000 Đó là nơi mà chúng ta nói rằng những tập tin này được giải thích ở thời gian chạy. 275 00:19:40,000 --> 00:19:46,000 Nó là một ngôn ngữ thời gian chạy thay vì một cái gì đó được xác định tại thời gian biên dịch, 276 00:19:46,000 --> 00:19:49,000 không phải là một ngôn ngữ biên dịch như C. 277 00:19:49,000 --> 00:19:54,000 >> Có cách nào để có được một thời gian chạy ngôn ngữ hành động như thể đó là một thời gian biên dịch ngôn ngữ, 278 00:19:54,000 --> 00:19:58,000 như nếu bạn có tất cả các hoạt động được thực hiện tại máy chủ 279 00:19:58,000 --> 00:20:00,000 chứ không phải là bạn biết những gì tôi có ý nghĩa? 280 00:20:00,000 --> 00:20:04,000 Có, vì vậy câu hỏi là 281 00:20:04,000 --> 00:20:11,000 là có một cách để có được ngôn ngữ thời gian chạy hành động giống như các loại thời gian biên dịch ngôn ngữ? 282 00:20:11,000 --> 00:20:18,000 Và có, tôi có nghĩa là, là một khu vực hoạt động của nghiên cứu cho rất nhiều của các công ty này. 283 00:20:18,000 --> 00:20:22,000 Tôi tin rằng Facebook đã thực hiện rất nhiều công việc với PHP 284 00:20:22,000 --> 00:20:25,000 và biên dịch nó xuống, làm cho nó nhanh hơn, tối ưu hóa nó 285 00:20:25,000 --> 00:20:29,000 kể từ khi trang web của họ được xây dựng trên PHP. 286 00:20:29,000 --> 00:20:34,000 Nếu bạn đã làm theo node.js ở tất cả, 287 00:20:34,000 --> 00:20:40,000 mà là một loại của một thông dịch JavaScript 288 00:20:40,000 --> 00:20:44,000 để có thể chạy JavaScript bên ngoài trình duyệt, bên ngoài của trình duyệt web của bạn, 289 00:20:44,000 --> 00:20:47,000 là do các JavaScript sẽ chỉ chạy bên trong của Firefox hoặc Chrome, 290 00:20:47,000 --> 00:20:52,000 và nó sẽ được sử dụng để làm mát animations xảy ra trên một trang web 291 00:20:52,000 --> 00:20:55,000 và làm cho trang web của bạn năng động. 292 00:20:55,000 --> 00:20:59,000 Đó là được xây dựng trên rất nhiều công việc mà Google đã thực hiện 293 00:20:59,000 --> 00:21:03,000 để làm cho JavaScript và C + + 294 00:21:03,000 --> 00:21:09,000 kết hợp với nhau, do đó, có rất nhiều nghiên cứu đang hoạt động để 295 00:21:09,000 --> 00:21:13,000 có được những ngôn ngữ tương tác và tối ưu hóa chúng, 296 00:21:13,000 --> 00:21:17,000 chủ yếu bởi vì rất nhiều người có thể mã trong PHP và JavaScript 297 00:21:17,000 --> 00:21:19,000 bởi vì nó dễ dàng hơn nhiều. 298 00:21:19,000 --> 00:21:21,000 Đó là đẹp hơn rất nhiều. Bạn không có con trỏ. 299 00:21:21,000 --> 00:21:27,000 Bạn không cần phải loại nổi xung quanh. 300 00:21:27,000 --> 00:21:31,000 Họ muốn để đạt được những lợi ích của các ngôn ngữ thời gian biên dịch 301 00:21:31,000 --> 00:21:36,000 với việc kiểm tra tất cả các loại và tốc độ và bộ nhớ sử dụng thấp hơn và tất cả những điều đó 302 00:21:36,000 --> 00:21:42,000 trong khi vẫn duy trì sự linh hoạt và dễ dàng sử dụng những cái mới hơn. 303 00:21:42,000 --> 00:21:46,000 >> Về kế hoạch ban đầu của chúng tôi tấn công. 304 00:21:46,000 --> 00:21:50,000 Chúng tôi đã có một vài trong số những câu hỏi này ở đây trong spec bộ vấn đề của chúng tôi. 305 00:21:50,000 --> 00:21:54,000 Hãy đi qua chúng thực sự nhanh chóng, và chúng tôi sẽ đi quanh phòng. 306 00:21:54,000 --> 00:21:59,000 Charlotte, loại là 3,50? 307 00:21:59,000 --> 00:22:01,000 Charlotte] Đó là một đôi. >> Đó là một đôi. 308 00:22:01,000 --> 00:22:03,000 Jimmy, tiếp theo là gì? >> Một mảng. 309 00:22:03,000 --> 00:22:09,000 Một mảng, awesome, và Jared, fopen là những gì? 310 00:22:09,000 --> 00:22:11,000 Jared] Đó là một nguồn tài nguyên >> Đó là một nguồn tài nguyên. 311 00:22:11,000 --> 00:22:15,000 Đó là loại một cái mới, không phải một ngôi sao tập tin, không phải là một tập tin. 312 00:22:15,000 --> 00:22:19,000 Đó là một nguồn tài nguyên là loại trong PHP, 313 00:22:19,000 --> 00:22:24,000 và tôi xin lỗi, Ella, null cuối cùng là gì? 314 00:22:24,000 --> 00:22:26,000 Null. 315 00:22:26,000 --> 00:22:28,000 Null, thế nào là nó đánh vần trong PHP? >> Theo cùng một cách. 316 00:22:28,000 --> 00:22:30,000 Theo cùng một cách, thủ đô >> Yeah? 317 00:22:30,000 --> 00:22:33,000 Yeah, tất cả các quyền. 318 00:22:33,000 --> 00:22:35,000 Ở đây chúng tôi đi, chúng tôi đã có một đôi, chúng tôi đã có một mảng, 319 00:22:35,000 --> 00:22:41,000 chúng tôi đã có một nguồn tài nguyên, và sau đó chúng tôi đã có vô giá trị. 320 00:22:41,000 --> 00:22:48,000 Hãy xem bây giờ bạn nhìn thấy 321 00:22:48,000 --> 00:22:51,000 chúng ta hãy xem, vì vậy bây giờ tôi đoán những gì tôi cũng muốn làm là kéo lên 322 00:22:51,000 --> 00:22:56,000 trang web này ngay tại đây, điều này php.net / dẫn sử dụng, 323 00:22:56,000 --> 00:23:01,000 vì vậy nếu bạn sao chép đó và mở ra một trình duyệt web. 324 00:23:01,000 --> 00:23:07,000 Tôi sẽ để kéo lên Chrome, đưa. 325 00:23:07,000 --> 00:23:10,000 Tôi muốn cho bạn thấy điều này không chỉ vì 326 00:23:10,000 --> 00:23:13,000 chúng ta có thể nói chuyện cả ngày về loại và tất cả các công cụ thú vị 327 00:23:13,000 --> 00:23:19,000 mà là bởi vì đây là hướng dẫn PHP, 328 00:23:19,000 --> 00:23:23,000 và có rất nhiều các lập trình viên PHP ra khỏi đó. 329 00:23:23,000 --> 00:23:26,000 Hiện có rất nhiều các trang web PHP ra khỏi đó, 330 00:23:26,000 --> 00:23:31,000 và kết quả là, có rất nhiều tài liệu về PHP, 331 00:23:31,000 --> 00:23:36,000 và sử dụng, php.net, là một nơi thực sự tốt để đi 332 00:23:36,000 --> 00:23:43,000 bất cứ khi nào bạn có câu hỏi về cách tốt nhất để làm X trong PHP là những gì 333 00:23:43,000 --> 00:23:45,000 hay một chức năng giống như những gì? 334 00:23:45,000 --> 00:23:49,000 Chỉ cần loại quen thuộc với những gì trông giống như vì 335 00:23:49,000 --> 00:23:54,000 bạn sẽ được đến đây thường xuyên, một chút cho vấn đề thiết lập 7. 336 00:23:54,000 --> 00:23:57,000 >> Nếu bạn kết thúc làm một dự án cuối cùng sử dụng PHP 337 00:23:57,000 --> 00:24:04,000 điều này sẽ là một nơi bạn sẽ trở nên rất quen thuộc với. 338 00:24:04,000 --> 00:24:09,000 Thường là cách người làm việc này là họ sử dụng Google để tìm kiếm cho các trang web, 339 00:24:09,000 --> 00:24:16,000 và họ không sử dụng hộp tìm kiếm ở phía trên bên phải, mà là loại nhỏ. 340 00:24:16,000 --> 00:24:19,000 Nếu bạn đang Googling xung quanh cho một cái gì đó để làm với PHP và bạn thấy 341 00:24:19,000 --> 00:24:24,000 một trong các liên kết hướng dẫn sử dụng bật lên bạn thường có thể dựa vào đó 342 00:24:24,000 --> 00:24:31,000 như một nguồn lực khá tốt. 343 00:24:31,000 --> 00:24:34,000 Awesome, trong các loại, chỉ cần ra khỏi tò mò, 344 00:24:34,000 --> 00:24:37,000 những người thân mà chúng tôi đã không nhìn thấy? 345 00:24:37,000 --> 00:24:40,000 Bất cứ điều gì chúng tôi đã không nhìn thấy ở đây? 346 00:24:40,000 --> 00:24:44,000 [Sinh viên Resource. Chúng tôi thấy tài nguyên với các cuộc gọi fopen. 347 00:24:44,000 --> 00:24:48,000 [Sinh viên] Đối tượng Đối tượng >> chúng tôi đã không nhìn thấy chắc chắn. 348 00:24:48,000 --> 00:24:51,000 Callbacks chúng tôi đã không nhìn thấy. 349 00:24:51,000 --> 00:24:54,000 Có một số các giả các loại. 350 00:24:54,000 --> 00:24:57,000 Chúng tôi chắc chắn chỉ nhìn thấy số nguyên và tăng gấp đôi. 351 00:24:57,000 --> 00:25:01,000 Chúng tôi không thấy một số người khác, vì vậy nếu chúng ta click vào số nguyên 352 00:25:01,000 --> 00:25:08,000 chúng ta có thể thấy được có bất kỳ số nguyên khác rằng họ có ở đây? 353 00:25:08,000 --> 00:25:11,000 Họ có tất cả số nguyên, số nguyên, số nguyên. 354 00:25:11,000 --> 00:25:14,000 Một số ngôn ngữ có các loại số nguyên lớn hơn, 355 00:25:14,000 --> 00:25:23,000 như chúng ta đã thấy trên MySQL int và int lớn. 356 00:25:23,000 --> 00:25:25,000 Cool. 357 00:25:25,000 --> 00:25:28,000 >> Vì vậy, PHP hướng dẫn sử dụng. 358 00:25:28,000 --> 00:25:37,000 Hãy quay trở lại để spec bộ vấn đề của chúng tôi, và bây giờ chúng ta sẽ di chuyển xuống trang 4. 359 00:25:37,000 --> 00:25:41,000 Một trong những điều đó xảy ra khi bạn nhận được các thứ tiếng 360 00:25:41,000 --> 00:25:49,000 mà không có gõ tĩnh này, do đó, các ngôn ngữ mà bạn phải khai báo 361 00:25:49,000 --> 00:25:52,000 loại của một biến lên phía trước 362 00:25:52,000 --> 00:26:00,000 là bạn nhận được trường hợp nơi bạn có thể bắt đầu có các biến của các loại khác nhau 363 00:26:00,000 --> 00:26:04,000 tương tác với nhau, 364 00:26:04,000 --> 00:26:09,000 và PHP hiện điều này khi nó cố gắng để làm 365 00:26:09,000 --> 00:26:13,000 những gì mà họ coi là điều hợp lý nhất để làm 366 00:26:13,000 --> 00:26:18,000 khi bạn có 2 loại khác nhau tương tác với nhau. 367 00:26:18,000 --> 00:26:24,000 Ví dụ, nếu chúng ta nhìn vào các dòng mã ngay tại đây 368 00:26:24,000 --> 00:26:29,000 bạn thấy rằng chúng tôi đã có những gì sẽ xảy ra khi 369 00:26:29,000 --> 00:26:38,000 chúng tôi cố gắng và thêm chuỗi 1 số nguyên 2. 370 00:26:38,000 --> 00:26:41,000 Điều gì sẽ xảy ra nếu chúng tôi cố gắng và thêm một chuỗi đó là không phải là một giá trị số 371 00:26:41,000 --> 00:26:48,000 nhưng các ký tự chứ không phải thực tế, CS số 50? 372 00:26:48,000 --> 00:26:51,000 Sau đó, chúng ta sẽ thấy có bất cứ điều gì khác nhau, điều đó xảy ra nơi 373 00:26:51,000 --> 00:26:56,000 thay vì thêm một chuỗi với một số chúng ta đang thêm một số vào một chuỗi, 374 00:26:56,000 --> 00:27:00,000 và vv và vv để điểm mà chúng tôi đang nhận được 375 00:27:00,000 --> 00:27:05,000 một số loại công cụ kỳ lạ ngay ở đây, nơi chúng tôi đã có 7 + đúng. 376 00:27:05,000 --> 00:27:09,000 Những gì heck không có nghĩa là? 377 00:27:09,000 --> 00:27:19,000 >> Nếu bạn đi trước và dán một số của mã này vào thiết bị của bạn. 378 00:27:19,000 --> 00:27:27,000 Bạn có thể giữ nó trong dynamic.php. 379 00:27:27,000 --> 00:27:30,000 Chúng tôi sẽ xem những gì sẽ xảy ra. 380 00:27:41,000 --> 00:27:43,000 [Sinh viên] Chỉ cần sử dụng in ấn, không phải printf? 381 00:27:43,000 --> 00:27:52,000 Yeah, vì vậy bạn sẽ thấy rằng in cũng là một chức năng hợp lệ cho việc in ấn trong PHP. 382 00:27:52,000 --> 00:27:54,000 Có nhiều cách khác nhau để làm việc đó. 383 00:27:54,000 --> 00:27:58,000 Chúng ta sẽ thấy với một vài ví dụ sau khi chúng tôi bắt đầu nói chuyện 384 00:27:58,000 --> 00:28:02,000 về vấn đề duy nhất mà chúng tôi đang đi để viết 385 00:28:02,000 --> 00:28:06,000 và sau đó là vấn đề nồng độ mà chúng tôi đang đi để viết 386 00:28:06,000 --> 00:28:09,000 rằng mặc dù chúng ta có fopen và fclose 387 00:28:09,000 --> 00:28:15,000 đó là thường không phải là cách đơn giản nhất để đọc nội dung của một tập tin. 388 00:28:15,000 --> 00:28:21,000 PHP có rất nhiều những holdovers C-. 389 00:28:21,000 --> 00:28:28,000 [Sinh viên] Khi tôi đặt trong tất cả 6 trong những điều tôi chỉ nhận được một số như một đầu ra. 390 00:28:28,000 --> 00:28:36,000 [Nate H.] Khi bạn đặt trong tất cả 6 trong những việc này. 391 00:28:36,000 --> 00:28:39,000 Hãy xem nó bởi vì nó có thể là- 392 00:28:39,000 --> 00:28:46,000 một điều là các cuộc gọi in không được chấm dứt vào cuối với dòng mới. 393 00:28:46,000 --> 00:28:49,000 Không có dòng mới tách mỗi của các cuộc gọi in, 394 00:28:49,000 --> 00:28:51,000 do đó, có thể bạn đang nhận được một số lượng lớn, 395 00:28:51,000 --> 00:28:58,000 và nó thực sự chỉ là hỗn hợp của các ký tự dòng mới. 396 00:28:58,000 --> 00:29:00,000 [Sinh viên] Được rồi, làm thế nào để tôi làm cho chắc chắn 397 00:29:00,000 --> 00:29:03,000 Vâng, có một loạt các cách khác nhau. 398 00:29:03,000 --> 00:29:06,000 Bạn có thể đặt vào trong một bản in của một ký tự dòng mới, 399 00:29:06,000 --> 00:29:09,000 một tiếng vang của một ký tự dòng mới, 400 00:29:09,000 --> 00:29:12,000 in của dòng mới. 401 00:29:12,000 --> 00:29:16,000 [Sinh viên] Vì vậy, echo là điều tương tự như printf? 402 00:29:16,000 --> 00:29:21,000 >> Printf giống như C printf 403 00:29:21,000 --> 00:29:24,000 nơi bạn đang in một chuỗi định dạng. 404 00:29:24,000 --> 00:29:32,000 Bạn đang cung cấp các chuỗi định dạng và sau đó tất cả các biến giữ chỗ. 405 00:29:32,000 --> 00:29:39,000 Nó thường cái gì đó là không được sử dụng 406 00:29:39,000 --> 00:29:42,000 chúng ta hãy xem, như một từ chối trách nhiệm, 407 00:29:42,000 --> 00:29:48,000 Tôi không quen thuộc với PHP hơn tôi với các ngôn ngữ web khác, 408 00:29:48,000 --> 00:29:53,000 và khi tôi đã được lập trình trong PHP Tôi thường không sử dụng printf 409 00:29:53,000 --> 00:29:59,000 vì tôi tìm thấy nó nhanh hơn để sử dụng các khả năng nội suy chuỗi mà nó có, 410 00:29:59,000 --> 00:30:04,000 mà chúng ta sẽ đi vào và tôi sẽ cho bạn thấy chỉ trong một giây, 411 00:30:04,000 --> 00:30:08,000 ngược lại trong C chúng ta phải để làm điều này hacky để có được nó để in ra đúng cách. 412 00:30:08,000 --> 00:30:16,000 Bạn thực sự có thể đặt các biến trực tiếp thành chuỗi trong PHP. 413 00:30:16,000 --> 00:30:22,000 Printf là loại quá dài cho những gì tôi thường làm. Có, Ella. 414 00:30:22,000 --> 00:30:25,000 [Ella] Nói chung, nếu bạn nhận được lỗi phân tích cú pháp không có nghĩa là 415 00:30:25,000 --> 00:30:30,000 như C, nó không cho bạn biết chính xác nơi sai lầm và nó là gì, 416 00:30:30,000 --> 00:30:34,000 do đó, điều đó có nghĩa là xem xét thông qua toàn bộ mã của bạn và con số nó ra? 417 00:30:34,000 --> 00:30:39,000 Nó thường nhắm mục tiêu hơn hơn. 418 00:30:39,000 --> 00:30:48,000 Tôi nghĩ rằng trong trường hợp đó là một ít đi, 419 00:30:48,000 --> 00:30:51,000 vì vậy tôi nghĩ rằng trong trường hợp đó, chúng ta đang thiếu một dấu chấm phẩy. 420 00:30:51,000 --> 00:30:54,000 Nó đã cố gắng để làm cho tinh thần của tất cả mọi thứ, 421 00:30:54,000 --> 00:30:57,000 do đó, giống như những ngôn ngữ thông dịch, các thông dịch viên sẽ cố gắng 422 00:30:57,000 --> 00:31:01,000 và làm tốt nhất của mình để làm việc tất cả mọi thứ một cách thích hợp. 423 00:31:01,000 --> 00:31:04,000 >> Bạn sẽ thấy, ví dụ, trong JavaScript 424 00:31:04,000 --> 00:31:10,000 bạn sẽ thường dòng báo cáo kết thúc bằng một dấu chấm phẩy giống như họ làm trong PHP, 425 00:31:10,000 --> 00:31:13,000 giống như họ làm trong C. 426 00:31:13,000 --> 00:31:15,000 Trong JavaScript, một số người phiên dịch JavaScript 427 00:31:15,000 --> 00:31:20,000 trong rất nhiều các trình duyệt sẽ đặt dấu chấm phẩy cho bạn 428 00:31:20,000 --> 00:31:23,000 xảy ra nếu bạn bị mất chúng. 429 00:31:23,000 --> 00:31:29,000 Họ sẽ cố gắng và dành chỗ cho một số sloppiness trên một phần của bạn. 430 00:31:29,000 --> 00:31:34,000 Đó là nơi nó có thể được cố gắng và cố gắng và cố gắng để làm cho mọi công việc, 431 00:31:34,000 --> 00:31:36,000 và sau đó cuối cùng nó sẽ nhận được đến một điểm mà nó nói không sao, 432 00:31:36,000 --> 00:31:38,000 Tôi không thể làm cho mọi việc làm việc trên giải cứu, và đó là nơi mà bạn sẽ nhận được một số dòng 433 00:31:38,000 --> 00:31:44,000 có thể có vẻ một ít từ địa điểm chính xác. 434 00:31:44,000 --> 00:31:47,000 Được rồi, vậy chúng ta hãy đi qua này thực sự nhanh chóng. 435 00:31:47,000 --> 00:31:50,000 Chúng tôi rời đi với Ella, vì vậy hãy để Missy, 436 00:31:50,000 --> 00:31:54,000 và Missy, in chuỗi 1 cộng với số lượng không những gì 2 cung cấp cho bạn? 437 00:31:54,000 --> 00:31:56,000 [Missy] 3 >> 3. 438 00:31:56,000 --> 00:31:59,000 Điều đó làm cho tinh thần? ? 439 00:31:59,000 --> 00:32:02,000 Liệu nó cung cấp cho bạn một số? Liệu nó cung cấp cho bạn một chuỗi? 440 00:32:02,000 --> 00:32:05,000 [Missy] Một số >> Đó là một con số. 441 00:32:05,000 --> 00:32:09,000 Nhưng nó in nó, do đó, nó sẽ cung cấp cho bạn một số loại của chuỗi. 442 00:32:09,000 --> 00:32:12,000 >> Một điều chúng ta có thể làm để kiểm tra này ra 443 00:32:12,000 --> 00:32:21,000 là nếu chúng ta làm $ var = 1 + 2 444 00:32:21,000 --> 00:32:28,000 và sau đó chúng ta nói âm vang của GetType, 445 00:32:28,000 --> 00:32:33,000 vì vậy chúng tôi đang sử dụng một loại thứ ba in ấn ở đây. 446 00:32:33,000 --> 00:32:39,000 Bây giờ chúng ta có thể xem những gì xảy ra ở đây. 447 00:32:39,000 --> 00:32:42,000 Ở đây những gì chúng tôi đã có là chúng tôi đã nhận một số nguyên trong số này. 448 00:32:42,000 --> 00:32:45,000 Mặc dù chúng tôi đã được thêm chuỗi này đến một số, 449 00:32:45,000 --> 00:32:48,000 chúng tôi đã không nhận được một chuỗi của nó, giống như Missy nói. 450 00:32:48,000 --> 00:32:52,000 Chúng tôi đã nhận được một số nguyên. 451 00:32:52,000 --> 00:32:57,000 Được rồi, vậy chúng ta hãy xem, bên cạnh lên, Kevin. 452 00:32:57,000 --> 00:32:59,000 CS + 50 >> [Kevin] 50. 453 00:32:59,000 --> 00:33:02,000 [Nate H.] 50. Điều đó làm cho tinh thần? 454 00:33:02,000 --> 00:33:04,000 [Kevin] Yeah. 455 00:33:04,000 --> 00:33:06,000 [Nate H.] Tại sao? Tại sao nó có ý nghĩa đối với bạn? 456 00:33:06,000 --> 00:33:11,000 Kevin Bởi vì nó chỉ có các chuỗi, có giá trị bằng không số. 457 00:33:11,000 --> 00:33:16,000 Yeah, tuyệt vời. 458 00:33:16,000 --> 00:33:20,000 Loại tình huống không rõ ràng, nhưng đó là tốt để biết những gì sẽ xảy ra. 459 00:33:20,000 --> 00:33:25,000 Stella, điều gì sẽ xảy ra tiếp theo với số lượng 1 + chuỗi 2 không? 460 00:33:25,000 --> 00:33:27,000 [Stella] 3 >> 3 lần nữa. 461 00:33:27,000 --> 00:33:30,000 Và trong trường hợp này, chúng tôi nhận được một chuỗi hoặc một số? 462 00:33:30,000 --> 00:33:36,000 >> Hãy cung cấp cho một thử. 463 00:33:36,000 --> 00:33:43,000 Bất kỳ ai nhanh hơn tôi nhận được câu trả lời? Charlotte? 464 00:33:43,000 --> 00:33:46,000 Oh, tôi didn't-okay, chúng ta hãy xem, chúng tôi đang đi để làm cùng một loại điều 465 00:33:46,000 --> 00:33:49,000 nơi mà chúng tôi đã có một số cộng với một chuỗi, và chúng tôi sẽ để echo loại, 466 00:33:49,000 --> 00:33:51,000 xem những gì chúng tôi nhận được. 467 00:33:51,000 --> 00:33:55,000 Chúng tôi cũng nhận được một số nguyên. 468 00:33:55,000 --> 00:33:58,000 Nó không quan trọng đó là một trong các chuỗi, đó là một trong số. 469 00:33:58,000 --> 00:34:00,000 Chúng tôi vẫn đang đi để có được một số nguyên. 470 00:34:00,000 --> 00:34:04,000 Nó vẫn sẽ làm những gì chúng ta có thể mong đợi. 471 00:34:04,000 --> 00:34:09,000 Được rồi, vì vậy Sam, khoảng 90 + 9 chai bia trên tường? 472 00:34:09,000 --> 00:34:12,000 [Sam] 99 >> 99. 473 00:34:12,000 --> 00:34:15,000 Không có chai bia trên tường, mặc dù. 474 00:34:15,000 --> 00:34:17,000 Nó cho chúng ta nhiều hơn một chút thông tin về những gì đang xảy ra. 475 00:34:17,000 --> 00:34:21,000 [Sam] Nếu bạn đã viết 9 trong những lá thư 476 00:34:21,000 --> 00:34:23,000 sau đó bạn sẽ có 90, phải không? 477 00:34:23,000 --> 00:34:26,000 [Nate H.] Yeah. 478 00:34:26,000 --> 00:34:30,000 Câu hỏi là nếu chúng ta muốn viết 9 như N-I-N-E 479 00:34:30,000 --> 00:34:34,000 chúng ta đã có thể nhận 99 hoặc 90? 480 00:34:34,000 --> 00:34:38,000 Chúng tôi nhận được 90. 481 00:34:38,000 --> 00:34:42,000 Đó là nghĩa đen chỉ tìm kiếm cho các ký tự chữ số. 482 00:34:42,000 --> 00:34:46,000 Nó không đủ thông minh để nhận ra những từ số lượng và các công cụ đó. Vâng. 483 00:34:46,000 --> 00:34:48,000 >> [Sinh viên] Có một điều như typecasting trong PHP? 484 00:34:48,000 --> 00:34:54,000 Có đó, và nó chính xác theo cách bạn sẽ làm điều đó trong C. 485 00:34:54,000 --> 00:34:56,000 Những gì về 10/7, Charlotte? 486 00:34:56,000 --> 00:34:58,000 [Charlotte] 1,4285. 487 00:34:58,000 --> 00:35:01,000 [Nate H.] Yeah, vì vậy những gì có thể là đáng ngạc nhiên về điều này? 488 00:35:01,000 --> 00:35:04,000 Điều gì sẽ xảy ra nếu bạn đã làm điều này cùng một loại điều trong C, 489 00:35:04,000 --> 00:35:06,000 nếu bạn đã làm 10/7 trong C? 490 00:35:06,000 --> 00:35:08,000 [Charlotte] Nó sẽ chỉ cung cấp cho bạn tùy thuộc vào cách bạn typecasted Tôi đoán 491 00:35:08,000 --> 00:35:12,000 nó sẽ cung cấp cho bạn chỉ có một số giới hạn các chữ số sau dấu thập phân. 492 00:35:12,000 --> 00:35:16,000 Yeah, do đó, một số giới hạn các chữ số sau dấu thập phân. 493 00:35:16,000 --> 00:35:21,000 Những gì khác có được nó sẽ cung cấp cho bạn bất kỳ chữ số sau dấu chấm thập phân? 494 00:35:21,000 --> 00:35:28,000 Thường không, vì vậy một lần nữa, tùy thuộc vào cách bạn đang typecasting nó 495 00:35:28,000 --> 00:35:31,000 nó có thể hoặc không có thể chuyển đổi một số điểm nổi. 496 00:35:31,000 --> 00:35:35,000 Ở đây nó là loại tốt đẹp mà nó đã làm. 497 00:35:35,000 --> 00:35:40,000 Nếu chúng tôi cho các bạn trở lại khi chúng tôi bắt đầu làm điều này loại công cụ trong C 498 00:35:40,000 --> 00:35:44,000 nó có thể sẽ có ý nghĩa nhiều hơn một chút 499 00:35:44,000 --> 00:35:48,000 rằng nó không chỉ cần đi 1. 500 00:35:48,000 --> 00:35:51,000 Và cuối cùng, Jamie, những gì về 7 + đúng? 501 00:35:51,000 --> 00:35:53,000 [Jamie] 8. >> 8. 502 00:35:53,000 --> 00:35:56,000 Điều đó có nghĩa là gì? 503 00:35:56,000 --> 00:35:58,000 Tôi đoán nó chỉ cho đúng giá trị của 1. 504 00:35:58,000 --> 00:36:01,000 Yeah. Điều gì sẽ xảy ra nếu chúng ta thay đổi điều đó là sai? 505 00:36:01,000 --> 00:36:04,000 [Sinh viên] 7. 506 00:36:04,000 --> 00:36:09,000 Yeah, vì vậy hãy nhớ nơi mà chúng ta nói về các giá trị nhị phân, 507 00:36:09,000 --> 00:36:12,000 1 là, 0 là tắt? 508 00:36:12,000 --> 00:36:17,000 Bây giờ chúng ta có thực sự là 1, 0 là sai, 509 00:36:17,000 --> 00:36:21,000 và bạn có thể không nhìn thấy điều này trong các ví dụ C mà chúng tôi đã làm điều này học kỳ vừa qua, 510 00:36:21,000 --> 00:36:27,000 nhưng lịch sử kiểu bool trong C không phải là một loại thực, 511 00:36:27,000 --> 00:36:32,000 do đó, mọi người đã sử dụng 0 và 1 ở vị trí đúng và sai. 512 00:36:32,000 --> 00:36:35,000 Đây là một biểu hiện của điều đó. 513 00:36:35,000 --> 00:36:39,000 >> Rồi, vì vậy một trong những phần quan trọng về tất cả những điều này 514 00:36:39,000 --> 00:36:41,000 là chúng ta có những loại khác nhau. 515 00:36:41,000 --> 00:36:43,000 Họ có thể tương tác với nhau. 516 00:36:43,000 --> 00:36:49,000 Họ thường có thể tương tác với nhau theo nhiều cách là tốt đẹp, như chúng tôi đã nhìn thấy ở đây. 517 00:36:49,000 --> 00:36:53,000 Đó là tốt đẹp để có thể có chuỗi 1 và số 2, thêm chúng với nhau và có được 3. 518 00:36:53,000 --> 00:36:55,000 Điều đó làm cho ý nghĩa. 519 00:36:55,000 --> 00:36:59,000 Tuy nhiên, khi bạn đang viết các trang web, và đặc biệt là khi bạn đang xử lý 520 00:36:59,000 --> 00:37:04,000 dùng nhập vào, do đó, nói rằng bạn đã viết một mẫu web 521 00:37:04,000 --> 00:37:09,000 thu thập thông tin từ người dùng và sau đó đi để xử lý nó 522 00:37:09,000 --> 00:37:13,000 trở lại vào cuối, các máy chủ bên trong mã PHP của bạn 523 00:37:13,000 --> 00:37:18,000 nếu bạn đang mong rằng giá trị mà người dùng gõ vào và nộp 524 00:37:18,000 --> 00:37:23,000 để hình của bạn là một số nguyên hoặc là một số điểm nổi hoặc một cái gì đó như thế 525 00:37:23,000 --> 00:37:29,000 bạn cần phải bỏ nó một cách rõ ràng 526 00:37:29,000 --> 00:37:34,000 và sau đó làm một số kiểm tra kiểu. 527 00:37:34,000 --> 00:37:41,000 >> Bạn không muốn chỉ dựa vào kiểu hệ thống này tung hứng để làm cho mọi thứ làm việc, 528 00:37:41,000 --> 00:37:48,000 đặc biệt là vì lý do an ninh và chỉ cho sự vững mạnh của trang web của bạn. 529 00:37:48,000 --> 00:37:51,000 Chỉ cần một cái gì đó để ghi nhớ rằng bất cứ khi nào bạn đang xử lý dữ liệu mẫu, 530 00:37:51,000 --> 00:37:57,000 bất cứ điều gì mà đến trong bài viết hoặc superglobals get 531 00:37:57,000 --> 00:38:01,000 hãy chắc chắn rằng bạn luôn luôn xác nhận nó và chuyển đổi nó và định kiểu nó. 532 00:38:01,000 --> 00:38:04,000 Và cũng giống như chúng tôi đã nói chuyện về một thời điểm trước đó typecasting 533 00:38:04,000 --> 00:38:08,000 trong PHP là chính xác giống như trong C, nơi bạn có các dấu ngoặc đơn 534 00:38:08,000 --> 00:38:14,000 và sau đó các loại. 535 00:38:14,000 --> 00:38:16,000 Giữ cho rằng trong tâm trí. 536 00:38:16,000 --> 00:38:19,000 Một chức năng mà sẽ có ích khi bạn đang làm điều này 537 00:38:19,000 --> 00:38:22,000 là chúng tôi đã sử dụng và điều này là loại như là một dành 538 00:38:22,000 --> 00:38:27,000 chúng tôi đã sử dụng chức năng này GetType ngay tại đây 539 00:38:27,000 --> 00:38:30,000 để tìm ra các loại của một biến, 540 00:38:30,000 --> 00:38:37,000 và trong khi đây là tiện dụng để gỡ lỗi và để xem những gì của một biến kiểu 541 00:38:37,000 --> 00:38:42,000 bạn không muốn sử dụng này, ví dụ, trong một điều kiện 542 00:38:42,000 --> 00:38:57,000 bạn đang kiểm tra để xem nếu GetType của $ var = số nguyên làm điều gì đó. 543 00:38:57,000 --> 00:39:01,000 Điều này là xấu, xấu, xấu. 544 00:39:01,000 --> 00:39:09,000 Thay vào đó là các chức năng này được gọi là số nguyên, chuỗi, 545 00:39:09,000 --> 00:39:14,000 là mảng mà bạn muốn sử dụng để thay thế, do đó, trong trường hợp này 546 00:39:14,000 --> 00:39:18,000 những gì tôi muốn làm thay vào đó của anh chàng này ngay tại đây 547 00:39:18,000 --> 00:39:31,000 được sử dụng là số nguyên var. 548 00:39:31,000 --> 00:39:37,000 Và họ thường được gọi là * is_ trong ý nghĩa là bạn có thể thay thế * với số nguyên, 549 00:39:37,000 --> 00:39:43,000 chuỗi, vân vân, và chỉ để chắc chắn rằng thực sự nhanh chóng 550 00:39:43,000 --> 00:39:50,000 này là int php. 551 00:39:50,000 --> 00:39:59,000 Hình như bạn có thể làm, hoặc là int hoặc có cũng là số nguyên? 552 00:39:59,000 --> 00:40:06,000 Có, bí danh, bí danh số nguyên int. 553 00:40:06,000 --> 00:40:08,000 Cool. 554 00:40:14,000 --> 00:40:17,000 >> Làm thế nào chúng ta đang làm gì? 555 00:40:17,000 --> 00:40:20,000 Hãy chọn lên tốc độ một chút. 556 00:40:20,000 --> 00:40:24,000 Bây giờ chúng ta sẽ nói về mảng, do đó, bạn có thể thấy 557 00:40:24,000 --> 00:40:28,000 trong phần tiếp theo của spec, chúng tôi nói về việc làm thế nào các mảng trong PHP 558 00:40:28,000 --> 00:40:31,000 hơi khác so với họ đang có trong C. 559 00:40:31,000 --> 00:40:34,000 Trong sự thật, chúng loại của một hỗn hợp của 560 00:40:34,000 --> 00:40:36,000 các mảng mà bạn đã biết và yêu thích trong C 561 00:40:36,000 --> 00:40:40,000 nơi mà tất cả mọi thứ cùng loại 562 00:40:40,000 --> 00:40:43,000 được lưu trữ liên tục, liên tục kế nhau trong bộ nhớ, 563 00:40:43,000 --> 00:40:46,000 và bạn có các chỉ số này số. 564 00:40:46,000 --> 00:40:49,000 Bạn có chỉ số 0, 1 chỉ số, chỉ số 2, 565 00:40:49,000 --> 00:40:53,000 và bạn lưu trữ các giá trị vào những chỉ số. 566 00:40:53,000 --> 00:40:57,000 Bạn cũng có trong C, khi bạn đã viết Speller, rất nhiều bạn 567 00:40:57,000 --> 00:41:00,000 đã làm các cách tiếp cận bảng băm, và bạn đã thấy rằng chúng tôi đã có 568 00:41:00,000 --> 00:41:03,000 một loại khác nhau của lưu trữ nơi chúng tôi đã lập bản đồ 569 00:41:03,000 --> 00:41:07,000 một chìa khóa để một giá trị, do đó, khi bạn cố gắng để lưu trữ một cái gì đó trong bảng băm 570 00:41:07,000 --> 00:41:11,000 bạn đã có để xác định rằng bạn muốn để lưu trữ nó với một phím cụ thể, 571 00:41:11,000 --> 00:41:17,000 và khóa đó xác định vị trí của giá trị và nơi mà nó sẽ được lưu trữ. 572 00:41:17,000 --> 00:41:22,000 Bạn đã loại cả những khái niệm xảy ra cùng một lúc trong một mảng PHP, 573 00:41:22,000 --> 00:41:27,000 và kết quả là, chúng ta thường gọi là các mảng kết hợp 574 00:41:27,000 --> 00:41:33,000 nơi chúng tôi đang kết hợp một chìa khóa vào một giá trị. 575 00:41:33,000 --> 00:41:39,000 Trong phần tiếp theo này, chúng tôi nói về một mảng PHP đơn giản 576 00:41:39,000 --> 00:41:45,000 nơi mà chúng tôi có các phím a, b, c, 577 00:41:45,000 --> 00:41:53,000 tất cả các chuỗi, lập bản đồ 1 số nguyên, 2, và 3. 578 00:41:53,000 --> 00:41:57,000 Và bạn có thể có các phím của các loại khác nhau. 579 00:41:57,000 --> 00:42:00,000 >> Bạn có thể có một số phím có dây, một số phím là các số nguyên. 580 00:42:00,000 --> 00:42:03,000 Bạn có thể có giá trị của các loại khác nhau. 581 00:42:03,000 --> 00:42:06,000 Bạn có thể có một giá trị mà là một chuỗi, một giá trị đó là một số nguyên, 582 00:42:06,000 --> 00:42:11,000 một giá trị mà là một đối tượng hoặc một mảng khác, ví dụ, 583 00:42:11,000 --> 00:42:16,000 tất cả trong cùng một đối tượng mảng, đó là loại lạ. 584 00:42:16,000 --> 00:42:20,000 Bạn không cần phải có một mảng đó chỉ có một loại nguyên tố trong đó. 585 00:42:20,000 --> 00:42:26,000 Bạn có thể có nhiều điều khác nhau xảy ra trong đó. 586 00:42:26,000 --> 00:42:33,000 Một điều khác cần lưu ý là khi bạn nhìn thấy một cái gì đó như thế này trong mã của bạn, 587 00:42:33,000 --> 00:42:38,000 đó là hợp lệ PHP để khai báo một mảng chỉ như thế này, 0, 1, 2, 3, 4, 5, 588 00:42:38,000 --> 00:42:43,000 sẽ khai báo một khởi $ arr là mảng này. 589 00:42:43,000 --> 00:42:48,000 Nhưng những gì bạn đang thực sự nhận được dưới mui xe này là loại tiềm ẩn 590 00:42:48,000 --> 00:42:55,000 thế hệ của các phím, nơi chúng tôi đã có 0 đến 0, 1 1, 2 đến 2, 3 3. 591 00:42:55,000 --> 00:42:59,000 Và nó chỉ ra rằng ngay cả khi bạn có một mảng như chàng này lên đây 592 00:42:59,000 --> 00:43:03,000 nơi bạn có a, b và c là các phím 593 00:43:03,000 --> 00:43:09,000 và sau đó bạn bắt đầu bằng cách sử dụng phương pháp đẩy mảng bắt đầu sử dụng mảng này như một chồng, 594 00:43:09,000 --> 00:43:12,000 vì vậy bạn có thể thấy rằng điều này đối tượng mảng, mảng này thực sự là trở thành quá tải. 595 00:43:12,000 --> 00:43:15,000 Chúng tôi có thể sử dụng nó như một mảng. Chúng ta có thể sử dụng nó như một bảng băm. 596 00:43:15,000 --> 00:43:19,000 Chúng tôi có thể sử dụng nó như một chồng. 597 00:43:19,000 --> 00:43:22,000 Khi bạn bắt đầu đẩy vào mảng này 598 00:43:22,000 --> 00:43:30,000 điều đầu tiên bạn đẩy lên này sẽ có chỉ số 0 và sau đó chỉ số 1 và chỉ số 2. 599 00:43:30,000 --> 00:43:33,000 Bạn có thể nhận được loại thế hệ tiềm ẩn của phím 600 00:43:33,000 --> 00:43:38,000 trừ khi bạn chỉ định rõ ràng. 601 00:43:38,000 --> 00:43:43,000 Cách bạn chỉ định phím một cách rõ ràng, tất nhiên, bằng cách sử dụng ký hiệu khung này, 602 00:43:43,000 --> 00:43:48,000 tương tự như mảng ngoại trừ thay vì chỉ cho phép 603 00:43:48,000 --> 00:43:54,000 chỉ số số nguyên ở đây, bây giờ chúng tôi cho phép bất cứ điều gì. 604 00:43:54,000 --> 00:43:57,000 Nếu bạn muốn chìa khóa của bạn là một chuỗi, bạn muốn xác định nó như thế này. 605 00:43:57,000 --> 00:44:06,000 Nếu bạn muốn nó được một int, bạn chỉ định nó với các int bạn muốn sử dụng. 606 00:44:06,000 --> 00:44:13,000 >> Các câu hỏi về cho đến nay? 607 00:44:13,000 --> 00:44:18,000 Một trong những điều tốt đẹp về ý tưởng này 608 00:44:18,000 --> 00:44:26,000 là bạn chỉ có thể có một giá trị được lưu trữ với một phím đặc biệt. 609 00:44:26,000 --> 00:44:32,000 Nếu chúng ta quay của chúng tôi thiết bị cho phép tôi xóa một số các công cụ này. 610 00:44:32,000 --> 00:44:47,000 Và chúng ta hãy nói rằng tôi khởi tạo một mảng để là 0, 1, 2, được thực hiện. 611 00:44:47,000 --> 00:44:55,000 Nếu bây giờ tôi biết rằng, ví dụ, nếu tôi echo $ arr [0] 612 00:44:55,000 --> 00:44:59,000 Tôi sẽ nhận được giá trị 0 in ra, 613 00:44:59,000 --> 00:45:05,000 và kể từ khi có chỉ có thể là một giá trị được lưu trữ cho một phím đặc biệt 614 00:45:05,000 --> 00:45:11,000 nếu tôi lưu trữ một cái gì đó $ arr [0], nói một, 615 00:45:11,000 --> 00:45:16,000 sau đó tôi biết khi tôi echo $ arr [0] một lần nữa 616 00:45:16,000 --> 00:45:19,000 Tôi sẽ không nhận được 0 in ra như trước. 617 00:45:19,000 --> 00:45:24,000 Tôi chỉ để có được một. 618 00:45:24,000 --> 00:45:30,000 Vì vậy, đây là cơ bản nói rằng tôi không thể có $ arr [0] lưu trữ 2 giá trị khác nhau. 619 00:45:30,000 --> 00:45:34,000 Nó không thể lưu trữ cả 0 và một chuỗi, như thế này nghĩa là thay thế 620 00:45:34,000 --> 00:45:38,000 những gì đã được $ arr [0] trước đây. 621 00:45:38,000 --> 00:45:43,000 Lý do tôi mang lên này được chạy nó, xem những gì sẽ xảy ra. 622 00:45:43,000 --> 00:45:47,000 Xem ở đây mà tôi nhận được 0 in ra và sau đó xuống đây. 623 00:45:47,000 --> 00:45:51,000 Không có dòng mới đó vì tôi là lười biếng và không đặt đó. 624 00:45:51,000 --> 00:45:54,000 Mát về điều này, chúng ta có thể sử dụng điều này như là một cách 625 00:45:54,000 --> 00:46:00,000 để nắm bắt ý tưởng này của một bộ 626 00:46:00,000 --> 00:46:07,000 nơi mà chúng tôi không thể có nhiều phím trong một mảng. 627 00:46:07,000 --> 00:46:10,000 Chúng ta không thể có các phím giống hệt nhau trong một mảng. 628 00:46:10,000 --> 00:46:17,000 Tôi không thể có 0 trọng điểm và giá trị 1 và 0 chìa khóa và một giá trị 629 00:46:17,000 --> 00:46:21,000 hoặc phím 0 và giá trị đích thực. 630 00:46:21,000 --> 00:46:27,000 Các phím là tất cả chỉ có 1 chìa khóa trong mảng. 631 00:46:27,000 --> 00:46:32,000 Mặc dù bạn có thể có cùng một giá trị được lưu trữ 632 00:46:32,000 --> 00:46:35,000 nhiều lần trong mảng theo các phím khác nhau 633 00:46:35,000 --> 00:46:42,000 nó không thể có chìa khóa giống nhau nhiều lần trong mảng PHP của bạn. 634 00:46:42,000 --> 00:46:47,000 >> Nếu chúng ta nhìn vào vấn đề này tiếp theo, unique.php, 635 00:46:47,000 --> 00:46:51,000 nơi mà chúng tôi muốn mở một tập tin PHP 636 00:46:51,000 --> 00:46:54,000 có chứa một danh sách các chuỗi, một chuỗi trên mỗi dòng, 637 00:46:54,000 --> 00:47:01,000 và chúng tôi muốn để tìm tất cả các chuỗi duy nhất trong tập tin đó 638 00:47:01,000 --> 00:47:06,000 tất cả chúng ta phải làm là sử dụng một trong những mảng PHP 639 00:47:06,000 --> 00:47:12,000 và sử dụng các chuỗi trong tập tin như là chìa khóa để mảng này 640 00:47:12,000 --> 00:47:17,000 và tiếp tục cập nhật mảng của chúng tôi khi chúng tôi lưu trữ các khóa mới. 641 00:47:17,000 --> 00:47:22,000 Như chúng ta đọc từng dòng của file chúng ta có thể lưu trữ nó trong mảng, 642 00:47:22,000 --> 00:47:28,000 và cuối cùng chúng ta sẽ có như là chìa khóa của chúng tôi trong mảng của chúng tôi 643 00:47:28,000 --> 00:47:34,000 tất cả các chuỗi duy nhất trong tập tin. 644 00:47:34,000 --> 00:47:37,000 Điều đó làm cho tinh thần? 645 00:47:37,000 --> 00:47:41,000 Hãy xem cách làm việc này. 646 00:47:41,000 --> 00:47:49,000 Chúng tôi sẽ mở ra, theo spec, một tập tin mới gọi là unique.php. 647 00:47:49,000 --> 00:47:58,000 Mở ra. Rất tiếc, xin lỗi, mới tập tin. 648 00:47:58,000 --> 00:48:03,000 Chúng ta sẽ bắt đầu nó với các thẻ bắt đầu và kết thúc. 649 00:48:03,000 --> 00:48:17,000 Chúng tôi sẽ để lưu nó trong phần 9, và chúng tôi sẽ gọi nó unique.php. 650 00:48:17,000 --> 00:48:25,000 Được rồi, bây giờ phóng to. 651 00:48:25,000 --> 00:48:32,000 Ý tưởng ở đây là mở một tập tin, 652 00:48:32,000 --> 00:48:38,000 đọc trong dòng tập tin bằng dòng. 653 00:48:38,000 --> 00:48:46,000 Đối với mỗi dòng trong tập tin 654 00:48:46,000 --> 00:48:51,000 chúng tôi sẽ có một mảng mà chúng tôi có 655 00:48:51,000 --> 00:49:03,000  dòng như là chìa khóa của chúng tôi. 656 00:49:03,000 --> 00:49:09,000 Và sau đó khi chúng tôi nhận được để kết thúc ở đây 657 00:49:09,000 --> 00:49:17,000 $ Arr phím các dòng độc đáo 658 00:49:17,000 --> 00:49:25,000 từ tập tin vì chúng tôi biết rằng nếu tôi đặt dòng vào mảng này 659 00:49:25,000 --> 00:49:33,000 nhiều lần, nó sẽ chỉ giữ trọng các giá trị cũ, 660 00:49:33,000 --> 00:49:46,000 và chúng tôi thực sự có thể đặt dòng mảng như chính nó giống như rằng. 661 00:49:46,000 --> 00:49:48,000 >> Đây là loại kỳ lạ. 662 00:49:48,000 --> 00:49:52,000 Chúng tôi đang lưu trữ cùng một cặp giá trị quan trọng hơn và hơn và hơn một lần nữa, 663 00:49:52,000 --> 00:50:00,000 nhưng kể từ khi chúng tôi được đảm bảo rằng sẽ có chỉ có 1 phím dòng 664 00:50:00,000 --> 00:50:05,000 do đó, nếu chúng ta có một tập tin nói rằng một tập tin của tiếng ồn động vật và nó có woof, woof, 665 00:50:05,000 --> 00:50:11,000 meow meow, moo moo, và mỗi lần chúng ta đọc một tiếng ồn động vật ra 666 00:50:11,000 --> 00:50:15,000 như woof và chúng tôi lưu trữ nó trong mảng của chúng tôi chúng tôi nhận được woof, và sau đó lần thứ hai 667 00:50:15,000 --> 00:50:20,000 chúng tôi lưu trữ woof nó sẽ ghi đè lên lần đầu tiên mà chúng tôi lưu trữ nó. 668 00:50:20,000 --> 00:50:25,000 Cuối cùng, chúng tôi sẽ chỉ có một mục nhập trong mảng 669 00:50:25,000 --> 00:50:33,000 cho mỗi tiếng ồn động vật trong tập tin tiếng ồn của động vật của chúng tôi. 670 00:50:33,000 --> 00:50:41,000 Bạn có cảm thấy tự tin rằng bạn có thể giải quyết việc mở một tập tin trong PHP? 671 00:50:41,000 --> 00:50:45,000 Một cách để làm điều đó cho đi qua theo cách này một cách nhanh chóng một để làm điều đó 672 00:50:45,000 --> 00:50:50,000 với fopen, như chúng ta đã thấy trước đó. 673 00:50:50,000 --> 00:50:55,000 Bạn có thể fopen some_file.txt. 674 00:50:55,000 --> 00:50:59,000 Bạn có thể mở nó trong chế độ đọc, giống như trong C. 675 00:50:59,000 --> 00:51:02,000 Đó là một cách hoàn toàn tốt để làm điều đó. 676 00:51:02,000 --> 00:51:05,000 Bạn cũng có sau đó để đọc trong dòng tập tin của dòng 677 00:51:05,000 --> 00:51:12,000 có các chức năng tương tự, nhiều người trong số họ, mà bạn đã làm trong C. 678 00:51:12,000 --> 00:51:14,000 Bạn có fgets. 679 00:51:14,000 --> 00:51:17,000 Bạn có feof, mặc dù chúng ta không thích bằng cách sử dụng 680 00:51:17,000 --> 00:51:22,000 bởi vì, hãy nhớ rằng, đó không phải là rất tốt trong C. 681 00:51:22,000 --> 00:51:25,000 Bạn có thể làm điều đó cùng một cách, 682 00:51:25,000 --> 00:51:34,000 nhưng đây là một điều thực sự mát mẻ. 683 00:51:34,000 --> 00:51:41,000 Xin lỗi, tôi không muốn làm $ file, nhưng có một chức năng được gọi là tập tin trong PHP, 684 00:51:41,000 --> 00:51:47,000 và chức năng này ngay tại đây là mát mẻ bởi vì nó đọc toàn bộ nội dung 685 00:51:47,000 --> 00:51:52,000 của các tập tin mà bạn chỉ định, vì vậy some_file.txt, 686 00:51:52,000 --> 00:51:56,000 đọc toàn bộ nội dung của tập tin này vào một mảng 687 00:51:56,000 --> 00:52:03,000 và sau đó cho phép bạn lặp qua nó, mà là khá tiện lợi. 688 00:52:03,000 --> 00:52:07,000 >> Nếu chúng ta đi, ví dụ, để trình duyệt web của chúng tôi 689 00:52:07,000 --> 00:52:14,000 và chúng tôi nhìn vào Google cho PHP tập tin 690 00:52:14,000 --> 00:52:23,000 bạn có thể thấy ở đây là hướng dẫn của chúng tôi nói rằng tập tin mà đọc toàn bộ tập tin vào một mảng, 691 00:52:23,000 --> 00:52:27,000 và chúng ta có thể đào tạo Quản lý để trả lại nội dung của một tập tin như là một chuỗi, 692 00:52:27,000 --> 00:52:30,000 nhưng thường chỉ nhận được nó như một mảng thực sự là tốt đẹp bởi vì những gì nó làm 693 00:52:30,000 --> 00:52:33,000 là nó phá vỡ nó lên để mỗi phần tử 694 00:52:33,000 --> 00:52:37,000 trong mảng là một dòng của tập tin, 695 00:52:37,000 --> 00:52:41,000 do đó, nếu chúng ta nhìn vào tập tin 0, đó là dòng đầu tiên của tập tin. 696 00:52:41,000 --> 00:52:46,000 File 1, dòng thứ hai, tập 2, dòng thứ ba, và vv và vv. 697 00:52:46,000 --> 00:52:50,000 Nó sẽ không được tốt đẹp nếu đó là tất cả những gì bạn phải làm trong C? 698 00:52:50,000 --> 00:52:53,000 Khá tiện lợi. 699 00:52:53,000 --> 00:52:59,000 David cho thấy điều này trong bài giảng, và các thành ngữ, ông đã cho thấy là 700 00:52:59,000 --> 00:53:03,000 ngoài tiêu chuẩn của chúng tôi cho vòng lặp trong PHP chúng tôi đã có 701 00:53:03,000 --> 00:53:09,000 for ($ i = 0; i <10; i + +), 702 00:53:09,000 --> 00:53:16,000 và bạn có thể làm điều này trong PHP quá, cùng một điều 703 00:53:16,000 --> 00:53:27,000 chúng tôi cũng có xây dựng này mát gọi là foreach. 704 00:53:27,000 --> 00:53:32,000 Foreach là thực sự tiện dụng khi iterating trên mảng hoặc cấu trúc dữ liệu 705 00:53:32,000 --> 00:53:36,000 vì nó cho phép bạn để lôi ra từng phần tử của mảng 706 00:53:36,000 --> 00:53:42,000 mà không cần phải tự làm việc lập chỉ mục cho mình, 707 00:53:42,000 --> 00:53:46,000 mà không cần phải tự tạo ra một biến chỉ số, tăng nó, 708 00:53:46,000 --> 00:53:51,000 kéo ra khỏi các giá trị trong mảng tại điểm đó, bởi vì đó là một điều rất phổ biến để làm. 709 00:53:51,000 --> 00:53:54,000 >> Bạn có thể đã làm điều đó tấn lần khi bạn đang làm C thứ 710 00:53:54,000 --> 00:54:00,000 trong học kỳ, như vậy với foreach 711 00:54:00,000 --> 00:54:06,000 chúng ta có thể lặp qua mảng này tập tin, 712 00:54:06,000 --> 00:54:12,000 và cú pháp mà chúng tôi muốn lặp trên mảng này 713 00:54:12,000 --> 00:54:18,000 và xác định rằng biến chúng ta sẽ sử dụng để lưu trữ 714 00:54:18,000 --> 00:54:27,000 phần tử của mảng này tại địa phương, địa phương trong phạm vi của vòng lặp foreach, 715 00:54:27,000 --> 00:54:32,000 là chúng ta sẽ gọi nó dòng. 716 00:54:32,000 --> 00:54:38,000 Nếu đó là một tập tin chỉ của các từ và một từ trong một dòng 717 00:54:38,000 --> 00:54:43,000 chúng ta có thể gọi nó từ là tốt, thực sự chỉ là bạn cung cấp cho một tên, 718 00:54:43,000 --> 00:54:49,000 bất cứ điều gì bạn muốn gọi nó, 719 00:54:49,000 --> 00:55:02,000 và sau đó bên trong vòng lặp, bạn có thể làm bất cứ điều gì bạn muốn với biến dòng này. 720 00:55:02,000 --> 00:55:08,000 Nếu đó là không đủ để có được giá trị của mảng và bạn cũng muốn nhận được 721 00:55:08,000 --> 00:55:17,000 chỉ số cùng với nó, bạn có thể chỉ định một tên cho các chỉ mục 722 00:55:17,000 --> 00:55:22,000 cũng như các giá trị, và bây giờ bạn có quyền truy cập vào 2 biến. 723 00:55:22,000 --> 00:55:26,000 Bạn có $ i và dòng 724 00:55:26,000 --> 00:55:30,000 trong đó $ i là chỉ số trong mảng, 725 00:55:30,000 --> 00:55:38,000 và dòng là dòng mà bạn lấy từ tập tin. 726 00:55:38,000 --> 00:55:49,000 Ví dụ, nếu chúng ta muốn in ra tiếng vang 0 dòng của tập tin như thế này, 727 00:55:49,000 --> 00:55:57,000 chúng ta có thể làm điều đó chỉ như thế này, "Line $ i của tập tin là $ line" 728 00:55:57,000 --> 00:56:02,000 và đây là một cái gì đó chúng tôi cũng đã không nhìn thấy hoặc 729 00:56:02,000 --> 00:56:13,000 nơi mà tôi đã hoàn toàn bỏ qua này% s% d kinh doanh 730 00:56:13,000 --> 00:56:16,000 rằng chúng tôi đã phải đối phó với C, và thay vào đó tôi đã đi thẳng đến 731 00:56:16,000 --> 00:56:19,000 văn bản biến trong dòng trong chuỗi của tôi. 732 00:56:19,000 --> 00:56:23,000 >> Điều này được gọi là suy biến, chuỗi suy 733 00:56:23,000 --> 00:56:26,000 nơi bạn đang nhồi các biến ngay trong, và thông dịch viên PHP 734 00:56:26,000 --> 00:56:31,000 là đủ thông minh khi nó đọc thông qua một chuỗi bắt đầu với dấu ngoặc kép 735 00:56:31,000 --> 00:56:34,000 không báo giá duy nhất, với chuỗi đơn trích dẫn, bạn không thể làm điều này 736 00:56:34,000 --> 00:56:38,000 nhưng với chuỗi đôi trích dẫn như là nó đọc qua nó cho các biến. 737 00:56:38,000 --> 00:56:42,000 Nó săn bắn chúng xuống, và nếu nó thấy biến, nó sẽ lấy giá trị của biến 738 00:56:42,000 --> 00:56:47,000 và các công cụ nó vào chuỗi nếu nó có thể chuyển đổi nó thành một chuỗi đại diện, 739 00:56:47,000 --> 00:56:51,000 mà là khá tiện lợi. 740 00:56:51,000 --> 00:56:56,000 Để bây giờ, chúng ta hãy nhận xét ra phần còn lại của tất cả mọi thứ, 741 00:56:56,000 --> 00:57:00,000 tiết kiệm này, và những gì chúng ta có thể làm bây giờ là chúng ta có thể mở một tập tin 742 00:57:00,000 --> 00:57:06,000 mà chúng ta có thể gọi some_file.txt chúng ta hãy tạo ra một file mới 743 00:57:06,000 --> 00:57:15,000 và chúng ta có thể đặt trong một loạt các công cụ vô nghĩa ở đây chỉ để kiểm tra tất cả mọi thứ ra, 744 00:57:15,000 --> 00:57:25,000 lưu nó, gọi nó là some_file.txt, như tôi đang làm đây ở đầu trang, 745 00:57:25,000 --> 00:57:33,000 và bây giờ nếu tôi thu nhỏ chỉ để chắc chắn tất cả mọi thứ trong cùng một thư mục 746 00:57:33,000 --> 00:57:36,000 có vẻ như tôi có unique.php và some_file.txt trong cùng thư mục. 747 00:57:36,000 --> 00:57:42,000 Nếu tôi chạy php unique.php 748 00:57:42,000 --> 00:57:51,000 xem nó như thế nào in ra mỗi dòng trong tập tin của tôi và những gì dòng là? 749 00:57:51,000 --> 00:57:56,000 >> Đó là khá mạnh mẽ, phải không? 750 00:57:56,000 --> 00:58:03,000 Hãy nhìn xem, nó mất 3 dòng mã để mở một tập tin. 751 00:58:03,000 --> 00:58:08,000 Vâng, 4 dòng mã. Tôi không thể đếm ngày hôm nay, rõ ràng. 752 00:58:08,000 --> 00:58:13,000 Nhưng thực sự chỉ cần 2 dòng thú vị của mã, bởi vì 2 khác là các dấu ngoặc nhọn, 753 00:58:13,000 --> 00:58:17,000 nhưng trong nhiều mã này, chúng tôi đã có thể mở một tập tin, iterate qua nó, 754 00:58:17,000 --> 00:58:20,000 kéo ra số dòng và dòng 755 00:58:20,000 --> 00:58:24,000 và in ra. 756 00:58:24,000 --> 00:58:26,000 Mát công cụ. Charlotte. 757 00:58:26,000 --> 00:58:28,000 Charlotte] Tôi có một câu hỏi về cú pháp. 758 00:58:28,000 --> 00:58:33,000 Vì vậy, foreach các chương trình khuyến mại với tất cả các dòng duy nhất của các tập tin mà bạn mở, 759 00:58:33,000 --> 00:58:37,000 và sau đó khi bạn muốn làm việc với tất cả các dòng duy nhất bạn chỉ cần làm điều đó như 760 00:58:37,000 --> 00:58:39,000 và sau đó kết hợp các giá trị. 761 00:58:39,000 --> 00:58:41,000 [Nate H.] bạn có thể làm ngay tại đây, câu hỏi được 762 00:58:41,000 --> 00:58:46,000 foreach có để làm với mảng, do đó, cú pháp foreach 763 00:58:46,000 --> 00:58:51,000 thực sự là foreach, và thông báo rằng không có không gian 764 00:58:51,000 --> 00:58:53,000 hoặc bất cứ điều gì giữa và mỗi. 765 00:58:53,000 --> 00:58:56,000 Họ có để đi ngay bên cạnh nhau, 766 00:58:56,000 --> 00:59:00,000 và sau đó nó có trong một mảng, 767 00:59:00,000 --> 00:59:05,000 và sau đó bạn có từ khoá này gọi là có được ở đó, 768 00:59:05,000 --> 00:59:11,000 và sau đó sau khi bạn có thể đặt một tên biến, 769 00:59:11,000 --> 00:59:14,000 trong trường hợp bạn đang đi để được kéo ra các giá trị của mảng, 770 00:59:14,000 --> 00:59:20,000 không phải các chỉ số, hoặc nếu bạn làm điều đó như chúng tôi đã ghi ở phía dưới 771 00:59:20,000 --> 00:59:24,000 bạn có được các phím và các giá trị. 772 00:59:24,000 --> 00:59:33,000 Bạn có yếu tố foreach của mảng hoặc cặp của mảng như chìa khóa giá trị gia 773 00:59:33,000 --> 00:59:38,000 hoặc là chỉ là giá trị. 774 00:59:38,000 --> 00:59:40,000 Tùy thuộc vào những gì bạn cần, nếu bạn không cần các phím, 775 00:59:40,000 --> 00:59:42,000 sau đó bạn có thể đi với giá trị. 776 00:59:42,000 --> 00:59:45,000 Nếu bạn muốn các phím, bạn có thể đi với họ quá. 777 00:59:45,000 --> 00:59:48,000 >> Charlotte] Tôi cũng nhận ra rằng chúng ta không bao giờ tuyên bố i hoặc dòng. 778 00:59:48,000 --> 00:59:51,000 Làm thế nào để biết những gì họ đang có? 779 00:59:51,000 --> 00:59:53,000 [Nate H.] Những gì bạn có nghĩa là bằng cách tuyên bố? 780 00:59:53,000 --> 00:59:57,000 [Charlotte Chúng tôi không bao giờ nói với họ những gì tôi hoặc dòng phương tiện. 781 00:59:57,000 --> 01:00:01,000 [Nate H.] Chúng tôi không bao giờ nói với máy tính những gì tôi hoặc dòng có nghĩa là trong điều khoản của 782 01:00:01,000 --> 01:00:05,000 Charlotte] Đó là họ đang lập chỉ mục hoặc rằng they're 783 01:00:05,000 --> 01:00:09,000 [Nate H.] Chúng tôi không bao giờ nói với nó rằng điều này được coi là chỉ số hoặc phím và giá trị, 784 01:00:09,000 --> 01:00:13,000 và đó là bởi vì đó là thông dịch viên PHP. 785 01:00:13,000 --> 01:00:17,000 Này phục vụ như khai báo và nói không sao, quan trọng là có được 786 01:00:17,000 --> 01:00:20,000 một biến gọi là i được lưu trữ trong một biến tên gọi là i. 787 01:00:20,000 --> 01:00:24,000 Giá trị sẽ được lưu trữ trong một biến gọi là dòng, 788 01:00:24,000 --> 01:00:28,000 do đó, điều này phục vụ như là tờ khai của các biến này 789 01:00:28,000 --> 01:00:35,000 và nói $ i là một chìa khóa, và $ line là một giá trị. 790 01:00:35,000 --> 01:00:37,000 Yeah, Ella. 791 01:00:37,000 --> 01:00:41,000 [Ella] Nếu các phím không được thực hiện số lượng 792 01:00:41,000 --> 01:00:44,000 làm thế nào để quyết định thứ tự nó sẽ in tất cả mọi thứ? 793 01:00:44,000 --> 01:00:47,000 Là nó chỉ thích những thứ tự khi nhập vào? 794 01:00:47,000 --> 01:00:51,000 [Nate H.] Hãy cho nó một thử. 795 01:00:51,000 --> 01:00:57,000 Hãy tạo ra một biến gọi là arr, 796 01:00:57,000 --> 01:01:06,000 và chúng ta có thể làm một đến 7. 797 01:01:06,000 --> 01:01:19,000 Hãy nói rằng 0 đi vào mảng khác với 1, 2, hoặc táo. 798 01:01:19,000 --> 01:01:30,000 Hãy nói rằng 7 đi đến 1, b đi đến 2, 799 01:01:30,000 --> 01:01:39,000 và 3 đến 4. 800 01:01:39,000 --> 01:01:44,000 Đây là loại của một ví dụ tìm kiếm điên bởi vì chúng tôi đang trộn 801 01:01:44,000 --> 01:01:47,000 chuỗi và số nguyên tất cả các nơi. 802 01:01:47,000 --> 01:01:50,000 Có không có thứ tự thực sự cho mảng này. 803 01:01:50,000 --> 01:01:55,000 Ý tôi là, chúng tôi có thể đặt tất cả mọi thứ trong thứ tự chữ cái bởi các phím. 804 01:01:55,000 --> 01:01:57,000 Chúng tôi có thể đặt tất cả mọi thứ theo thứ tự bảng chữ cái theo giá trị. 805 01:01:57,000 --> 01:02:00,000 >> Chúng tôi có thể thử và đưa vào tài khoản mà một số là chuỗi, một số là số nguyên, 806 01:02:00,000 --> 01:02:03,000 và chúng tôi có thể thử và chuyển đổi tất cả chúng cùng loại và xem những gì sẽ xảy ra, 807 01:02:03,000 --> 01:02:09,000 hoặc chúng ta có thể xem xét về giá trị, trong đó chúng tôi đã nhập chúng 808 01:02:09,000 --> 01:02:14,000 nơi mà chúng tôi đặt anh chàng này trong lần đầu tiên, anh chàng này trong lần thứ hai, anh chàng này thứ ba, 809 01:02:14,000 --> 01:02:19,000 anh chàng này trong cetera thứ tư et,. 810 01:02:19,000 --> 01:02:23,000 Hãy xem những gì sẽ xảy ra khi chúng ta chạy mã này. 811 01:02:23,000 --> 01:02:29,000 Nếu chúng ta di chuyển xuống và làm cùng một loại điều, 812 01:02:29,000 --> 01:02:31,000 và ở đây nó không in ra các dòng mới. 813 01:02:31,000 --> 01:02:35,000 Khi đọc những điều trên của tập tin, nó đã được bao gồm cả những dòng mới trong các giá trị, 814 01:02:35,000 --> 01:02:38,000 được lý do tại sao nó in ra độc đáo, trong khi ở đây không, 815 01:02:38,000 --> 01:02:40,000 vì vậy đó là lý do tại sao tất cả mọi thứ được smushed với nhau. 816 01:02:40,000 --> 01:02:44,000 Hãy thêm vào dòng mới chỉ để làm cho những điều tốt đẹp. 817 01:02:44,000 --> 01:02:51,000 Hãy chạy lại nó, và vì vậy ở đây 818 01:02:51,000 --> 01:02:54,000 nhìn vào những gì đã xảy ra. 819 01:02:54,000 --> 01:03:00,000 Nó được in ra tất cả mọi thứ theo thứ tự mà chúng tôi đưa nó vào mảng. 820 01:03:00,000 --> 01:03:10,000 Nó giữ gìn trật tự trong ý nghĩa đó. 821 01:03:10,000 --> 01:03:15,000 >> Trở lại với vấn đề này của uniques 822 01:03:15,000 --> 01:03:20,000 nơi mà chúng tôi muốn để có thể để lặp lại trên một tập tin, 823 01:03:20,000 --> 01:03:24,000 và chúng tôi sẽ cung cấp cho nó some_file.txt, 824 01:03:24,000 --> 01:03:27,000 và chúng tôi sẽ để lặp lại nó như thế này. 825 01:03:27,000 --> 01:03:31,000 Chúng tôi đã nói rằng chúng ta muốn sử dụng một mảng để đảm bảo rằng chúng tôi có tất cả các 826 01:03:31,000 --> 01:03:36,000 dòng chỉ có ra khỏi đó, và chúng tôi có thể làm điều đó thực sự dễ dàng 827 01:03:36,000 --> 01:03:49,000 bằng cách chỉ lưu trữ trong một mảng mà chúng tôi tất nhiên tuyên bố bên ngoài phạm vi của một vòng lặp, 828 01:03:49,000 --> 01:03:55,000 và chúng tôi đã nói rằng nếu chúng ta sử dụng các dòng trong tập tin như là các phím trong mảng của chúng tôi 829 01:03:55,000 --> 01:03:59,000 nếu chúng ta bước vào một dòng trùng lặp, chúng tôi muốn được trọng các giá trị trước đó. 830 01:03:59,000 --> 01:04:08,000 Nó không bao giờ có thể có 2 phím là giống hệt nhau trong cùng một mảng. 831 01:04:08,000 --> 01:04:13,000 Chúng ta có thể làm điều đó. 832 01:04:13,000 --> 01:04:17,000 Chúng tôi sẽ nhận được loại bỏ echo tuyên bố này ngay tại đây. 833 01:04:17,000 --> 01:04:24,000 Ở đây chúng tôi đang lưu trữ các dòng trong tập tin trong mảng của chúng tôi 834 01:04:24,000 --> 01:04:28,000 sử dụng chính nó như là chìa khóa. 835 01:04:28,000 --> 01:04:32,000 Không có gì để nó, và nó quay ra rằng chúng tôi thậm chí không cần chìa khóa này. 836 01:04:32,000 --> 01:04:38,000 Chúng ta không cần mà tôi biến. 837 01:04:38,000 --> 01:04:43,000 Tại thời điểm này nếu chúng ta làm một vòng lặp foreach 838 01:04:43,000 --> 01:04:48,000 và chúng tôi đã để lặp trên mỗi arr 839 01:04:48,000 --> 01:04:56,000 và dòng bây giờ nếu chúng tôi echo-oops, xin lỗi. 840 01:04:56,000 --> 01:05:00,000 Chúng tôi không thể sử dụng dấu phẩy. Chúng tôi phải sử dụng điều này như là từ khóa. 841 01:05:00,000 --> 01:05:05,000 Bây giờ nếu chúng ta lặp dòng chúng tôi sẽ nhận được tất cả các từ duy nhất trong tập tin. 842 01:05:05,000 --> 01:05:10,000 Nếu chúng ta đi lên để some_file.txt, 843 01:05:10,000 --> 01:05:19,000 và chúng ta hãy nói rằng chúng tôi làm táo, chuối, táo, táo, chuối, 844 01:05:19,000 --> 01:05:22,000 nếu chúng ta in ra tất cả các từ duy nhất trong tập tin này, chúng ta chỉ nên nhận được 845 01:05:22,000 --> 01:05:30,000 táo và chuối để in ra. 846 01:05:30,000 --> 01:05:36,000 Nếu chúng ta tiết kiệm này, bây giờ ở đây chúng tôi sẽ phóng trở lại, 847 01:05:36,000 --> 01:05:44,000 php unique.php, và ta-da. 848 01:05:44,000 --> 01:05:51,000 Chúng tôi đã thành công uniqued các tập tin. 849 01:05:51,000 --> 01:05:55,000 >> Phần cuối cùng của vấn đề này là yêu cầu bạn để sắp xếp mảng này trước khi bạn in nó ra 850 01:05:55,000 --> 01:05:58,000 bởi vì trong ví dụ này đơn giản mà chúng tôi đã chỉ cần thực hiện 851 01:05:58,000 --> 01:06:04,000 chúng tôi đã may mắn theo ý nghĩa là tập tin 852 01:06:04,000 --> 01:06:06,000 chúng tôi đã làm điều này ví dụ contrived với táo và chuối. 853 01:06:06,000 --> 01:06:08,000 Nó đã được sắp xếp. 854 01:06:08,000 --> 01:06:19,000 Tuy nhiên, bằng cách sử dụng chức năng sắp xếp đơn giản, bạn có thể sắp xếp một mảng, mà là khá tiện lợi. 855 01:06:19,000 --> 01:06:24,000 Điều cuối cùng tôi muốn nói chuyện với các bạn về thực sự nhanh chóng 856 01:06:24,000 --> 01:06:31,000 là loại này của PHP là tất cả tốt và tốt, và đó là siêu tiện dụng 857 01:06:31,000 --> 01:06:43,000 biết làm thế nào để làm nếu bạn cần làm ít, mọi thứ nhanh chóng lập trình. 858 01:06:43,000 --> 01:06:48,000 Ví dụ, nếu tôi cần phải viết một chương trình đó, nói, 859 01:06:48,000 --> 01:06:53,000 đặt tất cả mọi người thành các phần tôi sẽ không để đi và viết nó trong C. 860 01:06:53,000 --> 01:06:55,000 Nó sẽ để được lâu dài. 861 01:06:55,000 --> 01:06:57,000 Nó sẽ là loại đau đớn, đặc biệt là nếu có tập tin liên quan đến, 862 01:06:57,000 --> 01:07:00,000 cũng giống như các bạn đã thấy. 863 01:07:00,000 --> 01:07:05,000 Thật là tốt đẹp chỉ với mã số này nhiều ngay tại đây 864 01:07:05,000 --> 01:07:08,000 chúng tôi có thể trích xuất thông qua một tập tin, kéo ra khỏi tất cả các giá trị duy nhất 865 01:07:08,000 --> 01:07:11,000 và in chúng trở ra. 866 01:07:11,000 --> 01:07:16,000 >> Tuy nhiên, đối với bài tập của bạn, cho các dự án của bạn, 867 01:07:16,000 --> 01:07:20,000 nếu bạn đang xây dựng trang web với PHP sức mạnh là 868 01:07:20,000 --> 01:07:25,000 chúng tôi đang chạy các file PHP của chúng tôi thông qua thông dịch viên này, 869 01:07:25,000 --> 01:07:29,000 và các thông dịch viên được xử lý tất cả mọi thứ trong các thẻ PHP, 870 01:07:29,000 --> 01:07:34,000 để lại tất cả mọi thứ khác và ảnh hưởng phun ra kết quả. 871 01:07:34,000 --> 01:07:40,000 Chúng tôi có thể làm điều này để xây dựng HTML lập trình. 872 01:07:40,000 --> 01:07:46,000 Bây giờ, nếu chúng ta trở lại spec, vấn đề cuối cùng trong spec 873 01:07:46,000 --> 01:07:56,000 nói về ý tưởng này của nồng độ 874 01:07:56,000 --> 01:08:01,000 và tạo ra một trình đơn thả xuống, 875 01:08:01,000 --> 01:08:06,000 mà bạn có thể hoặc không muốn làm, tùy thuộc vào những gì dự án cuối cùng của bạn là làm, 876 01:08:06,000 --> 01:08:13,000 cho phép người dùng lựa chọn từ một danh sách của tất cả các nồng độ có thể 877 01:08:13,000 --> 01:08:15,000 một tập trung. 878 01:08:15,000 --> 01:08:21,000 Bây giờ, đây là loại đau đớn để loại này ra 879 01:08:21,000 --> 01:08:25,000 và phải làm tất cả những điều này bằng tay, đặc biệt là khi bạn đang có để đảm bảo 880 01:08:25,000 --> 01:08:28,000 rằng bạn có tất cả các dấu ngoặc nhọn ở đúng nơi và tất cả các dấu ngoặc kép ở đúng nơi, 881 01:08:28,000 --> 01:08:34,000 với PHP bạn có thể làm điều này lập trình, và bạn có thể làm điều này thực sự nhanh chóng. 882 01:08:34,000 --> 01:08:36,000 >> Chúng ta hãy xem làm thế nào để làm điều này. 883 01:08:36,000 --> 01:08:42,000 Chúng tôi sẽ mở ra một tập tin mới. 884 01:08:42,000 --> 01:08:46,000 Chúng ta sẽ đặt trong thẻ PHP của chúng tôi. 885 01:08:46,000 --> 01:08:53,000 Chúng tôi sẽ để gọi nó concentrations.php, 886 01:08:53,000 --> 01:08:58,000 và bây giờ khi bạn đang làm điều này, loại một điều tốt để suy nghĩ về 887 01:08:58,000 --> 01:09:02,000 khi bạn đang cố gắng để trộn và kết hợp PHP và HTML của bạn 888 01:09:02,000 --> 01:09:08,000 là tìm hiểu, được rồi, phần mà tôi muốn lập trình tạo ra là gì? 889 01:09:08,000 --> 01:09:11,000 Phần mà tôi có thể lập trình tạo ra là gì? 890 01:09:11,000 --> 01:09:17,000 Đó là sự thật mà bạn có thể làm tất cả các HTML của bạn 891 01:09:17,000 --> 01:09:19,000 bên trong các khối PHP. 892 01:09:19,000 --> 01:09:24,000 Bạn có thể echo tất cả của HTML như dây đàn. 893 01:09:24,000 --> 01:09:30,000 Ví dụ, nếu tôi muốn bắt đầu làm các thẻ lựa chọn bên trong của PHP 894 01:09:30,000 --> 01:09:46,000 Tôi có thể nói tiếng vang, nói chọn name = nồng độ, 895 01:09:46,000 --> 01:09:49,000 và sau đó xuống dưới đây, tôi có thể có một thẻ echo 896 01:09:49,000 --> 01:09:57,000 hoặc một tiếng vang khác được gọi là đóng chọn. 897 01:09:57,000 --> 01:10:00,000 Đây là một cách để làm điều đó bởi vì những gì điều này là nghĩa đen sẽ làm 898 01:10:00,000 --> 01:10:09,000 là in ra chuỗi này khi nó chạy thông qua các thông dịch viên PHP, 899 01:10:09,000 --> 01:10:12,000 do đó, kết quả sẽ được HTML. 900 01:10:12,000 --> 01:10:18,000 Nếu tôi lưu tập tin này vì nó là ngay bây giờ 901 01:10:18,000 --> 01:10:24,000 và tôi chạy concentrations.php php 902 01:10:24,000 --> 01:10:26,000 nhìn vào những gì tôi có. 903 01:10:26,000 --> 01:10:30,000 Tôi có thẻ này mở gần chọn. 904 01:10:30,000 --> 01:10:36,000 >> Nếu tôi được làm điều này và tôi được là để lưu kết quả vào một tập tin, 905 01:10:36,000 --> 01:10:45,000 nói,-wait concentrations.html, nó trông giống như l đã đi qua phía bên kia 906 01:10:45,000 --> 01:11:02,000 bây giờ nếu tôi mở ra concentrations.html bạn thấy tôi có một tập tin HTML hợp lệ. 907 01:11:02,000 --> 01:11:05,000 Là loại lạ? 908 01:11:05,000 --> 01:11:09,000 Chúng tôi đang sử dụng PHP để tạo ra HTML, tạo ra HTML hợp lệ. 909 01:11:09,000 --> 01:11:13,000 Cách chúng ta đang làm là chúng tôi chỉ có in PHP 910 01:11:13,000 --> 01:11:16,000 HTML mà chúng ta muốn nó in. 911 01:11:16,000 --> 01:11:20,000 Điều này có nghĩa là các trang web PHP đang làm việc. 912 01:11:20,000 --> 01:11:24,000 Khi bạn truy cập một trang web mà gửi cho bạn một cái gì đó như 913 01:11:24,000 --> 01:11:30,000 một cái gì đó, một cái gì đó, một cái gì đó dot com slash index.php 914 01:11:30,000 --> 01:11:33,000 máy tính là nghĩa đen gọi index.php, 915 01:11:33,000 --> 01:11:38,000 chạy nó thông qua các thông dịch viên PHP, và bất cứ điều gì rác ra 916 01:11:38,000 --> 01:11:49,000 nó gửi lại cho trình duyệt và nói hey, trình duyệt, giải thích điều này như là HTML. 917 01:11:49,000 --> 01:11:54,000 Những điều tốt đẹp là nó có thể là một nỗi đau không ngừng viết tiếng vang, echo, echo, echo 918 01:11:54,000 --> 01:11:59,000 và kèm theo tất cả mọi thứ trong dấu ngoặc kép như thế này, vì vậy nếu bạn muốn viết 919 01:11:59,000 --> 01:12:04,000 HTML đó đang xảy ra để được tĩnh mình bạn có thể làm nó như thế này, 920 01:12:04,000 --> 01:12:16,000 đặt nó bên ngoài, đóng nó, 921 01:12:16,000 --> 01:12:21,000 và sau đó ở đây bạn chỉ đặt bên trong các thẻ PHP đó mà bạn biết 922 01:12:21,000 --> 01:12:26,000 bạn muốn lập trình tạo ra, và trong trường hợp này đó là các thẻ tùy chọn 923 01:12:26,000 --> 01:12:31,000 là một nỗi đau để tạo ra. 924 01:12:31,000 --> 01:12:37,000 >> Ví dụ, chúng ta có thể tạo ra các thẻ tùy chọn một ngàn 925 01:12:37,000 --> 01:12:48,000 bằng cách làm một cái gì đó như thế này, $ i <1000, i + + 926 01:12:48,000 --> 01:13:00,000 và nói rằng giá trị tùy chọn tiếng vang = $-tả, tôi không thể làm điều đó. 927 01:13:00,000 --> 01:13:03,000 Vâng, chúng ta cung cấp cho nó một thử và xem những gì sẽ xảy ra. 928 01:13:03,000 --> 01:13:22,000 $ I và sau đó nói $ i 01:13:27,000 Thay vì phải gõ ra rằng thẻ tùy chọn hàng ngàn lần khác nhau 930 01:13:27,000 --> 01:13:33,000 Tôi đang sử dụng mã PHP để tạo ra nó tự động, lập trình. 931 01:13:33,000 --> 01:13:38,000 Loại tiện lợi. Yeah. 932 01:13:38,000 --> 01:13:41,000 Tôi nhớ điều này được đề cập trong bài giảng hoặc hương, 933 01:13:41,000 --> 01:13:43,000 nhưng sự khác biệt giữa các dấu ngoặc kép là những gì, 934 01:13:43,000 --> 01:13:45,000 bình thường những người thân và những điều duy nhất? 935 01:13:45,000 --> 01:13:49,000 Đó thực sự là một cái gì đó mà tôi đã làm sai ở đây mà tôi sẽ cho bạn thấy. 936 01:13:49,000 --> 01:13:52,000 Các báo giá duy nhất không cho phép bất kỳ ký tự đặc biệt, 937 01:13:52,000 --> 01:13:57,000 do đó, tất cả mọi thứ bên trong một chuỗi trích dẫn duy nhất được hiểu theo nghĩa đen. 938 01:13:57,000 --> 01:14:02,000 Nếu tôi có một \ n bên trong dấu nháy đơn và tôi tiết kiệm này, ví dụ, 939 01:14:02,000 --> 01:14:07,000 và bây giờ tôi đi xuống ở đây và chạy nó 940 01:14:07,000 --> 01:14:12,000 oops, ở đâu tôi? 941 01:14:12,000 --> 01:14:19,000 Oh, đó là vì tôi quên mất $. 942 01:14:19,000 --> 01:14:25,000 >> Bây giờ nếu tôi mở thực sự, ở đây, chúng tôi sẽ nhận được thoát khỏi gõ nó vào một tập tin. 943 01:14:25,000 --> 01:14:27,000 Chúng tôi sẽ chỉ đọc nó. 944 01:14:27,000 --> 01:14:34,000 Ở đây bạn thấy rằng tôi đã có trong chuỗi này theo nghĩa đen \ n, giống như không phải là một dòng mới thực tế, 945 01:14:34,000 --> 01:14:38,000 và tương tự, thay vì thực sự nội suy các giá trị của biến này 946 01:14:38,000 --> 01:14:42,000 nó đã cho tôi $ i chính nó, mà là loại đau đớn. 947 01:14:42,000 --> 01:14:46,000 Khoảng cách này là sử dụng dấu ngoặc kép, 948 01:14:46,000 --> 01:14:52,000 và sau đó khi bạn sử dụng dấu ngoặc kép nó sẽ thực sự 949 01:14:52,000 --> 01:14:56,000 đúng suy các giá trị của tất cả các biến ở đây 950 01:14:56,000 --> 01:14:59,000 và cũng có thể nhận ra điều này \ n là dòng mới mà nó là 951 01:14:59,000 --> 01:15:02,000 và không \ n. 952 01:15:02,000 --> 01:15:07,000 Sử dụng những người thân duy nhất là tốt đẹp khi bạn có 953 01:15:07,000 --> 01:15:10,000 ký tự có thể được hiểu như là các ký tự đặc biệt bởi vì sau đó bạn không có 954 01:15:10,000 --> 01:15:15,000 thoát khỏi chúng liên tục. 955 01:15:15,000 --> 01:15:18,000 Những điều có thể nhận được lộn xộn, và thường là cách tôi làm điều đó, 956 01:15:18,000 --> 01:15:24,000 chỉ để làm cho mọi thứ dễ dàng, đó là nếu tôi sẽ có bất cứ điều gì 957 01:15:24,000 --> 01:15:31,000 HTML như trong mã của tôi tôi sẽ bao gồm chỉnh sửa trong dấu ngoặc đơn 958 01:15:31,000 --> 01:15:36,000 và sau đó sử dụng toán tử nối 959 01:15:36,000 --> 01:15:43,000 để nối các biến. 960 01:15:43,000 --> 01:15:47,000 Đây là một cách khác để làm việc đó 961 01:15:47,000 --> 01:15:52,000 nơi mà chúng tôi đã có những dấu chấm đó sẽ kết nối này là một chuỗi 962 01:15:52,000 --> 01:15:56,000 với điều này với điều này với điều này, 963 01:15:56,000 --> 01:15:59,000 và bây giờ tôi không có muốn thoát khỏi những dấu ngoặc kép. 964 01:15:59,000 --> 01:16:02,000 Tôi không phải sử dụng anh chàng này để thoát khỏi. 965 01:16:02,000 --> 01:16:08,000 Họ nghĩa đen sẽ được in ra như là dấu ngoặc kép và sau đó anh chàng này ngay tại đây. 966 01:16:08,000 --> 01:16:11,000 Đây là một cách pha trộn tất cả mọi thứ lại với nhau. 967 01:16:11,000 --> 01:16:14,000 >> [Sinh viên] Ngoài ra, khi bạn lặp lại GetType không có dấu ngoặc kép ở tất cả. 968 01:16:14,000 --> 01:16:22,000 Đúng, vì vậy tiếng vọng là loại đặc biệt trong ý nghĩa là bạn không cần dấu ngoặc đơn. 969 01:16:22,000 --> 01:16:29,000 Bạn không cần phải có dấu ngoặc kép cần thiết xung quanh các biến, 970 01:16:29,000 --> 01:16:37,000 như đó là hợp lệ để nói echo $ i, và nó sẽ giải thích điều này như là một chuỗi. 971 01:16:37,000 --> 01:16:44,000 Nó sẽ làm các diễn viên, do đó, chúng ta có thể làm được điều này, và đó là hợp lệ quá, nhưng chúng tôi không cần nó. 972 01:16:44,000 --> 01:16:48,000 Đó là tùy chọn. 973 01:16:48,000 --> 01:16:53,000 Trong bộ vấn đề tuần này tìm ra cho rất nhiều loại công cụ này 974 01:16:53,000 --> 01:16:58,000 nơi bạn đang trộn và kết hợp HTML với PHP 975 01:16:58,000 --> 01:17:08,000 chỉ như thế này, và bây giờ nếu chúng ta di chuyển trở lại và chúng tôi chạy 976 01:17:08,000 --> 01:17:13,000 chúng ta có thể thấy rằng chúng tôi có một bó toàn bộ các giá trị tùy chọn 977 01:17:13,000 --> 01:17:15,000 mà chỉ cần in ra. 978 01:17:15,000 --> 01:17:20,000 Chúng tôi có tất cả HTML này thực sự đã tạo ra một cách nhanh chóng cho chúng tôi. 979 01:17:20,000 --> 01:17:22,000 Tôi sẽ để nó như một bài tập. 980 01:17:22,000 --> 01:17:24,000 Nó rất giống đọc tập tin mà chúng tôi đã làm trước đó. 981 01:17:24,000 --> 01:17:31,000 >> Có một tập tin concentrations.txt mà bạn có thể kéo xuống từ CDN, 982 01:17:31,000 --> 01:17:34,000 và bạn có thể mở nó bằng cách sử dụng một số thủ thuật foreach mà chúng tôi đã làm trước đó, 983 01:17:34,000 --> 01:17:39,000 và foreach bạn chỉ cần có để echo một tùy chọn và cắm 984 01:17:39,000 --> 01:17:44,000 các giá trị thích hợp, thích hợp phím và các chỉ số, 985 01:17:44,000 --> 01:17:49,000 và sau đó bạn nhận được một giọt xuống có nghĩa là tạo ra 986 01:17:49,000 --> 01:17:54,000 lập trình cho bạn tất cả các nồng độ khác nhau tại Đại học Harvard. 987 01:17:54,000 --> 01:17:57,000 Một điều tiện dụng để có. 988 01:17:57,000 --> 01:18:02,000 Có rất nhiều các công cụ cấu hình cho nhiệm vụ này. 989 01:18:02,000 --> 01:18:07,000 Nếu bạn đã không thực hiện nó đã mất nửa giờ tiếp theo, giờ, 990 01:18:07,000 --> 01:18:10,000 một số thời gian tối nay chắc chắn cho chắc chắn, 991 01:18:10,000 --> 01:18:14,000 đi bộ thông qua các spec bộ vấn đề, 992 01:18:14,000 --> 01:18:20,000 xem những gì đang xảy ra với thiết lập vhosts, các máy chủ lưu trữ địa phương, tất cả những thứ. 993 01:18:20,000 --> 01:18:24,000 Một điều cần chỉ ra ngay bây giờ là 994 01:18:24,000 --> 01:18:30,000 trong hầu hết các bài tập, chúng tôi đã đi vào thư mục Dropbox của bạn 995 01:18:30,000 --> 01:18:34,000 và sau đó tải về tập tin zip vấn đề thiết lập và giải nén nó. 996 01:18:34,000 --> 01:18:36,000 Đối với vấn đề này tập hợp bạn không muốn. 997 01:18:36,000 --> 01:18:40,000 Bạn muốn đi vào thư mục này vhosts. 998 01:18:40,000 --> 01:18:45,000 Bạn sẽ muốn đi vào vhosts và đi vào thư mục máy chủ lưu trữ địa phương bên trong nó, 999 01:18:45,000 --> 01:18:50,000 và đây là nơi mà bạn sẽ muốn để kéo xuống các tập tin zip, 1000 01:18:50,000 --> 01:18:55,000 giải nén nó, và nhận được sẵn sàng để đi. 1001 01:18:55,000 --> 01:18:57,000 Bạn sẽ phải làm theo các bước chặt chẽ. 1002 01:18:57,000 --> 01:19:02,000 >> Nếu bạn có bất kỳ câu hỏi, gửi email, đăng nó trên Thảo luận, đến giờ làm việc. 1003 01:19:02,000 --> 01:19:08,000 Thanks guys. Tuần tới chúng ta sẽ có một phiên họp đánh giá cho bài kiểm tra. 1004 01:19:08,000 --> 01:19:12,000 Thưởng thức bộ vấn đề cuối cùng của bạn. Tôi hy vọng tất cả đi thực sự tốt. 1005 01:19:12,000 --> 01:19:14,000 [CS50.TV]