[MUSIC CHƠI] SPEAKER 1: Đây là CS50 và đây là phần cuối của tuần bảy. Hôm nay có lẽ là nơi chúng tôi thực sự dạy bạn ngôn ngữ. Chúng tôi giới thiệu trong quá khứ vài tuần HTML và CSS, không phải trong đó được ngôn ngữ lập trình. Và thực sự, mặc dù chúng tôi đã không nhìn gần như tất cả các thẻ HTML mà đi kèm với và gần như tất cả của các thuộc tính CSS đi kèm với, đó là loại nó cho HTML và CSS. Chúng tôi sẽ chỉ nói chung bắt đầu giả định rằng bạn hiểu ý chính các thẻ, thuộc tính và, và các trang được gửi từ client tới server. Bởi vì hôm nay chúng tôi bắt đầu nhìn vào một ngôn ngữ lập trình, PHP. Chúng ta sẽ làm điều này siêu nhanh. Chúng tôi sẽ không dạy cho bạn PHP mỗi gia nhập, giống như chúng ta không mong muốn dạy cho bạn C, mỗi gia nhập, mà là lập trình. Và quả thực, một trong những mục tiêu cho khóa học này không phải là để dạy cho bạn C, hoặc HTML, hoặc CSS hoặc PHP, hoặc bất kỳ số khác Nói cách buzz hoặc từ viết tắt, nhưng đúng hơn là khoa học máy tính và làm thế nào để chương trình cơ bản. Và quả thật, hôm nay chúng tôi bắt đầu để mất những bánh xe đào tạo ra tất cả các hơn nữa bằng cách bay qua một ngôn ngữ PHP, như sau. Dưới đây là những gì ngôn ngữ này như thế nào. Nó chỉ ra rằng không có nhu cầu một chức năng chính trong một chương trình được viết trong một ngôn ngữ gọi là PHP. Vì vậy, mà đã nghe một chút đơn giản hơn so với C, mà chúng ta đã quen thuộc. Nó chỉ ra rằng nếu bạn muốn khai báo một biến, bạn làm điều đó gần như giống hệt với C. Nhưng có một sự khác biệt rõ ràng ở đây khi tôi tuyên bố một chuỗi, hoặc có lẽ hai sự khác biệt. Những gì trông khác nhau? Đung Các ký hiệu đô la. SPEAKER 1: Có, có đô la ký, mà chúng tôi chưa bao giờ thấy trước đây. Và những gì còn thiếu? Yeah? Đung [Không nghe thấy] SPEAKER 1: Yeah, không có kiểu dữ liệu. Vì vậy, nó chỉ ra rằng PHP là những gì chúng tôi gọi một ngôn ngữ lỏng lẻo, nơi C là mạnh mẽ gõ. Lỏng lẻo chỉ có nghĩa là có nhiều loại dữ liệu khác nhau, có dây, và ints, và nổi được. Nhưng những con số máy tính mà ra. Bạn lập trình của con người không phải con nó ra. Vì vậy, tất cả các bạn phải làm để khai báo một biến là ký hiệu đô la, tên của bạn biến, và sau đó, ví dụ, quote unquote, hello thế giới. Vâng điều này là những gì một điều kiện trông giống như trong PHP. Bất kỳ sự khác biệt? Không. Vì vậy, nó quay ra đây là những giống hệt nhau. Và bạn có thể có ít chi nhánh hoặc chi nhánh, nhưng lần lượt cú pháp ra chính xác như nhau. Biểu thức Boolean thể được đặt hàng với nhau. Biểu thức Boolean có thể được anded với nhau. Bạn vẫn có thiết bị chuyển mạch. Thậm chí nếu bạn không sử dụng những, những tồn tại trong C và chúng có chức năng tương đương trong PHP. Và trên thực tế, trong PHP chúng thêm một chút mạnh mẽ. Trong C, bạn chỉ có thể so sánh nhất định loại dữ liệu như ints và ký tự, trong khi đó trong PHP bạn thực sự có thể so sánh chuỗi mộc lông đầy đủ mà không cần phải lo lắng về con trỏ và các loại tương tự. Vì vậy, đây là một vòng lặp for. Đây chỉ là giả mã, nếu bạn sẽ. Nhưng cấu trúc nó giống hệt với C. Dưới đây là một vòng lặp trong khi, giả therefore-- giống C. Dưới đây là một việc phải làm trong khi loop-- giống hệt nhau. Và do đó, có loại mô hình này ở đây, theo đó có một vài cú pháp khác tính năng chúng tôi đang thực sự đi xem. Trong thực tế, đây là một tốt đẹp cách trong PHP, theo đó, nếu bạn muốn lặp trên một mảng, và bạn không muốn nhảy qua hoops tinh thần và cú pháp của việc có int i bằng 0, i ít hơn n, i cộng với plus-- mà là chỉ cần rất nhiều cú pháp gây phiền nhiễu. Bạn có thể nói thêm một chút êm ái cho mỗi số như số lượng, nơi mà trong trường hợp này số ký hiệu đô la, tôi giả định, là giống như một mảng gọi là số. Và sau đó tôi giả định số lượng, số ít, là có được một biến. Và những gì PHP sẽ làm cho tôi như là tôi lặp qua vòng này là, trên mỗi lần lặp, nó sẽ cập nhật số biến là yếu tố thứ i trong số, số nhiều. Vì vậy, nó chỉ xử lý tất cả các điều đó cho tôi. Không có dấu ngoặc vuông, không có ký hiệu đô la, không có dấu chấm phẩy. Nó chỉ là một chút đơn giản. Vâng, nếu bạn muốn một mảng, nó quay ra bạn có thể làm một cái gì đó khá giống với C. Cú pháp là một chút khác nhau. Nhưng đây là một mảng gọi là đồng đô la ký số. Và tôi sử dụng, trong PHP, vuông ngoặc, nó quay ra. Và chúng ta sẽ thấy những một lần nữa trong JavaScript-- chưa một ngôn ngữ khác. Tôi chỉ sử dụng ký hiệu khung vuông để có một danh sách bằng dấu phẩy các số nguyên, trong trường hợp này. Nhưng điều đó mang lại cho tôi một mảng. Nhưng thậm chí còn mạnh hơn trong PHP, chúng tôi cũng có những gì thường được gọi là các mảng kết hợp. Và rất nhiều ngôn ngữ có những là tốt. Những điều về mảng C là các chỉ số cho một mảng, những điều mà bạn sử dụng trong ngoặc vuông qua đó bạn truy cập vào các yếu tố, phải là những gì? Đung [Không nghe thấy] SPEAKER 1: Họ phải có số hoặc số nguyên, đặc biệt là từ số không trên lên. Vâng, trong PHP, và, nó quay ra, trong các ngôn ngữ khác, bạn có thể bắt đầu có chỉ số mà không phải là số. Nhưng chúng thực lời hay cụm từ, để thay vì cố gắng để ghi nhớ nơi một cái gì đó được, hoặc được lưu trữ trong một biến i, bạn thực sự có thể sử dụng một từ và nói that-- bạn có thể nói một từ như thế này. Vì vậy, ký hiệu đô la quote là tên của một biến ở đây. Đây là cú pháp hơi sôi nổi đó là kết hợp hai giá trị quan trọng cặp cho biến này. Cụ thể, điều này đem lại cho tôi một mảng có chiều dài 2. Nhưng các chỉ số không phải là 0 và 1. Các chỉ số được trích dẫn unquote biểu tượng và giá unquote quote. Và các giá trị của các chỉ số, tương ứng, là FB cho Facebook và 79,53 $, khi tôi kéo kiểm tra một giá cho việc này. Điều đó có nghĩa là gì? Vâng, nó có nghĩa là thay vì viết code như thế này, nơi mà tôi sử dụng để làm một cái gì đó như đồng đô la sign-- hay đúng hơn, trong C Tôi thậm chí không có một dấu đô la. Tôi sẽ làm một cái gì đó như dấu ngoặc kép và sau đó Tôi sẽ làm khung i để có được tại một số tự ý số lượng chỉ số giá trị. Bắt đầu từ ngày hôm nay trong PHP, nếu bạn muốn nhận được ở một số giá trị, chúng tôi có nhiều loại biểu ngữ nghĩa. Chỉ cần một cách nói chúng ta có thể chỉ cần gọi những gì họ đang có. Và nếu bạn muốn nhận được tại một cái gì đó biểu tượng, Bây giờ bạn có nghĩa là làm báo biểu tượng unquote trong dấu ngoặc vuông thay vì một số đơn thuần. Vì vậy, nó là một tiện nghi tốt đẹp. Và đó là sắp xếp của nó cho bây giờ. Có chùm tính năng khác trong PHP. Và quả thực, đi kèm với PHP bồn rửa nhà bếp ngôn. Hàng chục, hàng trăm chức năng đi kèm với PHP-- nhiều hơn đến với C. Và điều đó không có ý định áp đảo mà là giúp đỡ bạn nhận ra rằng chúng tôi không có còn phải viết mã đó là loại xuống đây khái niệm. Bây giờ chúng ta chỉ có thể bắt đầu lợi dụng của nhiều tính năng tiên tiến rằng các ngôn ngữ như PHP có. Vì vậy, chúng ta không phải lo lắng về di chuyển những thứ xung quanh trong bộ nhớ. Chúng tôi không phải lo lắng về malloc và tất cả các cấp độ thấp hơn, chi tiết mạnh mẽ mà bạn sẽ vật lộn với, nếu không đấu tranh với, pset5, nhưng bạn có thể bắt đầu sớm đưa cho các cấp. Trong thực tế, chúng ta hãy viết một siêu chương trình đơn giản trong PHP, như sau. Tôi sẽ đi đầu vào CS50 IDE ở đây, và những gì tôi sẽ làm là tạo ra một tập tin mới, mà rất đơn giản sẽ được gọi là chào dot PHP. Vì vậy, thay vì chấm c, nó sẽ được gọi là chấm PHP. Và sau đó trong tập tin này, Tôi có thể bắt đầu nhập. Nhưng nó chỉ ra rằng các một điều tôi phải biết là bất kỳ tập tin PHP nói chung, cần để bắt đầu với một số cú pháp đặc biệt. Tinh thần tương tự HTML, nhưng một lần nữa, PHP là một ngôn ngữ lập trình, không một ngôn ngữ đánh dấu. Vì vậy, mỗi tập tin, và đó là loại ngu ngốc nhìn tôi thừa nhận. Mở khung, dấu hỏi, PHP. Và đó chỉ là cách ngôn ngữ của nói, hey, máy tính ở đây có một số mã viết bằng một ngôn ngữ gọi là PHP. Và sau đó vào cuối của tập tin của bạn, bạn làm loại loại ngược lại. Bạn không viết PHP một lần nữa, bạn chỉ làm dấu hỏi, khung góc. Và sau đó bất cứ điều gì bạn đặt bên trong của hai thẻ này, có thể nói, sẽ được, hoặc nên là, mã PHP. Vì vậy, chúng ta hãy làm một cái gì đó siêu đơn giản. Tôi sẽ đi trước và làm print def, hello thế giới, dấu gạch chéo ngược n, tiết kiệm. Và tại dấu nhắc của tôi, tôi sẽ làm, làm cho hello-- không, tôi sẽ làm gì, dot giảm hello. Không, dấu chấm dấu gạch chéo, hm. Vì vậy, một cái gì đó khác biệt. Và quả thực, đây là một sự khác biệt quan trọng giữa PHP và các ngôn ngữ như C C. là một cái gọi là ngôn ngữ biên dịch. Có ý nghĩa gì đối với C được biên dịch? Ngụ ý là gì? Yeah. Đung Wrote nó thành mã máy do đó, nó có thể được chạy bởi máy tính. SPEAKER 1: Chính xác. Chúng ta phải đầu tiên chuyển đổi nó thành cái gọi là mã máy, số không và những người thân, trước khi nó thực sự sẽ được thực thi và hiểu bởi máy tính. By Intel bên trong. Bởi CPU bên trong của máy tính. PHP, ngược lại, là những gì được gọi là một ngôn ngữ diễn giải, có nghĩa là bạn không biên dịch nó thành số không và những người thân, mã máy, bạn thay vì để nó như mã nguồn. Và bạn thay vì vượt qua nó như là đầu vào cho một chương trình, một thông dịch viên mà người khác đã viết năm trước đây mà hiểu nó từng dòng, nhân vật cho nhân vật. Vì vậy, nói cách khác, con người ngoài kia đã viết một chương trình mà sẽ xem xét tại dòng code của bạn bằng dòng, và tìm ra những gì máy tính nên làm gì, mà không cần chuyển đổi nó trực tiếp đến số không và những người thân. Vì vậy, nếu nó thấy một vòng lặp for, này được gọi là thông dịch viên là có được như thế, tất cả các quyền, tôi nên làm một cái gì đó một lần nữa và một lần nữa và một lần nữa. Tôi nên làm gì? Hãy để tôi nhìn vào các dòng tiếp theo. Hãy để tôi nhìn vào các dòng tiếp theo. Và nó thực sự diễn giải nó theo từng dòng. Vì vậy, để thực hiện nó, tôi không sử dụng make. Tôi không sử dụng dấu chấm dấu gạch chéo trong trường hợp này. Tôi thay vì làm PHP, đó là tên của một chương trình, a.k.a. Một thông dịch viên, đó là cài đặt sẵn trong CS50 IDE, và bây giờ tôi cần phải vượt qua một đối số dòng lệnh, mà là khá đơn giản là tên của tập tin mà tôi muốn giải thích. Hoặc tình cờ hơn, mà tôi muốn chạy. Và nếu tôi nhấn Enter, chúng tôi đã có nó. Chào thế giới. Bây giờ nó quay ra rằng tôi được sử dụng in def cố tình làm cầu nối cho chúng tôi từ C đến PHP. Hầu hết các lập trình viên PHP, như bạn sẽ thấy, thậm chí không bận tâm sử dụng in def. Họ chỉ cần sử dụng một chức năng gọi là in, mà C không có. Và do đó, nếu tôi chạy lại nó bây giờ, nó thực sự ứng xử có chức năng giống nhau. Tôi không thể sử dụng các phần trăm s và phần trăm i và vv, nhưng có những cách khác trong PHP để làm điều đó. Nhưng đây chỉ là để nói rằng cú pháp, khác với một số những điều kỳ lạ lên hàng đầu, và một số ký tự lạ xuống ở phía dưới, các khái niệm hiện nay của lập trình bằng ngôn ngữ khác này đang có được chính xác như nhau. Trong thực tế, chúng ta hãy làm một ví dụ khác. Vì vậy, tôi sẽ đi trước và đóng tập tin này. Hãy để tôi tạo một số khác mà Tôi sẽ gọi cho các điều kiện 1 dot PHP. Vì vậy, không bằng không, bởi vì những gì tôi đã làm là tôi nhìn lại một vài tuần trước đây, chúng tôi đã có một tập tin gọi là điều kiện 1 dot C. Và những gì Tôi đã được chuyển đổi nó trong tôi đầu, và ở đây trên giấy, và ngay vào khóa học của website, từng dòng vào PHP. Vì vậy, trong các phiên bản C, chúng tôi làm gì như chuỗi s được nhận được chuỗi. Vì vậy, đó là một chút khác nhau để làm điều đó trong PHP. Thay vào đó, tôi chỉ cần đi để làm gì, hay đúng hơn, tôi có thể đã làm int n được nhận int, trong ví dụ này trước đó. Vì vậy, thay vào đó, tôi sẽ làm n được đọc hàng, tôi muốn một số nguyên, làm ơn. Vì vậy, đây chỉ là dấu nhắc của tôi. Và do đó, nó quay ra, và Tôi chỉ biết điều này từ khi đọc hoặc nhìn thấy các chức năng trước, đọc dòng của hàm trong PHP có một đối số đó là một dấu nhắc cho con người, và mục đích của nó trong cuộc sống là để đọc một dòng văn bản rằng anh ta hoặc cô loại trong. Và sau đó nó lưu mà văn bản vào n biến. Và bây giờ tôi có thể muốn làm điều gì đó như tôi đã làm tuần trước, trong tuần như thế một trong các lớp học. Nếu n là lớn hơn bằng không, sau đó, tôi sẽ vay là cú pháp chúng ta vừa thấy, in def, bạn chọn một số dương, n dấu gạch chéo ngược. Khác nếu n bằng bằng không, tôi sẽ đi trước và nói, in def, bạn chọn không dấu gạch chéo ngược n. Khác, trường hợp ở đây nên tất nhiên là, in def, bạn đã chọn một số âm. Và chúng tôi chắc chắn có thể thực hiện logic của điều này trong một bó khác nhau cách, nhưng điểm ở đây là cú pháp, hầu như bất cứ điều gì là mới. Nó chỉ là những ký hiệu đô la và một chức năng mới và dòng được đọc. Nhưng về cơ bản, có gì mới là bây giờ tôi đang giải thích này. Tôi đang đi qua nó như là đầu vào một chương trình khác. Vì vậy, nếu tôi muốn chạy này, nếu Tôi đã không thực hiện bất kỳ sai lầm, Tôi sẽ chạy PHP, của điều kiện 1 dot PHP, Enter, Tôi sẽ gõ số 50, và chúng ta hãy giả sử bây giờ nó hoạt động. Bởi vì logic là cùng một thứ như một tuần. Tất cả các quyền, vì vậy đó là khá tượng, phải không? Chúng ta có thể làm điều này trong bất kỳ số ngôn ngữ. Hãy làm một cái gì đó cách mạnh mẽ hơn. Hãy kết thúc vấn đề thiết lập năm. Vì vậy, tôi sẽ đi trước và làm điều này. Tôi sẽ tạo ra một tập tin được gọi là từ điển dot PHP, và nghiêng như bạn có thể để tranh giành xuống rất nhiều ghi chú, các ghi chú sẽ chỉ giúp bạn nếu bạn đang được cho phép để thực hiện các vấn đề thiết lập năm trong PHP. Nhưng chúng tôi sẽ xem làm thế nào nhanh chóng bây giờ chúng tôi có thể thực hiện mà tập cùng một vấn đề. Vì vậy, trong từ điển dot PHP, tôi sẽ cho rằng hiện đang có một tập tin trong thế giới gọi Speller. Và quả thực, tôi đã làm điều này trước, và chúng ta sẽ không đi qua đường này bởi dòng, nhưng nếu bạn tò mò sau đó và thực sự muốn để hết tâm trí bạn xung quanh sự khác nhau giữa c và PHP, nghĩa so sánh tập tin này, Speller, từ mã nguồn của ngày hôm nay rằng chúng tôi sẽ đăng sau ngày hôm nay, với p tập năm Speller dot c mà chúng tôi cung cấp cho bạn, và nó gần như cùng một dòng của dòng. Có một số dấu hiệu đồng đô la nhiều. Một vài chức năng này một chút khác nhau. Nhưng đó là một cách tốt đẹp các loại nhìn thấy như thế nào bạn dịch một ngôn ngữ khác. Và đó là đường gần như giống hệt nhau cho dòng. Nhưng tôi sẽ cho rằng đó tồn tại, và những gì tôi sẽ làm ở đây là cố gắng để thổi của bạn tâm bởi reimplementing toàn bộ các vấn đề thiết lập năm cách nhanh hơn bạn đã làm cho đến nay. Vì vậy, ví dụ, tôi sẽ đầu tiên khai báo một biến toàn cầu được gọi là kích thước, và thiết lập nó bằng không. Bây giờ đó là không tiết kiệm hơn nhiều. Tỷ lệ cược là bạn thực hiện kích thước khá giống nhau, hoặc hint hint, sẽ tối nay hoặc ngày mai, chỉ cần sử dụng một biến toàn cầu được gọi kích thước, và đặt nó bằng không. Đó không phải là một đặc biệt spoiler tuyệt vời. Vì vậy, những gì là cấu trúc dữ liệu của bạn sự lựa chọn, những người bạn của những người đã tụt dốc trong và đọc spec, cấu trúc dữ liệu gì đã hầu hết các bạn đã được sử dụng? Một bảng băm hoặc thử, có lẽ một số biến thể của chúng. Vì vậy, việc thực hiện một bảng băm ít nhất, là loại rất nhiều dòng mã, bên phải? Và không phải tất cả trong số họ có thể là chức năng tại thời điểm này trong tuần, nhưng đó là tốt. Bởi vì trong PHP, nếu tôi muốn có một bảng băm, thực hiện. Bên phải? Vì vậy mà biến mà tôi đã vừa tuyên bố rõ ràng là gọi là đô la bảng hiệu, mỗi việc giới thiệu trước đây. Nhưng tôi thực sự chỉ muốn, tại cuối ngày, một mảng. Nhưng không phải là một số lượng lập chỉ mục mảng, bởi vì đó là giống như hai tuần công cụ, khi chúng tôi nói chuyện về mảng. Tôi muốn có một bảng băm. Nhưng một bảng băm thực sự là chỉ là một cách cụ thể nói, bạn muốn một mảng kết hợp. Bạn muốn để có thể phím kết hợp với các giá trị. Phím với các giá trị. Một từ điển là gì, thực sự? Vâng đó là một bó toàn bộ các phím. Những từ như táo, lê, chuối, và tất cả những từ tiếng Anh mà chúng tôi đưa cho bạn. Và các giá trị mà bạn có hiệu quả chèn vào trong từ điển của bạn hoặc là đúng, hoặc không có, sai. Nói cách khác, bạn đang chèn một bó toàn bộ các cặp giá trị quan trọng, táo, đúng, quả lê, đúng, chuối, đúng. Vì vậy, khi bạn lấy lại hoặc tìm lên rằng dữ liệu trong bảng băm của bạn với chức năng kiểm tra của bạn, bạn hoặc nhận lại một câu trả lời, có, tôi tìm thấy nó trong phức tạp của tôi băm bảng, hoặc không có, nó không có ở đó, do đó, bạn quay trở lại sai. Vì vậy, để làm được điều đó, tất cả tôi cần là các dữ liệu cấu trúc giống như tôi đã đề xuất trước đây. Tôi chỉ cần để có thể để kết hợp các từ như thế, quote unquote, biểu tượng, với một giá trị như thế, đúng. Vì vậy, có bảng băm của tôi. Hãy thực sự sử dụng nó. Vì vậy, có một vài chức năng Tôi cần phải thực hiện. Tôi sẽ đi trước và cắn off một chức năng gọi là kích thước. Nó không có đối số. Tôi không phải bận tâm với từ, void, trong PHP. Tôi chỉ đơn giản là đi để trở về kích thước. Và như một sang một bên, PHP có này chi tiết minorly gây phiền nhiễu, mà nếu cái gì đó là toàn cầu, bạn phải nói với các chức năng mà bạn đang sử dụng nó, hey, đây là một biến toàn cầu. Vì vậy, sự ngu ngốc nhỏ, nhưng bạn phải làm điều đó dù sao. Vì vậy, những gì về tải? Tôi sẽ thực hiện một chức năng gọi là tải mà mất trong tên của một từ điển, giống như trong vấn đề thiết lập năm. Và trước khi tôi tiến, nhận thấy rằng tôi có không được gõ khá những điều tương tự. Có gì rõ ràng là khác nhau trong PHP về làm thế nào bạn khai báo một hàm so với C? Yeah. Đung [Không nghe thấy] SPEAKER 1: Không có kiểu trả về. Và quả thực, đó là trường hợp, PHP trong chừng mực nó lỏng lẻo, cũng là một chút cẩu thả trong ý nghĩa đó. Bạn không chỉ định như là lập trình hàm này trả về. Bạn sẽ phải thực sự nhìn tại các mã để hiểu rằng con số. Hoặc đọc các ý kiến hoặc tài liệu. Vì vậy, mặt được, chưa về các loại quyết định. Nhưng tôi phải nói các từ khóa, chức năng. Và khi chúng ta học JavaScript trong một vài tuần chúng ta sẽ thấy điều tương tự một lần nữa, nhưng đó là ý tưởng tương tự. Tên của hàm, đối số của nó hoặc lập luận hay thiếu, và bây giờ ở đây là việc thực hiện. Vì vậy, tôi sẽ cắt giảm một số góc chỉ được ấn tượng cho một lát. Nhưng tôi sẽ đi trước và nói điều này. Đây là cách tôi có thể tải một tập tin vào một mảng. Có một chức năng trong PHP tên tập tin. Bạn tay nó tên của một tập tin. Nó đưa cho bạn trở lại một mảng, bên trong trong số đó là tất cả các dòng từ tập tin. Từ số không, một, trên lên để n trừ đi 1 dòng. Đó là nó, phải không? Không có f đọc. Không có f get s. Không có phần trăm s. Không có đau đầu. Không có feof. Tất cả những thứ đó mà bạn đã vật lộn có lẽ, với p đặt bốn và năm, đi đi. Vì vậy, tôi chỉ cần đọc những dòng này vào các tập tin, và sau đó bạn biết những gì? Nếu tôi muốn để lặp qua những từ ngữ, Tôi có thể làm được, vì mỗi dòng như dòng. Hãy nhớ rằng đây là một loại thông minh cách iterating trên một mảng, chỉ số bởi chỉ số, và trên mỗi cuộc gọi lặp dòng hiện tại, dòng ký hiệu đô la. Và đây, tôi sẽ đi và nói bảng, khung, đường, được sự thật. Nói cách khác, đây là làm thế nào tôi chèn vào bảng băm của tôi trong PHP. Tôi nói bảng ký hiệu đô la, mà là mảng kết hợp của tôi đã được rỗng mỗi dòng mã lên trên. Sau đó tôi chỉ vào nó không, bằng cách sử dụng một số, nhưng nghĩa bằng cách sử dụng từ khóa mà tôi quan tâm. Có lẽ đó là quả táo hoặc lê hoặc chuối hoặc bất cứ điều gì, nhưng đặc biệt tôi đang lập chỉ mục vào nó như tôi đã đề xuất trước đó. Tôi lấy tên của tôi mảng kết hợp, và sau đó tôi sử dụng quote unquote trong dấu ngoặc vuông với một chuỗi, thay vì một con số thực tế. Và đó là nó. Các chức năng tải được thực hiện. Khi đó lặp vòng lặp, tôi đã đặt tất cả mọi thứ vào bảng băm. Bây giờ từ bỏ nhỏ, có một vài điều tôi cần phải sửa chữa. Và phiên bản tôi sẽ đăng trực tuyến sẽ có tất cả các sắc thái, nhưng nó chủ yếu chỉ có được một số kiểm tra lỗi và một số chỉnh nhỏ. Nhưng đó thực sự là ý chính của nó. Nếu bây giờ tôi muốn thực hiện các chức năng được gọi là kiểm tra, mà hy vọng một từ như là đối số của nó, làm thế nào tôi có thể đi về làm việc đó? Vâng, tôi chỉ đơn giản là sẽ nói, nếu bên trong của bảng của tôi, tại vị trí từ, nếu được thiết lập. Vì vậy, nếu có is-- trên thực tế, bạn biết những gì? Tôi sẽ làm điều đó trong một chút giả. Nhưng ý tưởng là như nhau. Nếu điều đó bằng sự thật, trả lại sự thật. Được rồi. Else-- bạn có thể loại xem nơi này được going-- để trả về false. Làm xong. Kiểm tra được thực hiện. Khá đẹp, phải không? Và như vậy là điều này thực sự nhận được tại? Và điều này cũng vậy, tôi cắt một số góc. Nhìn vào các phiên bản trực tuyến cho tất cả các sắc thái nhẹ. Nhưng đó là ý chính của nó. Index vào của bạn mảng kết hợp, a.k.a. Bảng băm, xem nếu có một giá trị ở đó, nếu nó được thiết lập là đúng, và nếu như vậy, return true. Vì vậy, chúng tôi đã chọn ra tất cả sự phức tạp. Vì vậy, loại tâm thổi, phải không? Tôi sẽ không bận tâm hoàn thành nó với dỡ hàng, bởi vì trong fact-- oh, bạn biết những gì? Vâng, chúng ta hãy kết thúc nó với unload. Dỡ bỏ trong một bảng băm có thể nhìn giống như chức năng dỡ bỏ, trả lại. OK như vậy đó là dỡ bỏ. Bởi vì không có gì dỡ bỏ, phải không? Không có malloc. Tôi không đòi hỏi một cách rõ ràng hệ điều hành cho bất cứ điều gì. Tôi chỉ mới bắt đầu sử dụng các biến. Và vì vậy đây cũng là một biểu hiện của tính năng của ngôn ngữ cấp cao hơn. Vì vậy, một lần nữa, hầu hết các thuật ngữ này chúng tôi đã được giao dịch xuống đây C. mức siêu thấp. Bạn có thể nhìn thấy bộ nhớ của máy tính. Bạn có thể chạm vào bất cứ điều gì bạn muốn trong RAM của máy tính, cho tốt hơn hoặc tồi tệ hơn. Up ở đây, chúng ta đang đi từ bỏ quyền lực đó. Nhưng thần của tôi, nhìn như thế nào ít hơn nhiều mã tôi đã viết. Trong thực tế, nếu tôi đã không nói và nói chuyện qua đánh máy của tôi, chúng ta có thể đã được thực hiện với ví dụ này năm phút. Vì vậy, những gì giá được thanh toán? Vâng chúng ta hãy có một cái nhìn. Hãy nhìn xem. Tôi sẽ đi trước và chạy CS50. Hãy để tôi lần đầu tiên đi vào ví dụ ngày nay là nơi Tôi có thư mục các văn bản như trước đây. Tôi sẽ chạy các giải pháp đó nó đi kèm với vấn đề thiết lập năm gọi Speller, mà là trong tài khoản của CS50. Và tôi sẽ chạy nó trên một cái gì đó lớn như King James Bible, chỉ cần để chúng ta thực sự đặt các các giải pháp nhân viên để kiểm tra. Bây giờ đôi khi internet là một chút chậm hơn, nhanh hơn một chút, có thể mất một thời gian để di chuyển. Nhưng phải mất tổng cộng 0,56 giây kiểm tra chính tả King James Kinh Thánh bằng cách sử dụng các giải pháp nhân viên. Vì vậy, khá tốt. Yours có thể chậm hơn nhiều, và đó là hoàn toàn tốt đẹp. Nhưng đó là chính xác ở đây. Vì vậy, đó là giải pháp nhân viên. Nếu tôi đi vào và làm sạch các phiên bản PHP. Và tôi sẽ phải làm một ít như baking chương trình điều. Chúng tôi đang đi để lấy mã tôi đã viết trước đó, do đó, nó là hoàn toàn chính xác. Bởi vì đoạn code tôi viết không phải là đi là hoàn toàn chính xác chỉ là bây giờ. Nhưng nếu tôi chạy phiên bản PHP, những gì tôi phải từ bỏ ngày hôm nay? Đã cho tôi năm phút để thực hiện p đặt năm, tôi yêu cầu bồi thường. Giá những gì tôi đã trả tiền? Yeah. Đung Speed. SPEAKER 1: Tốc độ. Ý anh là gì? Đung Nó sẽ mất nhiều thời gian. SPEAKER 1: Tất cả các quyền. Chúng ta hãy xem. Nó sẽ mất nhiều thời gian, không để viết, nhưng để chạy nó. Yeah. Vì vậy, hãy cố gắng này. Vì vậy, ở đây tôi sẽ đi trước và làm PHP của Speller, và bởi vì các tập tin của gọi Speller. Vì vậy, tôi không chạy từ điển, thu hồi, Tôi đang chạy các chương trình gọi là Speller. Tôi sẽ vượt qua trong cùng một tập tin, King James thứ năm. Nó bay qua. Điều này có thể chỉ là tốc độ internet, do đó, không đọc quá nhiều vào đó. Nhưng nó cảm thấy còn chắc chắn. 1,26 giây. Bây giờ mà vẫn còn khá chết tiệt nhanh chóng, đúng không? Và lý do duy nhất mà cảm thấy như giống như ba hoặc bốn, hoặc năm giây, đó chỉ là vì internet đã bị chậm. Thời gian máy tính dành là 1,26 giây, so với tôi nghĩ 0.56. Vì vậy, nhiều hơn gấp hai lần chậm. Bây giờ mà vẫn còn khá darn nhanh, nhưng đó là một biểu hiện của, thực sự, mà giá chính xác. Bởi vì chúng tôi đang giải thích trong các dòng mã của dòng, và rằng chương trình PHP là đọc sách của tôi Mã trên xuống dưới, từ trái sang phải, nó đã làm suy nghĩ nhiều hơn. Nó phải loại chuyển đổi nó bên trong của bản thân để các máy tương ứng mã trên bay, do đó để nói chuyện, mặc dù các cơ là một chút khác nhau. Thay vì chỉ ăn đến Intel CPU số không nguyên và những người thân mà nó hiểu được nguyên bản. Vì vậy, hoàn toàn, bàn tay xuống, chúng tôi đã phải trả giá. Và mã được viết bằng một ngôn ngữ như PHP xu hướng chậm hơn. Nhưng thần của tôi. Vì vậy, bây giờ khi tôi kiểm tra chính tả của tôi tập tin, tôi dành thêm 0,7 hay như vậy giây so với 20 giờ để thực hiện một nhanh hơn kiểm tra chính tả, phải không? Đó là một loại thương mại giảm. Và nếu bạn chỉ bắt đầu p thiết lập năm, có thể không phải 20 giờ. Có thể là ít hơn rất nhiều đó. Nhưng đó là một thương mại giảm, cho thực tế. Và nếu bạn đang chạy mã trên thực sự lớn bộ dữ liệu, hoặc thậm chí trên phần cứng cũ, những loại khác nhau chắc chắn có thể thêm lên. Bất kỳ câu hỏi như vậy, cho đến nay? Yeah. Đung [Không nghe thấy] SPEAKER 1: Xin lỗi, có thể bạn nói nó một lần nữa? Đung [Không nghe thấy] SPEAKER 1: Bạn đang bỏ thời gian. Vâng, vì vậy yeah. Bạn đang tiết kiệm thời gian bằng cách không phải biên dịch nó, nếu đó là những gì bạn đang yêu cầu. Và quả thực, trong CS50, hầu hết các chương trình, mặc dù họ có thể mất một thời gian để viết, họ đang tương đối ngắn. Vài chục, vài trăm dòng mã, và vì vậy họ biên dịch khá nhanh chóng. Nhưng khi bạn bắt đầu viết chương trình lớn hơn, như nếu bạn Microsoft hoặc bạn Google và viết chương trình thực sự lớn trong C, C ++ hay, hoặc biên dịch tương tự ngôn ngữ, có thể mất nhiều giây, hoặc thậm chí vài phút hoặc lâu hơn để biên dịch hàng triệu dòng mã. Và có quá, mà Chênh lệch này sẽ thêm lên. Và trên thực tế, một khi chúng ta quá trình chuyển đổi, cùng ngày ngày hôm nay, để lập trình web bằng cách sử dụng PHP, bạn sẽ tìm thấy nó chỉ là quá nhiều thêm vui để viết mã khi bạn không phải làm những ngu ngốc các bước như thay đổi thiết bị đầu cuối của bạn cửa sổ, kiểu make hello, tái chạy nó, lại cửa sổ. Chỉ cần như vậy nhiều ngu ngốc bước cơ khí chỉ nhận được trong cách làm sự thú vị, vui vẻ làm việc. Và thực sự chúng ta vứt đó đi với PHP. Và chúng ta có thể tương tác với nó nhanh hơn. Yeah. Đung [Không nghe thấy] SPEAKER 1: Chắc chắn rồi. Tôi có thể làm rõ những gì nó phương tiện có thể giải thích? Khi bạn biên dịch một ngôn ngữ như C, nó đi xuống như chúng ta đã nói đến máy mã, số không và những người thân. Và Intel đã quyết định năm trước đó mẫu nhất định của số không và những người thân đại diện bổ sung, trừ, hoặc in, hoặc các hoạt động cơ bản khác. Trong thế giới của một ngôn ngữ giải thích như PHP, hoặc JavaScript, hoặc Python, hoặc Ruby, hoặc chùm những người khác, thay vì một người nào đó đã viết một interpreter-- trong trường hợp này, nó cũng được gọi là PHP, giống hệt với tên của language-- mà chủ yếu có một vòng lớn ở trong đó mà lặp trên tất cả các dòng mã mà tôi ăn nó như đầu vào, như xin chào dot PHP, hoặc chấm điển PHP. Và sau đó bạn có thể nghĩ lớn của họ vòng lặp là có rất nhiều điều kiện. Và những điều kiện nói, nếu con người đã viết các từ khóa cho, bắt đầu làm của mình mã một lần nữa và một lần nữa. Hoặc nếu con người có viết những dòng mã, nếu, chỉ thực hiện của họ dòng tiếp theo có điều kiện. Vì vậy, nó thực sự như phiên dịch nó trong một nghĩa nào đó, dòng người Dòng, và rằng chỉ cần có thời gian. Phải mất phí. Và đó là một price-- tốt question-- chúng tôi phải trả. Vì vậy, chúng ta hãy làm một bản demo đó là một chút ấn tượng hơn. Có, tôi muốn nói, một sân chơi bóng chày này một xác suất 90% thất bại khủng khiếp, nhưng bạn sẽ ngạc nhiên với 10% xác suất. Vì vậy, mỗi năm chúng tôi cố gắng để làm điều này, nhờ đó chúng ta cố gắng để viết một chương trình mà đi qua Vấn đề đặt không, mà bạn đã gửi số điện thoại của bạn và một rất nhiều thông tin cá nhân khác, và chúng tôi lập trình gửi cho bạn một tin nhắn văn bản. Và sau đó điện thoại của tất cả mọi người bắt đầu bíp hoặc rung, và nó chỉ là tuyệt vời, vì tốt, nhìn vào những gì các máy tính có thể làm. Điều này hiếm khi làm việc một cách chính xác có vẻ như, trong phần lớn bởi vì tôi thường được danh sách đen bởi Gmail hoặc một số dịch vụ khác cho thực sự cố gắng để làm điều này trên quy mô. Nhưng điều buồn cười quá, vì chúng ta không có tất cả mọi người ở đây ngày hôm nay, Thực tế thú vị khi chúng tôi cuối cùng cố gắng này hai năm trước đây, Tôi nghĩ rằng tôi đã viết một chương trình mà ngồi trong một vòng lặp iterating trên tất cả các học sinh trong lớp, và mỗi người trong số họ một tin nhắn văn bản, và nó nói cái gì đó như thế, tại sao không phải là bạn trong bài giảng? Tình yêu, CS50 bot. Bạn không có ý tưởng bao nhiêu xin lỗi và email loại đau đớn Tôi đã nhận được phản ứng từ n trừ đi 100 người đã không ở đây hôm đo. Và thậm chí hài hước, đáng xấu hổ hơn story-- bạn đã biết, chúng ta hãy đặt nó ra khỏi đó. Nó đã trên video một vài năm trở lại. Vì vậy, bạn sẽ sớm nhìn thấy tôi viết một vòng lặp for, theo đó nó rất dễ dàng để viết một lỗi trong đó cho vòng lặp, như vậy mà lần đầu tiên thông qua các vòng lặp, bạn gửi một tin nhắn văn bản. Lần thứ hai thông qua các vòng I nên đã gửi một tin nhắn văn bản hơn, và sau đó một trong nhiều văn bản hơn tin nhắn, và nhiều hơn nữa. Nhưng hóa ra, nếu bạn thực hiện một lỗi đánh máy khi lập trình, đôi khi bạn có thể viết chương trình gửi một tin nhắn văn bản, sau đó hai tin nhắn văn bản, sau đó ba tin nhắn văn bản đến tất cả mọi người những người đã nhận được một tin nhắn văn bản. Và như bạn biết, làm một cái gì đó, cộng với một cái gì đó, cộng với một cái gì đó, cộng với một cái gì đó, là O lớn của rất nhiều các tin nhắn văn bản, hoặc n bình phương, hoặc $ 0,10 một tin nhắn văn bản, $ 20,000. Rất may tôi nhấn Control-C trước đó đã xảy ra, nhưng tôi đã nợ ít nhất một của những người tiền nhiệm của bạn $ 20 cho 200 một số tin nhắn văn bản lẻ mà, không chỉ đi đến điện thoại của mình, nhưng cũng nó giống như một điện thoại cũ lật do đó, nó muốn đẩy ra khỏi mình bộ nhớ mỗi văn bản cá nhân khác tin anh đã thực sự nhận được. Vì vậy, chúng tôi có một mục tiêu ngày hôm nay, không phải để làm điều đó. Có thể bật chế độ máy bay. Được rồi. Vì vậy, chúng ta hãy đi vào một chương trình tại đây callled-- mà tôi sẽ gọi cho văn bản chấm PHP. Và trước, tôi đã có hai tập tin ở đây. Tôi đã thực hiện một tập tin chỉ với nhân viên, đó là đã nhận tất cả các thông tin của nhân viên, tất cả các tên từ trang web của khóa học. Và sau đó bây giờ tôi chỉ cần đặt một số con số giả 555-1212. Vì vậy, những sẽ không thực sự đi bất cứ nơi nào. Nhưng hãy chú ý bên trong của tập tin CSV này, mà chúng ta đã nói về một thời gian ngắn trước trong bối cảnh các tập tin IO. Một tập tin CSV là gì? Dấu phẩy tách biến. Và đây là loại giống như một rất cơ sở dữ liệu trọng lượng nhẹ, nếu bạn sẽ. Có loại loại bốn cột trong tập tin này, và có răng cưa, nhưng các dấu phẩy cơ bản đại diện cho các cột trong tập tin. Cột đầu tiên là TF hoặc tên của CA. Cột thứ hai là tên cuối cùng của họ. Cột thứ ba là số điện thoại của họ. Và cột thứ tư dường như is-- cột thứ tư là rõ ràng những gì? OK, vì vậy nó là tàu sân bay của họ. Vì vậy, Verizon, Sprint hay, hoặc những gì không. Và nếu tôi misspoke trước đó, CSV. Dấu phẩy tách giá trị là CSV đây. Vì vậy, những gì tôi có thể làm gì với điều này? À đây chỉ là một tập tin văn bản lớn, và nó là loại dài, phải không? Như thế này là sẽ là loại gây phiền nhiễu. Và hóa ra, mặc dù, rằng nếu tôi muốn gửi một tin nhắn văn bản đến, chúng ta hãy Alex nói ở đây. Hãy để tôi đi vào trình duyệt của tôi và thoát khỏi chế độ toàn màn hình chỉ để tôi có thể chuyển đổi qua lại. Hóa ra, chúng ta hãy xem, nếu tôi đi trong ở đây, và đăng nhập vào Gmail, tất cả các quyền. Đừng nhìn vào phần này. Chỉ cần tôi có thể nhìn thấy. tất nhiên các livestream thể vẫn nhìn thấy những gì tôi đang làm. Được rồi. Vì vậy, đây chỉ là Gmail với Tài khoản của John Harvard. Vì vậy, nếu tôi muốn gửi một tin nhắn văn bản với Alex, Tôi tất nhiên có thể soạn một tin nhắn. Và hóa ra, và tôi đã thử nghiệm nó với Alex trước đây, vì vậy bạn có thể gắn thêm một miền nào đó đặt tên cho các số điện thoại của người dân, vì có tồn tại trên thế giới điều được gọi là tin nhắn SMS đến email gateway. Đó là một cách nói tất cả chúng ta những người có điện thoại di động có số điện thoại, tất nhiên, có lẽ là cho tàu sân bay của bạn, một hậu tố nhất định như tại Vtext.com cho tin nhắn văn bản Verizon dot com, bạn có thể nối thêm của bạn riêng số điện thoại cá nhân, và sau đó bạn hoặc bạn bè, hoặc cha mẹ của bạn có thể văn bản bạn tại địa chỉ cụ thể. Và Verizon có một máy chủ, một email máy chủ, mà khi nhận được email này, nhìn vào phần số và sau đó sử dụng bất cứ ma thuật đặc biệt ngành công nghiệp họ phải thực sự gửi nó đi qua sóng phát thanh để tế bào đặc biệt của bạn điện thoại. Bây giờ điều này là rất tốt vì tôi không thực sự biết làm thế nào để gửi một tin nhắn văn bản hoặc viết code nào cho điện thoại di động của tôi, và bạn có thể làm chính xác điều đó cho một dự án cuối cùng, nhưng bây giờ tất cả Tôi có là máy tính xách tay của tôi ở đây. Vì vậy, tôi muốn để lặp qua CSV tập tin, đường thẳng, của dòng, dòng, dòng, lấy mỗi số điện thoại của nhân viên, và cung cấp dịch vụ và chương trình khác của họ, tiếp nhau, đó là, kết nối điện thoại số với các tên miền thích hợp và sau đó gửi qua email. Vì vậy, đó là rất nhiều bước. Và may mắn làm điều đó trong C. Nó là một cơn ác mộng của một tình huống để mở một tập tin, để đọc nó dòng, bởi dòng, bởi dòng, như bạn đang nhìn thấy, hoặc có thể sớm nhìn thấy với vấn đề thiết lập năm, nếu không Vấn đề đặt bốn, và sau đó để tự động nối hai chuỗi với nhau, bởi vì trong C, để mất hai chuỗi và kết hợp chúng, làm những gì bạn tối thiểu cần phải làm nhiều khả năng nhất? Bạn cần khai báo bộ nhớ nhiều hơn, phải không? Và yêu cầu, malloc, tôi có thể có nhiều bộ nhớ hơn? Vì vậy, tôi có thể đặt một nửa của này ở đây, một nửa trong số này ở đây. Nó chỉ là rất nhiều bước. Và bởi thời điểm đó bạn đã mất lãi suất trong bản demo chút ngu ngốc nơi bạn làm cho điện thoại tiếng bíp của tất cả mọi người. Hãy làm việc này của PHP phong cách, nhờ đó chúng ta chỉ bắt đầu sử dụng nhiều hơn là bồn rửa nhà bếp. Và ý tưởng về cơ bản giống nhau, nhưng chúng tôi không phải lo lắng quá nhiều về điều đó mức độ thấp hơn. Vì vậy, chúng ta hãy xem làm thế nào tôi có thể đi về việc này. Và chỉ cần như vậy mà tôi không lặp lại sai lầm trong quá khứ, Tôi đã viết một số ghi chú cho bản thân mình ở đây. Và chúng ta hãy xem nếu tôi có thể đi bộ chúng tôi thông qua một số bước cơ bản, và sau đó vì thời gian của chúng tôi sẽ có lẽ cắt giảm một số góc cuối cùng. Tôi sẽ đi trước và làm mở khung PHP để bắt đầu tập tin này. Và tôi sẽ đi trước và làm điều này. Nộp xử lý, như bạn sẽ sớm nhìn thấy, thực sự gọi một chức năng gọi là f mở. Và hãy nhớ điều này mở ra một file. Và các báo, unquote, r có nghĩa là gì, một lần nữa? Chỉ cần mở nó để đọc. Bây giờ trong p set cho, bạn đã làm điều này. Và xử lý có thể là bất cứ điều gì, fu, bar, bas, bất kỳ tên biến. Nhưng nói chung là một máy tính nhà khoa học sẽ gọi một tập tin mở, đem lại cho bạn một tập tin xử lý, một cái gì đó để giữ lại để nói chuyện. Tôi chỉ cần đi làm một số kiểm tra lỗi. Vì vậy, nếu xử lý là sai, chỉ thích trong C, tôi sẽ làm một cái gì đó như thế, không thể mở tập tin, dấu gạch chéo ngược n. Và sau đó tôi chỉ cần đi để đi trước và thoát. Và hóa ra, trong PHP, Tôi không phải bên trong một hàm. Không có chức năng chính ở đây. Vì vậy, tôi không trở về, mỗi se. Tôi thoát. Trong đó chủ yếu là những điều tương tự. Và tôi xuất cảnh với một y lẽ. Một chỉ có nghĩa là một lỗi của một số loại. Đó là không, vì vậy nó là một lỗi. Tất cả các quyền, do đó, nếu tôi xuống đây bây giờ trong chương trình của tôi, tôi đã mở các tập tin. Tôi sẽ đi trước và tuyên bố một mảng gọi là địa chỉ, và trong C tôi sẽ phải biết kích thước của mảng trước, phải không? Hoặc tôi sẽ cần phải khai báo này là một con trỏ, và sau đó sử dụng malloc. Và sau đó mỗi lần tôi đọc thông qua một hàng khác trong tập tin, Tôi sẽ cần để malloc nhiều bộ nhớ, malloc bộ nhớ hơn. Đó là một cơn đau ở cổ. Và may mắn thay, PHP, và Ruby, và Python, và JavaScript, họ sẽ phát triển mảng của bạn cho bạn tự động. Không malloc hơn. Quản lý bộ nhớ không còn nữa. Các máy tính của công việc đó. Nhưng giá mà bạn phải trả. Đó là một chút chậm hơn. Và đối với một chương trình như thế này chúng tôi sẽ không để ý. Chúng tôi sẽ gửi 100 tin nhắn văn bản. Ví dụ sẽ không cảm thấy nó. CNTT thực sự chỉ bắt đầu vấn đề ngôn ngữ của bạn lựa chọn khi dữ liệu của bạn hoặc các chương trình của bạn có được thực sự, thực sự khá lớn, như sẽ là trường hợp nhiều hơn như vậy với web dựa trên các công cụ của chúng tôi. Nhưng bây giờ chúng ta hãy giả mạo trước. Trong khi nó chỉ ra có một hàm trong C được gọi là f được CSV. Tập tin CSV có được, mà phải mất một nộp handle như là đối số của nó, và nó tiến hành sau đó, liên tiếp, bởi hàng, của hàng, để đọc trong một hàng. Vì vậy, nó chỉ cần đọc một dòng các văn bản từ tập tin. Nhưng những gì tốt đẹp về chức năng này, nó không chỉ đưa cho tôi một dòng văn bản. Nó tìm kiếm những dấu phẩy, và phân tích các dòng. Và để phân tích các dòng phương tiện để chia nó trên các giá trị nhất định trong bối cảnh này. Nói cách khác, ký hiệu đô la hàng là một biến đó là sẽ cung cấp cho tôi một loạt các chỉ số. Điều này là có được sự Cột đầu tiên trong CSV của tôi. Đây sẽ là lần thứ hai cột, điều này là có được một phần ba, và điều này sẽ là thứ tư. Bởi vì thu hồi, và Excel không hợp tác thời gian qua chúng tôi đã làm điều này, nhưng nếu tôi tải cán bộ chấm CSV. Rất tiếc, không đổi tên. Nếu tôi tải cán dot CSV, và cố gắng mở nó, Tôi đã registered-- oh tôi không cập nhật Excel kể từ lần cuối cùng. Bạn sẽ thấy rằng trong đội ngũ nhân viên chấm CSV, tôi có bốn cột. Vì vậy, khi tôi đọc trong hàng đầu tiên cho Abby đây, đồng đô la dấu hiệu hàng 0 là Abby, đồng đô la dấu hiệu hàng là một trong những Lyons, đồng đô la dấu hiệu liên tiếp hai là số của mình, và sau đó hãng điện thoại của cô. Vì vậy, đó là tất cả. Và đó là tốt đẹp, bởi vì tôi không phải bây giờ tìm ra nơi mà tất cả những người đang thực sự là dấu phẩy. Vì vậy, tôi sẽ đi trước và làm điều này, được đưa ra định nghĩa đó, Tôi sẽ nói rằng tên của cô là trong khung hàng không, như đã hứa. Và tôi sẽ grab-- và trên thực tế, bạn biết những gì? Tôi sẽ không phải lo lắng về Tên của cô, trong trường hợp này. Tôi sẽ giữ nó đơn giản. Tôi sẽ làm số của mình là trong khung liên tiếp hai, tôi nghĩ. Và tàu sân bay của cô là ở đâu? Row ba, một trong hơn. Vì vậy, không có gì mới ở đó. Nó chỉ không lập chỉ mục vào một mảng. Và bây giờ, tôi sẽ làm như sau. Nếu bên vận chuyển bằng bằng AT & T-- Tôi chỉ cần đi để có một loop-- Tôi muốn tạo ra một email địa chỉ đó trông như thế này. Nó sẽ là 617-555-1212 tại, nó là gì, text.ATT.net, là những gì tôi muốn làm. Vậy làm thế nào để tôi làm điều này? Tôi sẽ làm như sau. Địa chỉ của cô là có được số của mình, và bây giờ, hãy để tôi đi trước và làm điều này. Đây là một số cú pháp funky. Tôi có thể làm các phần trăm trick, nhưng tôi thực sự có thể chỉ cần làm điều này. Vì vậy, đây là một điều PHP, nhưng chúng ta hãy xem xét những gì tôi đang làm. Dollars ký địa chỉ trên bên trái, chỉ cần một biến. Hãy cho tôi một biến. Tôi không cần phải xác định loại. PHP sẽ tìm ra nó. Ở phía bên tay phải, các kiểu dữ liệu là gì trong đó toàn bộ điều trên phía bên tay phải không? Trông giống như một chuỗi, bởi vì có đôi trích trên bên trái và bên phải. Bây giờ có một số cú pháp mới sôi nổi ở đây. Có các dấu ngoặc, và số ký hiệu đô la. Nhưng hãy đoán cú pháp đó là gì có thể nói với PHP để làm gì cho tôi? Yeah. Chỉ cần chèn các giá trị đó. Vì vậy, không có phần trăm s. Chúng ta có thể sử dụng in f, hoặc s in f hoặc một cái gì đó giống như nó, nhưng PHP và rất nhiều ngôn ngữ cấp cao hơn, bạn sẽ thấy rằng bạn có thể làm điều tương tự về mặt chức năng, có thể sáu cách khác nhau. Và do đó, nó bắt đầu trở nên một vấn đề thiết kế hoặc phong cách. Vì vậy, đây chỉ là một cách nhìn khó hiểu nói, đưa cho tôi một địa chỉ email, nhưng plug-in các số trong giữa các dấu ngoặc nhọn. Và các dấu ngoặc nhọn sẽ không kết thúc trong địa chỉ cuối cùng. Bây giờ chúng ta có thể bỏ qua một số những dòng này vì lợi ích của thời gian. Vì vậy, nếu một tàu sân bay tương đương bằng verHorizon-- whoops, Verizon-- Tôi muốn làm điều gì đó rất giống nhau, nơi địa chỉ nhận, quote, unquote, số tại text.ATT.net. Và sau đó tôi có thể làm cùng một loại điều cho phần còn lại của các tàu sân bay. Nhưng tôi sẽ chỉ làm dấu chấm, dấu chấm, dấu chấm cho bây giờ. Và bây giờ chúng ta hãy giả sử rằng Tôi muốn thêm mảng, đẩy. Tôi muốn thêm vào mảng, gọi là địa chỉ. Địa chỉ này, đây là cách bạn thêm một cái gì đó cho một mảng trong PHP. Bạn không cần phải làm malloc. Bạn không cần phải thay đổi kích thước mảng. Bạn chỉ cần nói mảng, push. Điều gì làm bạn muốn push-- gì mảng Bạn muốn đẩy một cái gì đó lên? Địa chỉ. Những gì bạn muốn đẩy vào địa chỉ? Địa chỉ nhà. Và trên thực tế, nếu bạn thực sự muốn được thông minh, một số cú pháp đường cho điều này, có thể nói, mà chỉ có nghĩa là làm thế nào bạn có thể làm điều này trong cách đẹp hơn, sẽ là để làm điều này. Điều đó quá có tác dụng phát triển các địa chỉ mảng bằng kích thước một, và sau đó tiếng tom rằng thêm địa chỉ email vào nó. Yeah. Đung [Không nghe thấy] SPEAKER 1: Một lỗi đánh máy trên khác if-- oh, hãng vận chuyển. Vậy là được rồi. Nó cũng sẽ không giống như thất bại của tôi để thực hiện một phần của chương trình này sau này. Nhưng cảm ơn bạn cho việc đánh bắt. Thêm một con rệp. Cam on. Chúng tôi muốn đây là Vtext.com. Vâng. Được rồi. Vì vậy, nơi vấn đề này thì chúng ta? Chúng tôi đã viết mã để mở file. Chúng tôi có một vòng lặp để lặp so với các hàng trong tập tin. Chúng tôi có mã này đã tăng thêm của tôi mảng, một tại một thời điểm, một cách chính xác địa chỉ email có định dạng. Vì vậy, tất cả những gì thực sự vẫn là gửi một email tới mỗi người. Vì vậy, tôi đã đi trước và chuẩn bị sẵn sàng bản thân mình như sau. Những gì tôi sẽ làm ở đây và chúng ta hãy is-- đi trước và bỏ qua một số mã thực tế, mà trông như thế này. Vì vậy, đây là pre-nướng phiên bản tôi đã viết trước đó. Và nhận thấy tôi đã hoàn thành thực hiện Sprint. Tôi đã hoàn thành việc thực hiện T-Mobile. Tôi đã hoàn thành việc thực hiện Virgin Mobile. Và tôi sẽ xin lỗi trước. Có một vài hãng mà một số học sinh trong lớp có mà tôi đã không bận tâm liệt kê trong điều kiện if đây. Vì vậy, không phải tất cả các văn bản sẽ đi ra ngoài. Nhưng chúng ta hãy xem những gì khác tôi cần phải làm. Tôi đóng tập tin, chỉ như trong p đặt bốn. Và đây là cú pháp mới. Và chúng ta sẽ thấy một chút bit này thời gian qua, đặc biệt là với p đặt bảy và tám. Nhưng đây là cú pháp để tạo một loại đặc biệt của cấu trúc. Hóa ra có một thư viện mà đi kèm với PHP, PHP gọi là bưu phẩm. Mục đích của nó trong cuộc sống là để lập trình gửi email. Đó là mã của người khác đã viết rằng làm cho nó dễ dàng hơn cho chúng tôi để gửi email, vì vậy chúng tôi không cần phải giữ đi tới đi lui để Gmail, và dán vào địa chỉ email của người dân. Có một bó toàn bộ đường ở đây đó một cách trung thực, tôi chỉ là loại sao chép và dán từ các tài liệu hướng dẫn. Và trên thực tế, nếu bạn tò mò, tôi để lại tất cả các URL của các tài liệu hướng dẫn trong đoạn code đó chúng tôi sẽ gửi sau. Và nhận thấy rằng trong số những điều tôi đang làm được, tôi nói với thư viện này, sử dụng máy chủ của Gmail, phải không? SMTP chúng tôi nói chuyện ngắn gọn về khi chúng ta là tại Yale về được mail đơn giản giao thức truyền tải. Đó là giao thức các máy chủ sử dụng để gửi email, và that's-- Gmail có một trong những người. Một cổng, đây là số cổng TCP. Nó là tốt nếu bạn chưa thấy 587 trước đây. Chỉ biết rằng từ các tài liệu hướng dẫn. Dưới đây là tên của tôi. Tôi sẽ sử dụng bot CF50. Và trong một khoảnh khắc, tôi chỉ cần đi tới gõ mật khẩu thực tế của bot. Và sau đó xuống đây, chú ý những gì còn lại. Tôi đặt của tôi từ địa chỉ được bot tại CS50.net. Tôi nghĩ rằng tôi sẽ không hối tiếc gửi tin nhắn văn bản đến 800 người nói, nhớ em, tình yêu CS50 bot, có lẽ cho những người không thể làm cho nó ngày hôm nay. Và sau đó trong dòng 76, tôi phải làm gì? Kiểu này trông giống như C. Vì vậy, cho tôi bằng 0, n equals-- giờ đếm là mới. Nó chỉ ra rằng nếu bạn muốn nhận được số thứ trong một mảng, bạn không cần phải nhớ nó nữa. Bạn chỉ có thể yêu cầu một chức năng gọi là đếm, và nó sẽ cho bạn biết có bao nhiêu địa chỉ là trong mảng đó. Và sau đó tôi sẽ để thêm địa chỉ này cho email. Và tôi biết điều này từ sử dụng tài liệu. Có một chức năng add địa chỉ. Và bây giờ nhận thấy có là một phần của cú pháp. Chúng tôi đã nhìn thấy điều này trước khi C. tương tự trong tinh thần. Bạn có thể nghĩ về ký hiệu đô la gửi như là một biến, mà nó được. Nhưng nó là một cấu trúc bên trong của đó là không chỉ tài sản, biến nếu bạn sẽ. Nhưng nó chỉ ra rằng trong PHP, mà là một lập trình hướng đối tượng ngôn ngữ, giống như Java, nếu bạn mất APCS. Dollar dấu mail, nếu bạn muốn đối với: nó cũng có chức năng bên trong của nó, hoặc các phương pháp. Vì vậy, đây là để nói rằng đặc biệt PHP bưu phẩm thư viện, nếu tôi đã có một biến của chúng, nếu tôi muốn gọi một chức năng mà đi kèm với thư viện, cho mục đích của ngày hôm nay, chỉ biết bạn sử dụng các ký hiệu mũi tên. Không có ký hiệu dấu chấm. Nó chỉ là những mũi tên. Nhưng đó không phải là một con trỏ. Nó chỉ là vay mượn từ cú pháp của C. Do đó, gọi thêm địa chỉ bên trong đối tượng của thư viện này hoặc biến. Được rồi. Đây là dòng huyền diệu. Đó là cách tôi gửi một email. Đó là tương đương với việc mở cửa Gmail, gõ nó ra, và nhấn gửi. Nhưng nó sẽ thay vì gửi gửi email đến địa chỉ này, với thân thể này, từ bot CS50. Và bây giờ dòng chính. Dòng này đã vắng mặt trong như 2011 khi tôi nghĩ rằng tôi cuối cùng đã cố gắng này. Đó là dòng có, tất nhiên, xóa các địa chỉ. Vì vậy, một cách logic, nếu tôi không rõ ràng địa chỉ sau mỗi lần lặp đầu tiên gửi email hoặc tin nhắn văn bản đi đến Alice, thứ hai đi vào Alice và Bob, thứ ba đi vào Alice và Bob và Charlie, do đó các sai lầm rất đắt Tôi đã thực hiện trong năm đó. Vì vậy, chúng ta hãy xem. Có bất kỳ câu hỏi trước khi chúng tôi gửi cho bạn tất cả các văn bản nhắn với 10 phần trăm xác suất? Bất kỳ câu hỏi? Được rồi. Hãy cho tôi đi ở đây và thay đổi mật khẩu để những gì cần làm việc, sẽ có khả năng nhận được danh sách đen của Gmail. Vì vậy, không phải tất cả họ có thể đi ra, kể từ khi họ có thể không thích chúng tôi gửi 800 email trong một vòng lặp cho tất cả cùng một lúc. Kể từ đó không hành vi đặc biệt của con người. Oh, tôi sẽ thay đổi một điều khác. Up ở phía trên, tôi sẽ sent-- thay đổi các tập tin cho sinh viên chấm CSV. Và tôi sẽ không mở cửa này, nhưng đây là một tập tin CSV giống hệt với không 100 nhân viên, nhưng 800 học sinh, chỉ từ Harvard, Yale vì có tháng mười giờ ra trong tuần này. Và nó có vẻ như loại một điều giật để làm cho văn bản tất cả chúng là tại sao họ đang không ở trong lớp học vào kỳ nghỉ. Vậy là được rồi. Chỉ là sinh viên Harvard hôm nay bên trong của tập tin đó. Và bây giờ chúng ta hãy quay trở lại đến cửa sổ thiết bị đầu cuối của tôi. Tôi là loại thần kinh. OK nên bây giờ tôi sẽ đi vào thư mục, và văn bản PHP dot PHP. Làm thế nào về một tình nguyện viên dũng cảm? Vì vậy, tôi không muốn điều này ở tôi. OK, đi lên trên. Tên bạn là gì? MAYA: Maya. SPEAKER 1: Maya. Nào lên, Maya. Được rồi. Hãy xem, nếu công trình này. Tôi đưa địa chỉ email riêng của tôi trong file-- số điện thoại riêng của tôi trong tập tin, vì vậy mà tôi hy vọng sẽ nhận được một là tốt. Rất hân hạnh được biết bạn. MAYA: Tương tự như vậy. SPEAKER 1: Vì vậy, tất cả các bạn phải làm là nhấn Enter để gửi 800 tin nhắn văn bản, nếu tôi không vít lên. Tốt đẹp. Có thể mất một thời gian, thống kê, cho đến khi chúng tôi nhận được một email address-- một tin nhắn văn bản đó trong phòng ngay bây giờ. Hãy nán lại xem. Đung [Whistling] SPEAKER 1: Oh, yes. Đung Oh, Gotcha. SPEAKER 1: Đối với các vòng lặp are-- này không phải là chậm vì PHP. Đây là chậm vì Gmail được throttling chúng tôi và không cho phép chúng tôi gửi nhiều hơn giống như một email mỗi giây. Bất cứ điều gì? Đây là một điều khó khăn đối với tôi để kiểm tra tại nhà chỉ có tôi và một điện thoại của tôi, như vậy. Là hy vọng từ các bot? Vâng? Không có? Nói có. Không có? Đó là từ một người bạn? Awkward. ĐƯỢC. Đẹp, chắc chắn nó làm việc mặc dù. Uh oh. Họ black-- oh, chờ một phút. Oh, bạn biết những gì? Xin đợi một chút. Chỉ Maya và I-- Mia, đúng không? MAYA: Maya. SPEAKER 1: Maya, sẽ biết những gì tôi đã làm sai ở đây. Oh, chờ một phút. Tôi nghĩ rằng tôi chỉ gửi 100 tin nhắn văn bản đến 555-1212. Stand by. Tôi không thể thắng bất cứ năm nào. ĐƯỢC. Maya? Fix rằng trong sản xuất bài. Khỉ thật! Sau đây từ địa chỉ. OK, stand by. Lấy làm tiếc. Thật đau đớn mỗi năm. OK, một khoảnh khắc. Điều này là tốt. Thay vào đó tôi sẽ làm điều này. Địa chỉ in. OK, stand by. Địa chỉ in ấn, khung i. Yeah, tôi thích điều đó. Dollar sign-- OK tôi sẽ giải thích những gì tôi làm trong một thời điểm, sau khi tôi đã chạy này. Hang năm. OK, ở đây chúng tôi đi. Tôi có just-- và tôi không muốn để hiển thị số điện thoại của tất cả mọi người, nhưng Maya có thể xác nhận với một cái gật đầu của người đứng đầu, rằng cô nhìn thấy tất cả mọi người số điện thoại trong lớp rằng tôi sẽ sao chép vào một chương trình gọi là Gmail. Và nếu trong Gmail, những gì chúng tôi muốn nói không? Nhớ bạn. Love-- đó không phải từ tôi. Tôi thậm chí còn không nhấn gửi. Vì vậy, chúng ta hãy đi trước và làm này, nếu tôi có thể phóng to. ĐƯỢC. Vì vậy, tôi đang sử dụng một chương trình gọi là Gmail bây giờ. Nếu Maya, bạn muốn nhấp vào nút Send, chúng tôi sẽ mô phỏng những gì mà mã nên đã làm. Bất cứ điều gì? [Tiếng bíp] Đung Yep. SPEAKER 1: Có? Sự cứu rỗi? Đung Yep. SPEAKER 1: Miss you. Và tôi sẽ gửi phần còn lại. Tôi đã gửi một nửa bởi vì tôi đã không nghĩ rằng Gmail sẽ cho phép những người đi qua. Vì vậy, chỉ cần nhớ, hôm nay là ngày mà bạn học được rằng tôi có thể sử dụng Gmail. Đó là kinh hoàng. Một tràng pháo tay lớn để Maya. Cam on. Tất cả các quyền, như vậy. cái gì [Tiếng bíp] Chúng tôi có một vài tiếng bíp, có? Được rồi. Bây giờ tôi sẽ nhận được 700 thực sự email không hạnh phúc trở lại từ các bạn cùng lớp. Vì vậy, ít nhất chúng ta sẽ thấy nếu đó là giá trị nó. Vì vậy, những gì đã xảy ra? Tôi sẽ tìm ra những gì đã đi sai sau khi thực tế, nhưng chỉ cần nhìn cách dễ dàng nó đã làm điều đó trong PHP. Vì vậy, những gì chúng ta có thể thực sự làm bây giờ mà chúng tôi có biểu cảm này của PHP. Đó was-- đó thật kinh khủng. Được rồi. Vì vậy, đó là những gì nên đã đi ra ngoài. Điều này đã được tôi thử nghiệm sáng nay trên của tôi điện thoại, ảnh chụp màn hình thực tế của điện thoại của tôi. Nhưng bây giờ chúng ta hãy xem xét tại sao chúng tôi đang thực sự giới thiệu tất cả các công cụ này ở nơi đầu tiên. Vì vậy, mục tiêu là không để viết các chương trình này được viết ở dòng lệnh, phải không? Vì vậy, tôi đã viết một đơn giản xin chào chương trình, tôi đã viết một chương trình nhỏ mà thực hiện điều kiện, và sử dụng một dòng đọc và vv. Và theo lý thuyết, tôi chỉ viết một chương trình để có thể gửi 800 tin nhắn văn bản, cho hay phải mất 800. Và chương trình đó là tất cả vẫn chạy tại dòng lệnh. Và đó là tất nhiên không phải là web, phải không? Mục tiêu bây giờ là để bắt đầu sử dụng những gì tôi yêu cầu bồi thường là một dễ dàng hơn để sử dụng ngôn ngữ, dám nói một nhiều hơn ngôn ngữ mạnh mẽ về các tính năng đi kèm với nó, để bắt đầu viết code mà tạo ra các trang web. Vì vậy, thời gian trước và tuần cuối cùng, chúng tôi nói chuyện về HTTP và HTML. Và những gì tốt đẹp về HTML là nó chỉ là văn bản thuần túy. Và chắc chắn là văn bản cái gì mà bạn có thể in bằng nghĩa đen gọi in f chức năng, hoặc các chức năng in. Và quả thực, đó là những gì PHP là bây giờ đi để cho phép chúng ta làm. Vì vậy, một trong những ví dụ chúng tôi có trong mã nguồn của ngày hôm nay, thêm vào một số mã mà tôi đặt lên đó một thời gian trước đây, chúng tôi có các chương trình như thế này chẳng hạn. Froshims, hoặc Sinh viên năm nhất Thể thao trong thể thao, đã thực sự một trong những extracurriculars đầu tiên Tôi đã tham gia với năm trước. Và bạn cùng phòng của tôi và tôi, với một số trẻ em khác trong trường, được sử dụng để chạy chương trình froshims. Tôi nhận được tin nhắn văn bản của tôi bây giờ. Bây giờ vì vậy chúng tôi, trở lại trong ngày, vì vậy đây là 1996 hoặc như vậy, đã có một internet, nhưng không có process-- có Không có trang web cho froshims. Và vì vậy nếu bạn muốn đăng ký bóng đá hay bóng chuyền hay bất cứ điều gì, bạn sẽ điền vào điều này được gọi là một mảnh giấy, và bạn sẽ đi bộ qua Harvard sân, và bạn sẽ trượt vào khe mail của giám thị, người là trong Wigglesworth, một trong những ký túc xá. Và đây là bạn đã đăng ký. Và người đó sẽ sau đó soạn một email đến bạn bằng tay, giống như tôi chỉ cần làm ở đây với Maya, và sau đó bạn sẽ được xác nhận như đã được đăng ký. Vì vậy, điều này giống như thấp treo trái cây, do đó, để nói chuyện. Đó là loại ngu ngốc mà chúng tôi đã sử dụng giấy cho điều này. Tôi muốn chúng tôi có thể chỉ cần đi trên một trang web, hoặc có các tân sinh viên đi trên một website, đăng ký cho thể thao, và chỉ tự động hóa rất nhiều các công cụ này bằng cách đặt tên và email của họ và vv vào một cơ sở dữ liệu. Và trên thực tế, phiên bản đầu tiên của các trang web, sử dụng HTML siêu xấu xí, có thể nhìn một cái gì đó như thế này. Đó là thực sự, trớ trêu thay, nhiều lúng túng tìm kiếm hơn trở lại này sau đó. Nhưng tôi sử dụng một ngôn ngữ lập trình. Không PHP, nhưng thay vì gọi là Perl, mà là một ngôn ngữ cũ, nhưng rất tinh thần tương tự. Và tôi chỉ hoàn toàn dạy cho bản thân mình. Và nó đã cho tôi một thời gian để con số nó ra, hỏi rất nhiều câu hỏi của bạn bè. Nhưng những ý tưởng có hoàn toàn giống nhau. Bởi vì những gì PHP đã thực sự thiết kế không có các công cụ dòng lệnh chúng tôi chỉ chơi với, nhưng đối với lập trình web. Nó thực sự gắn trong tính năng của nó thiết lập các trang web, như sau. Đây là froshims. Và nếu tôi muốn đăng ký theo hình thức này, này là khá xấu xí, chắc chắn, nhưng hãy để tôi đi trước và là một học sinh kém thoải mái, và bất cứ môn thể thao cho Matthews, bấm vào Đăng ký. Những gì tôi muốn có thể làm là gửi thông tin từ một hình thức, không để máy chủ của Google như chúng tôi đã làm thời gian qua, hoàn toàn gian lận bằng cách sử dụng phụ trợ của họ, tôi muốn thực hiện các mã phụ trợ của riêng tôi. Có nghĩa là ghi PHP mã mà sống tại một URL rằng dữ liệu mẫu có thể được gửi đến. Và sau đó mã của bạn, viết bằng PHP trên máy chủ, sau đó có thể đáp ứng mà người dùng nhập vào. Giống như tên gọi của mình, hoặc mức độ thoải mái, hoặc ký túc xá, và sau đó làm một cái gì đó với nó. Trong trường hợp này, tôi chỉ ngớ ngẩn in nó ra như văn bản, mà không phải là tất cả những gì đẹp. Nhưng bạn có thể chắc chắn tưởng tượng, nếu bạn biết HTML, và bạn sẽ sớm biết làm thế nào để tạo ra HTML với f in, và in ấn, và các chức năng tương tự, bạn có thể chắc chắn tạo ra một trang web đẹp hơn mà nói, hey David, bạn đang đăng ký. Bạn là một ít thoải mái sinh viên từ Matthews, phải không? Bạn chỉ có thể sử dụng một bó toàn bộ% ses, hoặc các dấu ngoặc nhọn và ký hiệu đô la ký hiệu tôi đã sử dụng một thời gian trước đây, để tạo ra văn bản đó là người dùng thân thiện hơn cái này. Vì vậy, chúng ta hãy nhìn vào một tập tin này. Froshim không điểm PHP trông như thế này. Khi tôi tải lại CS50 IDE, zero froshim trông như thế này. Đây là froshim không điểm PHP. Và điều gì làm bạn chú ý về tập tin này? Đung [Không nghe thấy] SPEAKER 1: Xin lỗi, to hơn một chút? Đung [Không nghe thấy] Đó là tất cả trong HTML. Và trên thực tế, đó là, bởi vì những gì là thú vị về PHP là nó được thiết kế được, cho tốt hơn hoặc tồi tệ hơn, xen kẽ với mã HTML. Và trên thực tế, mặc dù điều này file, froshim không điểm PHP, có một comment PHP ở đầu của nó, đó là tất cả chỉ là HTML. Nhưng ngược lại, nếu tôi mở ra, chúng ta hãy nói, đăng ký không điểm PHP, mà chỉ có một nhận xét lớn ở đầu trang. Điều này cũng có vẻ gần như hoàn toàn như HTML, ngoại trừ những gì? Line, những gì, 21 có vẻ hơi kỳ lạ. Nhưng nhận thấy tôi đang bước vào chế độ PHP với mở khung dấu hỏi PHP. Sau đó, tôi đã có một số công cụ. Và sau đó vào cuối của dòng đó gần như tôi có, câu hỏi đánh dấu PHP. Và đây là những gì tôi có nghĩa là xen kẽ. Bạn có thể viết HTML mà bạn chỉ muốn máy chủ để nhổ ra. Nhưng nếu bạn muốn làm điều gì đó partway năng động thông qua trang, như chèn tên của tôi hay dorm hoặc mức độ thoải mái, Tôi có thể sử dụng một chức năng như in r, mà là in đệ quy, mà chỉ có nghĩa in ra biến này, định dạng nó tuy nhiên bạn muốn. Nó thực sự không cho mục đích của con người, nó chỉ để gỡ lỗi hoặc mục đích chẩn đoán. Vì vậy, đó là cách tôi đã làm điều đó. Nếu tôi thay vì đi froshims hai dot PHP, nhận thấy rằng các hành động của hình thức này không được đăng ký hành không điểm như PHP old-- trước đó thực sự được. Nhưng nó được đăng ký hai dot PHP. Vì vậy, chúng ta hãy nhìn vào cách này cư xử hơi khác một chút. Nếu tôi đi vào phiên bản hai. Nếu ở đây, nếu tôi đăng ký như David, ít thoải mái, từ ký túc xá của Mathews, ghi danh. Vì vậy, lần này nó nói, bạn được đăng ký, không thực sự. Hãy xem những gì tôi đã làm ở đây. Nếu tôi nhìn vào đăng ký hai chấm PHP, điều này có một số mã PHP hơn. Đó là một chút sạch hơn, mặc dù nó vẫn kết thúc tốt đẹp một chút dài dòng này. Chú ý ở đây. Tôi in ra thẻ HTML của tôi, từ khóa đầu của tôi, thẻ của tôi tiêu đề, người đứng đầu, cơ thể. Và sau đó tôi bắt đầu nói những thứ như vào chế độ PHP. Và vì vậy thẻ đó, mở khung Dấu hỏi PHP-- PHP nói, hey, máy chủ, execute-- giải thích các công cụ sau đây như PHP cho đến khi bạn nhìn thấy các thẻ kết thúc. Và mặc dù bạn có thể không biết bất kỳ PHP khác hơn là bạn đã nhìn thấy cho đến nay, bạn có thể loại đọc nó khá trực quan. Nếu tên là trống rỗng, hoặc thoải mái là trống rỗng, hoặc ký túc xá là trống rỗng, tôi phải làm gì? Tôi sẽ nói gì cho người dùng? Bạn phải cung cấp tên, thoải mái, và ký túc xá, và vân vân. Khác, tôi nói bạn là đăng ký, cũng không thực sự. Và tôi nói không thực sự bởi vì không có cơ sở dữ liệu. Tôi không làm bất cứ điều gì với dữ liệu. Tôi chỉ cần ném nó đi cho mục đích trình diễn. Bây giờ tôi loại skimped trên dòng 22. Có cú pháp hơn có, nhưng ký hiệu đô la nhấn mạnh bài là loại thú vị. Và đây là những gì tốt đẹp về PHP. Trong PHP, bạn có những gì được gọi là một vài biến siêu toàn cầu. Họ là những loại nhiều hơn quan trọng hơn là các biến toàn cầu. Và này, tất cả vốn như vậy, đi kèm với PHP. Vì vậy, nếu bạn có một máy chủ mà có một máy chủ web cài đặt, như Apache, và bạn cài đặt ngôn ngữ hỗ trợ cho PHP, tất cả của một đột ngột bạn có thể bắt đầu sử dụng các siêu biến toàn cầu trong mã của bạn. Và những gì tốt đẹp về PHP là nếu bạn chỉ viết một tập tin kết thúc bằng dấu chấm PHP, đặt nó trên một máy chủ web, và sau đó bạn gửi biểu mẫu để nó qua đó tag hành động và một thẻ hình thức, rằng hành động thuộc tính trong tag hình thức, PHP và web hoàn toàn hiểu ra làm thế nào để lấy tất cả những cặp giá trị key ra các URL như câu hỏi mark q bằng mèo, nó sẽ tìm ra cách để q và mèo. Nếu bạn gửi một bức ảnh, hoặc một tên người dùng, hoặc một mật khẩu để thích Facebook, PHP sẽ tìm ra cho bạn nơi mà tất cả các dữ liệu đó là. Và nó sẽ chỉ tay bạn một mảng kết hợp gọi là đô la dấu gạch dưới bài, hoặc ký hiệu đô la nhấn mạnh được, tùy thuộc vào việc bạn đang sử dụng get hoặc bài dự thi. Và nó chỉ sẽ đưa cho bạn một biến siêu toàn cầu, do đó nếu bạn muốn nhận được vào tên mà người dùng gửi qua web hình thức, bạn có nghĩa là chỉ cần nói tên của biến toàn cầu siêu, báo giá, unquote, tên. Và quote, thoải mái unquote, và báo giá, ký túc xá unquote. Và chúng ta sẽ có thể làm được này và nhiều hơn nữa với PHP. Và mặc dù đây là nháy mắt cơn lốc vào nó, chúng ta sẽ đi sâu vào nhiều hơn nữa vào tuần tới. Chúng tôi sẽ giới thiệu một cơ sở dữ liệu vì vậy mà bạn thực sự sẽ bắt đầu thực hiện riêng based-- thương mại điện tử của bạn như trang web trong thời gian chỉ một tuần. Vì vậy, chúng ta sẽ thấy bạn thời gian tới, và hy vọng bạn có những tin nhắn văn bản. Tạm biệt. [MUSIC CHƠI] [CỬA MỞ] SPEAKER 2: Hey. SPEAKER 3: Chuyện gì thế? SPEAKER 2: Bạn đang làm gì? SPEAKER 3: Làm việc trên một tập hợp vấn đề. SPEAKER 2: Nice. Đập tay. [ĐẬP TAY] Có gì are-- uh, anh đang làm gì ở đây? SPEAKER 3: Chỉ cần treo ra. Vừa trở về từ phòng tập thể dục. Tôi không thể không nhận thấy khi chúng high-trao đổi nhanh với, mà bạn đang có trong tay khá thô. Bạn đi đến phòng tập thể dục? SPEAKER 2: số Không. SPEAKER 3: Dude, bạn trông khá lớn. Mà là xấu, bởi vì mọi người đều biết 8-ball là người đàn ông lớn trong khuôn viên trường. Đập tay. SPEAKER 2: Uh, không. Không, tôi nghĩ rằng tôi là tốt. Tôi nghĩ tôi là tốt.