[音樂播放] 揚聲器1:這是CS50和 這是七週的端部。 今天也許是我們 真的教你的語言。 我們在過去的介紹 週HTML和CSS,這兩者都不 是編程語言。 事實上,即使我們沒有 看幾乎所有的標籤 該HTML配備了幾乎所有的 該CSS自帶的性能, 這是一種它的HTML和CSS。 我們只是一般 開始假設你 了解總體思路 的標籤和屬性, 和發送頁面 從客戶端到服務器。 因為今天我們先來看看 另一種編程語言,PHP。 我們要做這個超級快。 我們不是要教你的PHP本身, 就像我們不嚮往來教你 C,本身,而是編程。 事實上,之一 本課程的目標 是不是要教你C, 或HTML,或CSS或PHP, 或任何數目的其他的 時髦的詞或縮寫, 而計算機科學 如何從根本上編程。 事實上,今天我們開始採取 這些培訓輪子掉所有的 進一步通過一個飛 語言叫做PHP,如下所示。 以下是這門語言的樣子。 事實證明,沒有必要對 程序中的主要功能寫 在一個叫做PHP語言。 所以這已經聽起來有點簡單 比C,與我們熟悉。 事實證明,如果你 要聲明一個變量, 你做了幾乎相同C.但 有明顯的一個區別在這裡 當我宣布一個字符串, 或者兩個的差異。 什麼樣子有什麼不同? 聽眾:美元符號。 揚聲器1:是的,有美元 簽署,這是我們從來沒有見過的。 而缺少什麼? 是嗎? 聽眾:[聽不清] 揚聲器1:是啊,有沒有數據類型。 所以,事實證明,PHP是我們 調用一個鬆散類型的語言,在這裡 C的強類型。 弱類型只是意味著 有不同的數據類型, 有字符串,整數和浮點數。 但是,計算機的數字表示出來。 您人類程序員 沒有弄明白。 因此,所有你需要做的 聲明一個變量 美元符號,名稱您 變量,然後,例如, 報價引文結束,世界你好。 嗯,這是什麼 情況看起來像在PHP。 任何差異? 第 因此,原來這些是相同的。 你可能有少 分支機構或多個分支, 但是語法匝 出完全一樣。 布爾表達式可以 一起訂購。 布爾表達式 可相與在一起。 你還有開關。 即使您沒有使用 這些,這些確實存在用C 而且他們在功能 相當於在PHP。 而事實上,在PHP他們 更厲害一點。 在C語言中,你只能比較特定的 像整數和字符數據類型, 而在PHP中,你可以實際的比較 全功能完善的字符串,而無需 擔心指針等。 所以這裡有一個for循環。 這僅僅是偽 代碼,如果你願意。 但在結構上是相同的C. 這裡有一個while循環,偽 therefore--相同C. 這裡有一個做,而loop--相同。 所以有一種 這種模式在這裡,由此 還有一些其他的語法 特點我們確實要看到。 事實上,這裡是一個很好的 在PHP藉此方式, 如果你想要遍歷 一個數組,你 不希望跳躍通過 有心理和語法箍 INT I等於0,我少 小於n,我加plus--這 只是很多煩人的語法。 你可以說多一點 流暢每個號碼 作為數字,其中在這種情況下, 美元符號的數字,我假設, 就像是一個數組被叫號碼。 然後,我假設數, 奇異的,將是一個變量。 什麼PHP會為我做,因為我遍歷 移到該循環是,在每次迭代中, 它會更新變量數 在數字的第i個元素,複數。 所以它只是處理了這一切對我來說。 沒有方括號,無 美元符號,沒有分號。 這只是一個簡單一點。 好吧,如果你想要一個 陣列,原來你 可以做一些非常相似 C.語法是有點不同。 但在這裡就是所謂的數組 美元符號數。 而且我用的,在PHP中,方 括號,事實證明。 而且我們將再次看到這些 在JavaScript--又一語言。 我只是用方括號 有一個逗號分隔的列表 的整數,在這種情況下。 但是,這給了我一個陣列。 但是,即使在PHP更加強大, 我們也有一般有哪些 所謂的關聯數組。 和很多語言 有這些為好。 關於C數組的事情 是,索引 一個數組,東西你 在方括號中使用,通過該 您訪問的元素,一定是什麼呢? 聽眾:[聽不清] 揚聲器1:他們必須是數字或 整數,特別是從零就到了。 那麼,在PHP和,事實證明 出,在其他語言中, 你可以開始有 索引是不是數字。 但他們實際上是詞或 短語,使得而非 盡量記住一些東西 是,或者存儲在變量i, 你其實可以用一句話說 that--你能說這樣的話。 因此,美元符號報價是 變量這裡命名。 這是一個有點時髦的語法 這是相關聯的兩個關鍵值 對這個變量。 具體而言,這是給我 一個數組的長度為2。 但索引不是0和1。 該指標是報價引文結束 符號和報價引文結束的價格。 而這些指標的值, 分別是FB對於Facebook 和$ 79.53,當我最後 查了代價。 這是什麼意思? 嗯,這意味著, 而不是編寫代碼 這樣,在這裡我用來做什麼 像美元sign--或者更確切地說,在C 我甚至不會有一個美元符號。 我會做一些 比如單引號,然後 我會做支架我得到一些 任意數字索引值。 從今天開始在PHP中,如果你 想獲得一些價值, 樣的,我們有更多的 語義表現力。 的說法只是一個奇特的方式,我們可以 只需要調用的東西是什麼。 如果你想獲得 在一些符號, 現在你從字面上做 引用引文結束符號 在方括號 這不只是數。 所以這是一個很好的便利。 這就是那種現在它。 有一束束 在PHP中的其他功能。 事實上,PHP中有 眾所周知的廚房水槽。 幾十,幾百的功能配備 PHP--這麼多的超過帶著C. 而這還不打算 壓倒而是幫助 你知道,我們沒有 不再需要編寫代碼 這是那種到這裡概念。 現在我們可以開始利用 遠更先進的功能 像PHP語言都有。 所以我們不必擔心 在內存中移動周圍的事物。 我們不擔心的malloc 而所有這些較低的水平, 強大的細節,你會摔跤 有,如果不與,pset5鬥爭, 但你可以開始 很快理所當然的。 事實上,讓我們寫一個超級 在PHP中簡單的程序,如下所示。 我要去的頭到CS50 IDE在這裡,我要怎麼做 是創建一個新的文件,這很簡單 將被稱為你好點PHP。 因此,而不是C點,它的 將被稱為點的PHP。 然後在這個文件中, 我可以開始輸入。 但事實是, 有一件事我必須知道 是,一般而言,任何PHP文件,需要 開始與一些特殊的語法。 類似的精神,HTML,但同樣, PHP是一種編程語言,而不是 的標記語言。 因此,每一個文件,它的排序 愚蠢的樣子,我得承認。 打開支架,問號,PHP。 而這僅僅是 說法語的方式, 哎,計算機這裡來一些代碼 寫在一個叫做PHP語言。 然後在文件的最後, 你做種排序相反的。 你不寫一遍PHP,你只 做問號,尖括號。 然後,任何你把裡面的 這兩個標籤,可以這麼說, 將,或者應該是,PHP代碼。 因此,讓我們做一些超級簡單。 我要繼續前進,做打印 閃避,世界你好,反斜杠N,保存。 而現在,在我的提示下,我要去 這樣做,使hello--不,我要做的事情, 點斜線打招呼。 不,點斜線,HM。 因此就不同了。 事實上,這是一個關鍵的區別 PHP和語言如C C的差別 是所謂的編譯型語言。 這是什麼意思對C進行編譯? 是什麼寓意? 是啊。 聽眾:把它寫進機器代碼 因此它可以由計算機來運行。 揚聲器1:沒錯。 我們必須首先把它轉換成 所謂機器代碼,0和1 之前,它實際上是可執行 和理解由計算機。 英特爾內部。 由計算機內部的CPU。 PHP,相反,是所謂 一種解釋型語言,這 意味著你沒有編譯 成零和一,機器碼 你,而不是把它作為源代碼。 而你,而不是把它作為輸入 一個程序,一個解釋 別人寫的 年前能理解它 一行行,一個字符一個字符。 因此,換句話說, 人類在那裡寫了 一個程序,將看 在一行代碼行, 並找出什麼 電腦應該做的, 不轉換 直接向零和一。 如果它看到一個for循環因此, 這個所謂的解釋器 將是一樣,沒事的,我應該 一遍又一遍,再做些什麼。 我該怎麼辦? 讓我看看下一行。 讓我看看下一行。 它真正的逐行解釋它行。 因此,要執行它,我不使用化妝。 我不使用點斜杠在這種情況下。 我不是做PHP的,這是 的一個程序,也稱為名稱 一個解釋,那就是 預裝CS50 IDE, 現在我需要通過一個 命令行參數,這 是的很簡單的名字 文件我想詮釋。 或者更隨便,我想運行。 如果我敲回車,在那裡,我們有它。 世界,你好。 現在事實證明,我 用過的打印清晰度故意 從C彌合我們的PHP。 大多數PHP程序員,你會看到, 甚至沒有理會使用打印清晰度。 他們只是用一個調用的函數 打印,這Ç沒有。 所以,如果我重新運行,現在,它實際上 行為功能上是相同。 我不能用百分比小號 和百分比i和等等, 但也有其他的方法 在這樣做的PHP。 但是這僅僅是對 說語法, 比一些奇怪的事情了其他 頂部和一些奇怪的字符下降 在底部,該概念現在的 在這個其他語言編程 將要完全相同。 事實上,讓我們做另外一個例子。 所以我要繼續前進 並關閉該文件。 讓我再創建一個 我會打電話給條件1點PHP。 因此,沒有零,因為我做了什麼 是我回頭一看,幾個星期前, 我們有一個名為 條件1點C.什麼 我所做的就是將它轉換我 頭,並在這裡對紙, 並很快在球場上的 網站,一行行到PHP。 所以在C版本中,我們做了一些 像字符串s得到得到的字符串。 所以這是一個有點不同 要做到這一點在PHP。 相反,我只是去 這樣做,或者說,我 可能做INT n得到得到 整型,在前面這個例子。 而不是說那麼,我該怎麼辦ñ 被讀取,行,我想一個整數, 請。 所以,這只是我的提示。 所以,事實證明,以及 我只知道這個 從看過或見過的功能 之前,閱讀功能在PHP線 需要一個參數是一個提示 對於人,其人生目的 是讀一行文本 他或她在類型。 然後將其存儲了 文成變量n。 現在,我可能想要做的事 像我一樣星期前,像週 其中一個班的。 如果n大於 零,那麼,我會 借用剛才我們看到的語法, 打印閃避,你挑一個正數, 反斜線ñ。 否則,如果n等於等於零,我 要繼續前進,並說,打印清晰度, 你選擇了零反斜杠ñ。 否則,這裡的情況應該 當然可以,打印清晰度, 你選擇了一個負數。 我們當然可以實現 這件事情的邏輯 在一堆不同 的方式,但這裡的要點 是語法, 幾乎沒有任何東西是新的。 這只是美元符號和 一個新的功能和讀線。 但是從根本上,有什麼新 現在我解釋這一點。 我把它當作輸入 到其他程序。 所以,如果我想,如果要運行它, 我沒有犯任何錯誤, 我要去的運行PHP, 條件1點PHP,回車, 我會在50號輸入, 讓我們假設現在它的作品。 因為邏輯是 同樣的東西,一個星期。 好了,所以這是很 給人留下深刻印象,對不對? 我們可以在任何這樣做 語言的數量。 讓我們做一些事情的方式更強大。 讓我們來完成習題集五位。 所以,我要繼續前進,做到這一點。 我要創建一個文件 所謂字典點PHP, 和傾斜的,你可能會 要搶下來很多的筆記, 票據只會幫助 你如果你被允許 實現問題在PHP中設置五位。 但是,我們將看到如何迅速,現在我們 可以實現同樣的問題集。 因此,在字典點PHP,我會 假定已經有 在世界上一個名為的拼寫。 事實上,我提前做了這個, 我們不會通過這條線走 按行,但如果你 好奇後來真想 環繞在你的心 C和PHP之間的差異, 從字面上比較這文件, 拼寫檢查,從今天的源代碼 我們稍後將發布 今天,對p將 5拼寫​​檢查C點,我們給你, 和它的幾乎相同的線,由線。 這裡也有一些更多的美元符號。 一對夫婦功能 有一點不同。 但它是一個很好的方式, 排序的看到如何 你翻譯一種語言到另一種。 這幾乎相同的行線。 但我會假設, 存在,就是我要在這裡做 是試圖炸毀你的 通過重新實現介意 問題的全部設置五路 比你快一直在做迄今。 因此,舉例來說,我會第一 聲明呼籲大小全局變量, 並設置它等於零。 現在,沒有太多的積蓄。 可能你實現 大小幾乎相同, 或暗示暗示將於今晚或明天, 只使用一個叫做全局變量 大小,並且將其設置為零。 這不是一個特別 驚人的擾流板。 那麼,什麼是你的數據結構 選擇,你們誰也跳入水中 並讀取規格,什麼數據結構 有你們中的大多數已經使用? 哈希表或嘗試,也許 一些變體。 這樣至少執行哈希表, 是種了很多行代碼, 對不對? 而且不是所有的人都可能是 官能此時的一周中, 但是這很好。 因為在PHP中,如果我 想要一個哈希表,完成。 對嗎? 所以,我已經該變量 剛剛宣布顯然是 所謂的美元符號表, 每出台之前。 但我真的只是想,在 在一天結束時,一個陣列。 但不是一個數字索引 陣列,因為那就像2週 的東西,當我們談到數組。 我想要一個哈希表。 但是一個哈希表是真的 的說法只是一種具體的方式, 你想一個關聯數組。 你想成為能夠 準鍵與值。 鍵與值。 什麼是一本字典,真的嗎? 那麼它是一個整體一串鑰匙。 話像蘋果,梨,香蕉, 而所有這些英語單詞 我們交給你。 而價值觀,你是有效的 插入到你的字典 要么是真的,還是沒有,假的。 換句話說,你要插入 一大堆的鍵值對, 蘋果,真的,梨,真實,香蕉,真實。 所以,當您檢索或看 在您的哈希表的數據 與你的檢查功能,你 要么得到一個答案, 是的,我發現它在我的複雜 哈希表,或者沒有,它不存在, 所以你返回false。 因此,要做到這一點,我需要的是數據 像我以前的結構建議。 我只需要能夠 要的話聯繫起來 像,報價引文結束,符​​號, 用一個值一樣,真實的。 因此,有我的哈希表。 讓我們實際使用它。 因此,有一些功能 我需要實現。 我要繼續前進,咬 關閉一個函數調用的大小。 它不帶任何參數。 我沒有打擾 這個詞的,無效的,在PHP。 我只是要回的大小。 而作為一個不談,PHP有 這minorly惱人的細節, 其中,如果事情是全球性的,你要 在告訴你正在使用的功能 這,哎,這是一個全局變量。 因此,小的愚蠢,但你 有仍然做到這一點。 那麼,關於負荷? 我要去實現 一個函數調用的負載 這需要在字典中的名稱, 就像在問題設置五位。 而在我開始之前, 請注意,我沒有 打字已完全一樣的東西。 有什麼明顯的不同在PHP約 你如何定義一個函數對C? 是啊。 聽眾:[聽不清] 喇叭1:沒有返回類型。 而事實上,這樣的話,PHP 只要它是鬆散類型, 也是在這個意義上一點不馬虎。 你不指定作為編程 這是什麼函數返回。 你將不得不實際上看起來 在代碼中找出答案。 或者閱讀評論 或文檔中。 因此長處和的利弊吧 這類決定。 但是,我不得不說 關鍵字,功能。 而當我們學習 JavaScript的在幾個星期 我們將看到同樣的事情 再次,但它同樣的想法。 該函數的名稱,它的參數 或參數或缺乏,現在 這裡是執行。 所以我要去只是削減一些角落 是戲劇性的只是一瞬間。 但我要繼續前進,並說這一點。 這就是我可以加載 一個文件到一個數組。 有一個在PHP函數調用的文件。 你把它的文件的名稱。 它遞給你回一個數組,裡面 這是每一行的文件。 從零個,一個,上向上 到n減去1行。 就是這樣,對嗎? 有沒有F讀。 有沒有F GET秒。 有沒有百分之秒。 有沒有頭痛。 有沒有的feof。 所有的東西與 你一直在摔跤也許, 與對置四,五,消失。 所以,我剛才讀的那些行成 該文件,然後你知道嗎? 如果我想遍歷這些話, 我能做的,每個行的行。 請記住,這是種聰明 迭代的一個數組,索引的方式 由指數,並在每次迭代主叫 當前行,美元符號線。 而且在這裡我會去 說表,支架,線,得到真實的。 換句話說,這就是我 插入到PHP中我的哈希表。 我說,美元符號表, 是我的關聯數組,這是 空每個代碼向上線之上。 然後我索引到它 不是,使用號碼, 但是從字面上使用 關鍵字,我在乎。 也許這是蘋果或梨 或香蕉也好, 但具體我索引 進入它就像我剛才提出的。 我取的名字我 關聯數組,然後我 使用報價引文結束在 方括號中有一個字符串, 代替實際數目。 所以,就是這樣。 負載功能完成。 一旦這個循環迭代,我已經把 萬事成哈希表。 現在小的免責聲明,有一個 兩件事情我也需要修復。 和版本,我會在網上發布 將所有的細微差別, 但它大多只是一些將要 錯誤檢查和一些小的調整。 但是,這確實是它的要點。 如果我現在想實現 調用的函數 檢查,這需要一個 字作為其參數, 怎麼可能我去這樣做? 好吧,我只是會說,如果 我的表裡面,在位置的話, 如果已設置。 因此,如果有is-- 其實,你知道嗎? 我要做到這一點在 有些偽代碼。 但這個想法是一樣的。 如果等於true,返回true。 好的。 那種Else--你能看到 這是going--返回false。 完成。 檢查完成。 相當不錯的,對不對? 所以,這是什麼真正的意思嗎? 這也太,我切一些角落。 看版上線 對於所有的細微細微差別的。 但是,這是它的要點。 指數到您的 關聯數組,又名 哈希表,看看是否有一個值 還有,如果它設置為true,如果是的話, 返回true。 因此,我們削成下降 所有的複雜性。 所以,那種心靈的吹了吧? 我不會打擾卸載完成它, 因為在fact--哦,你知道嗎? 是啊,讓我們與卸載完成它。 卸載在哈希表看起來 像功能卸載,返回。 確定這樣的卸載。 因為沒有什麼 卸載,對不對? 有沒有malloc的。 我沒有明確要求 操作系統的任何事情。 我剛開始使用的變量。 所以,這也是的一種表現 更高層次的語言特點。 如此反复,大多數這個詞 我們一直在處理這兒 與C超低水平。 你可以看到計算機的內存。 你可以觸摸任何你 希望在您的計算機的RAM, 是好還是壞。 在這裡,我們將 放棄權力。 但是,我的上帝,看看如何 更少的代碼我寫的。 事實上,如果我不說話 並討論了我的打字, 我們已經進行 這個例子五分鐘前。 那麼什麼是價格被支付? 那麼讓我們一起來看看。 讓我們一起來看看。 我要繼續前進並運行CS50。 讓我先進入 今天的例子, 我像以前一樣有文本的目錄。 我要運行的解決方案, 它與問題設置5名為 拼寫,這是在CS50的帳戶。 而我要的東西運行 大像國王詹姆斯聖經, 只是讓我們真正把 員工的解決方案測試。 現在有時互聯網的一個 慢一點,快一點, 可能需要一段時間來滾動。 但它總共0.56秒花 拼寫檢查國王詹姆斯 用聖經的工作人員解決方案。 因此,相當不錯。 你的可能要慢得多, 而這完全罰款。 但它是正確的在這裡。 所以這是工作人員的解決方案。 如果我進去收拾PHP版本。 而我會做一個小 像烘焙展的事情。 我們將採取我寫的代碼 此前,所以這是完全正確的。 因為我寫的代碼是不會 是完全正確的剛才。 但是,如果我運行PHP版本, 我有什麼,今天放棄了? 我花了五分鐘 實施P設定五,我要求。 我已付出什麼樣的代價? 是啊。 聽眾:速度。 揚聲器1:速度。 你是什​​麼意思? 聽眾:這將需要更長的時間。 揚聲器1:所有權利。 讓我們來看看。 這將需要更長的時間, 不寫,但要運行它。 是啊。 因此,讓我們試試這個。 所以在這裡我要繼續前進,做 PHP拼寫的,並且因為該文件的 所謂的拼寫。 所以我沒有運行 字典,召回, 我跑叫拼寫檢查程序。 我要通過在同一 文件中,國王詹姆斯的五分之一。 它飛過。 這可能僅僅是網速, 所以不要過度解讀成。 但它確實感覺不再是肯定的。 1.26秒。 現在,仍然是相當 該死的快,不是嗎? 這感覺就像唯一的理由 更像三個或四個或五個 秒,這只是因為 互聯網是正在緩慢。 花費的計算機時間為1.26 秒,相比之下,我認為0.56。 這樣的兩倍以上的速度慢。 現在,這還是相當不錯的 速度快,但它是一個體現 ,果然,那具體價格。 因為我們解釋 在由行代碼行, 並且該程序PHP正在讀我的 代碼從上到下,從左到右, 它有做多思路。 它有一種轉換 它本身內部 到相應的機 在飛行中的代碼,可以這麼說, 即使力學 有一點不同。 而不是只供給到對 英特爾CPU的原始零和一 它理解本身。 那麼絕對,相傳, 我們已經付出了代價。 和代碼編寫的語言 PHP之類往往要慢一些。 但是,我的上帝。 所以現在當我拼寫檢查我 文件,我花了一個額外的0.7 秒左右VS 20小時以實現 更快的拼寫檢查,對吧? 這是怎樣的一個權衡的。 如果你是剛剛啟動P 置5,可能不會20小時。 可能遠高於更少。 但是,這是一個權衡,真的。 如果你是在真正的大運行的代碼 數據集,或者在更老的硬件, 這些種的差異 當然可以積少成多。 如有任何問題迄今? 是啊。 聽眾:[聽不清] 揚聲器1:對不起,能 你說這一次? 聽眾:[聽不清] 揚聲器1:你放棄自己的時間。 好了,所以是。 您節省時間 不必編譯它, 如果這就是你在問什麼。 事實上,在CS50, 大多數的節目, 儘管他們可能需要一段時間 寫,他們是比較短的。 幾十個,幾百行代碼, 所以他們編譯很快。 但是當你開始 寫一些大一點的程序, 就像如果你是微軟或者你 谷歌和寫作真正的大計劃 在C或C ++或類似方式進行編譯 語言,可能需要數秒, 甚至幾分鐘或更長的時間,以 編譯數百萬行代碼。 還有一點,就是 差別是要增加。 而事實上,一旦我們 今天的過渡,當天 今天,以網絡編程 使用PHP,你 會發現它只是這麼多 更愉快編寫代碼 如果你沒有做這些愚蠢的 樣變到終端的步驟 窗口中,鍵入make你好,重 運行它,重新加載窗口。 只是這麼多愚蠢 機械步驟 剛剛獲得這樣做的方式 有趣的,好玩的工作。 事實上,我們扔掉這些用PHP。 我們可以互動 與它更迅速。 是啊。 聽眾:[聽不清] 揚聲器1:當然。 我能澄清什麼 裝置將被解釋? 當您編譯語言 像C,它的股價下跌 因為我們機器說: 碼,零和一。 而Intel決定年前 零和一的某些模式 代表此外,或減法, 或打印,或其它基本操作。 在解釋型語言的世界 如PHP或JavaScript,或者Python, 或Ruby,或串 其他人,而不是一個人 寫了一本 interpreter--在這種情況下, 它也被稱為PHP,等同於 在language--的名字,基本上 有一個大循環中它的迭代 在所有代碼的行 我給它的輸入,像招呼 點PHP,或字典點PHP。 然後你可以把他們的大的 環路有很多的條件。 而這些條件說,如果 人寫的關鍵字, 開始做他或她的 代碼連連。 或者,如果該人具有 寫的代碼行, 如果只執行自己 下一行條件。 因此,它是真正喜歡解釋 它在一個人的感覺,線 由線,那只是時間問題。 這需要開銷。 所以這是一個price-- 良好的問題 - 我們付出。 因此,讓我們做的是另演示 這是一個有點戲劇性。 還有就是,我會說,一個大概這在 可怕的失敗的概率為90%, 但你會驚奇地發現 用10%的概率。 所以每年我們嘗試 要做到這一點,因此我們 試著寫一個程序,經過 問題設置為零,用於表示已 提交你的電話號碼和一個 許多其他的人口統計信息, 我們編程 送你一條短信。 然後,每個人的手機 開始發出蜂鳴聲或振動, 它只是令人驚訝的,因為 好了,看看電腦能做到。 這很少正常工作 看來,在很大程度上 因為我通常得到列入黑名單 通過Gmail或其他服務 對於真正想這樣做的規模。 但有趣的是太多,因為我們 今天沒有在座的每一位, 有趣的是我們最後一次 兩年前試過, 我想,我寫了一個程序 是坐在一個循環迭代 在所有的學生在課堂上, 和他們每個的文本消息的, 它是這樣說, 為什麼不是你的演講? 愛,CS50機器人。 你不知道有多少歉意 而那種痛苦的電子郵件 我在從接收的響應 ñ零下100人誰不在這裡 那一天。 而更有趣,更可恥story-- 你知道,我們把它放在那裡。 它已經在的視頻在幾年前。 所以,你很快就會看到我 其中寫一個for循環, 這是很容易寫的,一個錯誤 for循環,使得在第一時間 通過循環,則 發送一個短信。 通過循環我第二次 早該送多了一個短信, 然後多一個文本 消息,和一個更多。 但事實證明,如果你犯了一個錯字 在編程時,有時你 可以編寫發送一個程序 短信,然後兩條短信, 然後3條短信給大家 誰是已經收到了一條短信。 如你所知,做什麼, 加的東西,再加上一些東西, 加的東西,是很多大O 短信,或N的平方, 或$ 0.10短信,$ 20,000。 值得慶幸的是我打控制-C在此之前, 事情發生了,但我沒有欠至少一 你的前任為$ 20的 200一些奇怪的文字消息, 不僅去了他的電話,但 同時它像一個老翻蓋手機 所以喜歡排擠出他 每個內存等個人文本 消息他實際上得到。 因此,我們有一個目標 今天,不要那樣做。 也許打開飛行模式。 好的。 因此,讓我們進入一個 計劃在這裡callled-- 我會打電話給文本點PHP。 而在前進,我有兩個文件在這裡。 我做的只是工作人員的文件,這是有 所有員工的信息,所有的名字 從課程的網站。 然後現在我只是把 一些假號碼555-1212。 因此,這些不會真的去任何地方。 但是請注意這個CSV文件裡面, 我們之前談到簡要 在文件IO的上下文中。 什麼是CSV文件? 逗號分隔的變量。 這是一種像極 輕量級的數據庫,如果你願意。 還有一種類四列 在這個文件中,且有鋸齒, 但逗號本質 代表在該文件中的列。 第一列是對TF或CA的名稱。 第二列是他們的姓氏。 第三列是他們的電話號碼。 第四列顯然is-- 第四列顯然是什麼呢? 好了,這是他們的運營商。 因此,Verizon公司,或衝刺,或什麼不是。 如果我前面misspoke,CSV。 逗號分隔值是CSV在這裡。 因此,我可以做這個? 嗯,這只是一個大的文本文件, 並且它是一種長的,對不對? 像這樣的打算 是種討厭。 而事實證明,但是,如果我 要發送一條短信到,讓我們 亞歷克斯說這裡。 讓我進入我的瀏覽器 和退出全屏模式 只是這樣我就可以來回切換。 事實證明,讓我們來看看,如果我去的 在這裡,並登錄到Gmail中,所有的權利。 別看這部分。 只要我能看到。 當然livestream可以 仍然可以看到我在做什麼。 好的。 因此,這裡僅僅是Gmail的使用 約翰·哈佛的賬戶。 所以,如果我想發送 短信亞歷克斯, 我當然可以撰寫郵件。 而事實證明,我已經 與亞歷克斯測試之前,在這裡, 這樣你就可以添加特定域 名人們的電話號碼, 因為世界上存在 東西叫做短信電子郵件網關。 這是說,所有的一個奇特的方式 我們誰擁有那款手機 當然有電話號碼, 有可能是你的運營商, 一定後綴像在 Vtext.com為Verizon短信 點com,你可以添加到您的 自己的個人電話號碼,然後 您或朋友,或者你的父母會 文字你在那個特定的地址。 和Verizon擁有一台服務器,電子郵件 服務器,即在收到這封郵件, 著眼於數字部分,然後 採用任何特殊行業的魔法 他們必須真正發送出去了 電波您的特定細胞 手機。 現在,這是很好的,因為我不知道 真的知道如何發送短信 或者寫的代碼,但 我的手機, 你可能做到這些的 最終的項目,但現在所有的 我已經是我的筆記本電腦在這裡。 所以我想遍歷該CSV 文件,線,由線,由線,由線, 抓住每一個員工的電話號碼, 和它們的載體和編程, 串聯,也就是連接手機 用適當的域名數 然後發送電子郵件。 所以這是一個很大的步驟。 祝你好運這樣做,在C. 這是一種情況噩夢 打開文件,讀它 線,由線,由線,為你 看到,也可以很快看到 有問題的設置五,如果不 問題設4,然後 動態地串聯 兩個字符串,因為在C, 採取兩個字符串,並結合他們, 你是什​​麼微創 最需要做的可能? 需要聲明更多的內存,對不對? 而問,malloc的,我可以有更多的內存? 因此,我可以把一半的 這裡,一半的在這裡。 這只是這麼多的步驟。 而到那個時候,你已經失去了 在愚蠢的小演示的興趣 在這裡你使大家的手機蜂鳴聲。 讓我們做這樣的PHP 風格,因此我們只 開始使用更多的廚房水槽。 而天馬行空 基本上是相同的, 但我們也不必太擔心 很多關於更低的水平。 所以,讓我們來看看我怎麼可能 去這樣做。 而只是讓我不 重複過去的錯誤, 我在這裡寫一些筆記自己。 而讓我們看看我能走我們 通過一些基本步驟, 然後換時間的緣故,我們將 也許是切到最後一些彎道。 我要繼續前進,做開放 支架PHP來啟動該文件。 而且我要繼續前進,做到這一點。 文件句柄,你會 很快就會看到,其實 調用名為f開功能。 請記住這將打開一個文件。 而報價,引文結束, R代表什麼,再? 只要打開它進行讀取。 現在,在對p設置,你這樣做。 和處理可以是任何東西, 富,酒吧,BAS,任何變量名。 但一般的計算機 科學家稱之為一個打開的文件, 給你一個文件句柄, 一些守住這麼說。 我只是打算做 一些錯誤檢查。 因此,如果手柄是假的,就像 在C,我會做這樣的事, 無法打開文件,反斜杠ñ。 然後,我只是去 繼續前進並退出。 而事實證明,在PHP中, 我不是一個函數內部。 有沒有主要的功能在這裡。 所以,我不回,本身。 我退出。 這是本質上是一回事。 而我離開一個Y可能。 一個僅僅意味著某種類型的錯誤。 這是不為零,所以這是一個錯誤。 好吧,如果我下來,現在這裡 在我的節目,我已經打開了該文件。 我要繼續前進,並宣布 叫地址的數組, 而在C中我會知道 提前數組的大小,對不對? 或者,我需要聲明這個 是一個指針,然後使用malloc。 然後我每次讀 通過在文件中的另一行, 我將需要對malloc 更多的內存,malloc的內存。 這是在頸部疼痛。 而幸運的是,PHP和Ruby, 和Python和JavaScript,它們 會增加你的陣列 自動為您。 沒有更多的malloc。 沒有更多的內存管理。 筆記本計算機在處理這件事。 但價格你付出代價。 這是一個有點慢。 而對於這樣的程序 我們不會注意到。 我們將發送100條短信。 舉例來說不會感覺它。 這真的只是開始 不管你選擇的語言 當您的數據或程序 得到真的,真的相當大的, 如將是這種情況更是這樣 我們基於Web的東西。 但現在,讓我們奮進。 雖然它原來有一個 在C函數所謂的F獲得CSV。 文件拿到CSV,採用一個 文件句柄作為參數, 並前進然後,行,由 行,由行,讀成一排。 所以它只是讀取一行 從該文件的文本。 但是,什麼是好的關於這個功能, 它不只是遞給我了一行字。 它看起來對那些逗號, 並分析了線。 並解析行的意思分裂 它在這方面的某些值。 換句話說,美元符號 行是一個變量這是 要給我一堆指標。 這將是對 在我的CSV第一列。 這將是第二 列,這將是第三次, 這將是第四次。 由於召回和Excel的不 配合我們最後一次這樣做, 但如果我下載的工作人員點CSV。 哎呦,不要重命名。 如果我下載的工作人員點 CSV,並嘗試打開它, 我已經registered--哦,我 因為上次沒有更新Excel中。 你會看到,工作人員點 CSV,我有四列。 所以,當我閱讀 對於艾比第一排位置, 美元符號0行是艾比, 美元符號排的是里昂, 美元符號排二是她的號碼, 然後她的電話的運營商。 所以這就是所有。 這是很好的,因為我 不必現在找出 其中,所有這些逗號實際上是。 所以,我要繼續前進, 做到這一點,因為定義, 我會說,她的名字是 行支架零的承諾。 而且我要grab--和 其實,你知道嗎? 我不會擔心 她的名字,在這種情況下。 我要保持它的簡單。 我會做她的號碼是 行支架二,我想。 而她的載體在哪裡? 連續三年,一個比。 所以沒有什麼新的存在。 這只是零的索引到一個數組。 而現在,我要做到以下幾點。 如果承運人等於等於AT&T-- 我只是有一個loop-- 我想創建一個電子郵件 地址看起來是這樣的。 這將是617-555-1212 在,它是什麼,text.ATT.net, 就是我想做的事情。 那麼,如何做到這一點? 我要做到以下幾點。 她的地址將是她的號碼, 現在,讓我繼續前進,做到這一點。 這是一些時髦的語法。 我所能做的百分比把戲, 但我可以真正地做到這一點。 因此,這是一個PHP的事情,但 讓我們來看看我在做什麼。 美元簽下地址 左,只是一個變量。 給我一個變量。 我沒有指定類型。 PHP會看著辦吧。 在右手側, 什麼是數據類型 在這整個事情 右手邊? 看起來像一個字符串, 因為有雙 報價在最左邊和最右邊。 現在有在這裡一些時髦的新語法。 還有的花括號, 美元符號數。 不過,要猜測那是什麼語法 大概告訴PHP為我做? 是啊。 只需插入值出現。 因此,沒有百分之秒。 我們可以使用打印樓或s 打印F或類似的東西, 但是PHP和大量的 更高層次的語言, 你會看到,你可以 做同樣的事情在功能上,也許 六種不同的方式。 因此它開始成為 設計或風格的問題。 所以,這只是一個神秘的尋找方法 的說法,給我一個電子郵件地址, 但是插件中的數目 這些大括號之間。 而且大括號不會 最終在最後地址。 現在我們可以跳過一些 這些線路時間的緣故。 因此,如果在載體等於 等於verHorizo​​n--哎呦, Verizon--我想要做的事 非常相似的,其中的地址獲取, 報價,引文結束,數以text.ATT.net。 然後,我可以做同樣的 為載流子的其餘部分的事情。 不過,我只是做點,點,點了吧。 現在讓我們假設 我想補充陣,推。 我想添加到 陣列,稱為地址。 這個地址,你這是怎麼 添加的東西在PHP中的數組。 你並不需要做的malloc。 你不必調整數組。 你剛才說的陣列,推動。 你怎麼想push--什麼陣 你要推的東西上? 地址。 要推到地址是什麼? 地址。 而事實上,如果你 真的要聰明一點, 一些語法糖 為此,可以這麼說, 這只是意味著你怎麼能做到這一點的 越漂亮的方式,將做到這一點。 這也有越來越多的影響 地址數組的大小之一, 然後撲通額外 電子郵件地址進去。 是啊。 聽眾:[聽不清] 揚聲器1:上一個錯字 其他if--哦,載體。 這是確定的。 它也不會喜歡我的失敗 實施這一計劃的一部分, 以後。 不過謝謝你的追趕。 還有一個錯誤。 謝謝。 我們希望這是Vtext.com。 是。 好的。 那麼,這給我們? 我們已經寫打開文件的代碼。 我們有一個循環迭代 在文件中的行。 我們有增加的代碼我 陣,一個在一時間,正確地 格式的電子郵件地址。 因此,所有真正的仍然是送 一個電子郵件給這些人。 所以,我已經先行一步,並 準備好自己如下。 我打算在這裡做is--,讓我們 繼續前進,跳到一些實際的代碼, 它看起來像這樣。 因此,這裡的預焙 版本我前面寫的。 並注意我完成 實施衝刺。 我完成了實施T-Mobile公司。 我完成了實施維珍移動。 我會提前道歉。 有幾個運營商的 一些學生在課堂上有 我沒有打擾枚舉 在if條件在這裡。 所以,不是所有的文本都將熄滅。 但是讓我們看看還有什麼我需要做的。 我關閉文件,只需 像P設定四人。 這是新的語法。 我們會看到一個小 這一點隨著時間的推移, 尤其是與對置七,八。 但是,這是語法創建 一種特殊類型的結構。 原來,有一個庫, 自帶PHP,稱為PHP的郵件。 其在生活中的目的是 編程方式發送電子郵件。 它的代碼別人寫的 使得它更容易為我們發送電子郵件, 所以我們沒有保持 來回到Gmail, 並粘貼在人們的電子郵件地址。 有一大堆線在這裡 那說實話,我只是種複製 並粘貼在文檔。 而事實上,如果你 好奇,我將所有 文件的網址 在代碼中,我們將在以後發布。 並注意中 的事情我做 是的,我要告訴這個庫, 使用Gmail的服務器,對不對? SMTP我們短暫交談了解我們的時候 是在耶魯大學關於是簡單的郵件 傳輸協議。 這是協議 用於發送郵件的服務器, 和that's--的Gmail擁有其中的一個。 端口,這是TCP端口號。 這是很好,如果你 還沒有看到587之前。 只是知道,從文檔。 這是我的用戶名。 我將使用CF50機器人。 而就在那一刻,我只是要 輸入機器人的實際密碼。 然後到這裡,發現剩下。 我從地址設為我 在CS50.net進行BOT。 我想我不會後悔發送 短信800人的 說,想你,愛CS50機器人,也許 對於那些誰今天來不了了。 然後在第76行,我該怎麼辦? 這種看起來像C的所以對我 等於0,N equals--現在算上是新的。 事實證明,如果你想獲得 事情在一個陣列的數量, 你不必再記住它。 你可以只問 函數調用次數, 它會告訴你有多少 地址是在該陣列。 然後,我要補充 地址的電子郵件。 我知道這個來自 使用的文檔。 有一個附加地址的功能。 現在發現有 是一塊語法。 我們以前見過這個 在C類似的精神。 你可以認為美元符號 郵件作為一個變量,它是。 但它的內部結構 這不僅屬性, 變量,如果你願意。 但事實證明,在PHP中,這 是一個面向對象的編程 語言,像Java如果你把APCS。 美元符號的郵件,如果你想用於: 它也有功能在它的內部, 或方法。 因此,這是說 特殊的PHP郵件 庫,如果我有一個變量物, 如果我要調用一個函數, 帶有該庫, 對於今天的目的, 只知道你使用的箭頭符號。 有沒有點符號。 這只是箭頭。 但是,這不是一個指針。 這只是從C的語法借來的。 於是呼裡面添加地址 這個庫的對象或變量。 好的。 這就是神奇的線。 這就是我如何發送電子郵件。 這是開放的等效 Gmail的,打字出來,並擊中發送。 但它會代替發 通過電子郵件發送到這個地址,這身搭配, 從CS50機器人。 現在重點線。 這條線是缺席像2011 當我想到我上次嘗試這個。 當然,這條線出現, 清除地址。 因此,從邏輯上講,如果我 不清除地址 每次迭代後,第一 電子郵件或短信去愛麗絲, 第二次去 Alice和Bob,第三 去Alice和Bob和Charlie, 因此非常昂貴的錯誤 我做了一年。 所以,讓我們來看看。 有什麼問題 之前,我們向您發送的所有文字 有10%的概率消息? 有問題嗎? 好的。 讓我走在這裡的變化 密碼是什麼應該工作, 將有可能獲得通過的Gmail列入黑名單。 因此,他們可能不會都去 出來,因為他們可能 不喜歡我們送800電子郵件 在fo​​r循環中的一次。 因為這不是 特別是人的行為。 哦,我要改變一件事。 在最頂端,我要去sent-- 更改文件給學生點CSV。 我不會開這一點,但是這是一個 相同的CSV文件,沒有員工100人, 但800名學生,剛 來自哈佛,耶魯,因為 有月休會這個星期。 它似乎是那種一個混蛋的事 做文字所有的人,為什麼 他們不是在度假類。 這是確定的。 只是哈佛的學生 今天該文件的內部。 現在,讓我們回到 我的終端窗口。 我有點緊張。 行,所以現在我要進入 目錄,和PHP文本點PHP。 如何約一勇敢的志願者? 所以,我不希望這在我身上。 好了,上來吧。 你叫什麼名字? MAYA:瑪雅。 揚聲器1:瑪雅。 上來吧,瑪雅。 好的。 讓我們來看看,如果這個工程。 我把我自己的電子郵件地址,在 file--文件在我自己的電話號碼, 讓希望我會得到一個為好。 認識你很高興。 MAYA:同樣。 揚聲器1:所以你需要做的就是 按回車鍵發送800條短信, 如果我沒有搞砸。 美觀大方。 可能需要一段時間,統計學, 直到我們得到一個電子郵件addr​​ess-- 一個短信說的 在房間裡現在。 讓我們流連忘返,看看。 聽眾:[呼嘯] 揚聲器1:哦,是的。 聽眾:哦,疑難雜症。 揚聲器1:For循環are--這 是不是因為PHP慢。 這是緩慢的,因為Gmail的 節流是美國,而不是 讓我們比派遣更多 像每秒一個電子郵件。 什麼? 這是一個很難的事情對我來說,測試在 家裡只有我和我一個電話,就這樣。 那是希望的機器人? 是嗎? 沒有? 說是的。 沒有? 這是從一個朋友? 尷尬。 確定。 很肯定它的工作雖然。 嗯哦。 他們black--哦,等一下。 哦,你知道嗎? 請稍等。 只有Maya和我 - 米婭,是嗎? MAYA:瑪雅。 揚聲器1:瑪雅,要 知道我做錯了什麼在這裡。 哦,等一下。 我想我只是送100 短信555-1212。 待機。 我不能贏得任何一年。 確定。 瑪雅? 修復了後期製作。 該死! 從地址之後。 OK,支持。 抱歉。 這是痛苦的,每年。 OK,一個瞬間。 這是好事。 我不是要做到這一點。 打印地址。 OK,支持。 打印地址,支架我。 是的,我喜歡這樣。 美元sign--好吧,我會解釋什麼,我 在做了一會兒,我已經運行此之後。 每年。 OK,我們開始吧。 我有just--,我不希望 展現每個人的電話號碼, 但是瑪雅人可以確認 與點頭, 她認為每個人的 在類的電話號碼 我要去複製到 一個名為Gmail中。 如果在Gmail中,有什麼事我們想說的? 想你。 Love--那不是我。 我還沒有打送呢。 因此,讓我們繼續前進,做 這一點,如果我可以進行放大。 確定。 所以我使用了一個名為Gmail的,現在的程序。 如果瑪雅人,你想 單擊發送按鈕, 我們將模擬什麼 代碼應該做的。 什麼? [BEEPS] 聽眾:是的。 揚聲器1:是? 救贖? 聽眾:是的。 揚聲器1:小姐你。 而我要送出去休息。 我送出了一半,因為我沒想到 Gmail的將讓那些經歷。 所以只記得,就在今天 你知道我可以使用Gmail。 這是可怕的。 一個大的掌聲瑪雅。 謝謝。 好吧,就這樣。 什麼 [BEEPS] 我們得到了幾個聲,是嗎? 好的。 現在,我要得到700真 不幸的電子郵件從同學回來。 所以,至少我們會看到 如果這是值得的。 那麼問題出在哪裡? 我會想出了什麼 事後錯了, 但只是看多麼容易 它是做在PHP。 那麼,我們能不能做到,現在 我們有這個表現的PHP。 這was--這是可怕的。 好的。 所以這是我應該出去了。 這是我今天早上測試我的 手機,我的手機的實際截圖。 但是,現在讓我們來看看為什麼 我們實際上引入 所有這些東西擺在首位。 所以目標不是 寫這些程序 寫在命令行,對吧? 所以我寫了一個簡單 你好程序,我寫的 一個小程序,它條件語句, 和使用的讀取線等等。 而從理論上講,我只是寫 一個程序發送出去 800條短信,給予或採取800。 並且該程序是所有 還是在命令行中運行。 這當然是 沒有網絡,對不對? 現在的目標是開始使用 什麼我要求是一個更容易使用 語言,敢說更 強大的語言來講 的功能 隨之而來,開始 編寫生成網頁代碼。 所以,最後一次和最後一周, 我們談到了HTTP和HTML。 什麼是好的關於HTML 是,它只是單純的文字。 而文字是肯定 東西,你可以 按字面調用打印打印 f函數,或打印功能。 事實上,這就是PHP是 現在要允許我們這樣做。 所以這些例子中,我們 在今天的源代碼, 除了一些代碼 我把那裡剛才, 我們有這樣的實例程序。 Froshims,或新生 校內體育活動,竟是 第課外活動之一 我參與與年前。 而我和我的室友,與 一些其他的孩子在校園裡, 用於運行froshims程序。 我收到我的短信了。 現在,所以我們,早在一天,所以這 是1996年左右,有一個互聯網, 但沒有process--有 沒有網站froshims。 所以,如果你想報名參加 足球或排球也好, 您填寫這件事 稱為一張紙, 你會穿過哈佛走 院子裡,你會滑動 到郵件插槽監考官,誰 在威格爾斯沃,宿舍之一。 這是你註冊的。 他或她會再 撰寫一封電子郵件給您 手動,很像我 只是在這裡做與Maya, 然後你會得到證實 為已被註冊。 因此,這就像低 掛果樹,可以這麼說。 這是一種愚蠢的 我們使用紙本。 我希望我們能 只是去一個網站上, 或有新生去一個 網站,註冊為體育, 而只是自動完成很多東西 通過把他們的名字和電子郵件 等等到數據庫中。 而事實上,在第一個版本 該網站,使用超級難看的HTML, 可能看起來是這樣的。 它實際上是具有諷刺意味,更 尷尬的看著比這回 然後。 但我用的編程語言。 而不是PHP,而是叫Perl中, 這是一個較舊的語言, 但在精神上非常相似。 而我只是完全 教給自己。 我花了一段時間來弄明白, 問很多朋友的問題。 但是想法有 是完全一樣的。 因為什麼PHP真的設計 對於未在命令行的東西 我們只是打了, 但對於Web編程。 這真是綁在它的功能 設置為Web,如下。 這是froshims。 如果我想 以這種形式註冊, 這是相當難看, 當然,還讓我繼續前進 並且是一個不太舒服的學生, 和任何運動的馬修斯, 點擊註冊。 我想要的是能夠做的就是 從表單提交的信息, 沒有谷歌的服務器一樣 我們做了最後一次,完全 通過使用他們的後端欺騙,我 要實現自己的後端代碼。 這意味著寫PHP 即住在一個URL編碼 這種形式的數據可以提交到。 然後你的代碼, 用PHP編寫的一台服務器上, 然後可以響應該用戶輸入。 就像他或她的名字,還是舒適程度, 或宿舍,然後用它做什麼。 在這種情況下,我只 愣神打印出來 為文本,這是不是所有的漂亮。 但是,你當然可以 想像一下,如果你知道HTML, 你很快就會知道如何產生 HTML與打印f和打印, 和類似的功能,你當然可以 生成一個漂亮的網頁,上面寫著: 嘿大衛,你現在註冊。 你是一個不太舒服 學生從馬修斯,對不對? 你可以只用一大堆%SES的, 或大括號和美元符號 符號我用剛才,以 生成文本更人性化 莫過於此。 因此,讓我們來看看這個文件。 Froshim零點PHP看起來是這樣的。 當我重新加載CS50 IDE, froshim零看起來是這樣的。 這是froshim零點PHP。 而且你注意到你看這個文件? 聽眾:[聽不清] 揚聲器1:對不起,大聲一點好嗎? 聽眾:[聽不清]這一切都在HTML。 而事實上,這是因為 有趣的關於PHP 是,它被設計 是,為了更好的 不論好壞,間雜 與HTML代碼。 而事實上,即使這 文件,froshim零點PHP, 在頂部一個PHP評論 它,這一切都只是HTML。 但相反的,如果我打開了,讓我們 比方說,登記零點PHP,這 只是在頂部一個很大的評論。 這也看起來幾乎完全 如HTML,但為了什麼? 行,有什麼,21顯得有些怪異。 但是請注意,我進入PHP模式 與開放式支架問號PHP。 然後,我已經得到了一些東西。 然後在該行的末尾 幾乎我有,問號PHP。 這就是我所說的混合體。 你可以寫HTML,你只是 希望服務器吐了出來。 但是,如果你想要做的事 通過頁面動態中途, 像插入我的名字, 宿舍還是舒適度, 我可以用一個函數 像打印內容R,這是 打印遞歸的,這只是意味著 打印出這個變量,格式化 不過你想要的。 這真的不是 人類的目的,它只是 進行調試或診斷的目的。 所以這就是我是怎麼做的。 如果我不是去froshims雙點PHP, 請注意,這種形式的操作 未註冊零點PHP作為 old--前一個卻呈。 但它註冊了兩個點PHP。 因此,讓我們看看這個怎麼一 行為方式略有不同。 如果我去成兩個版本。 如果在這裡,如果我註冊為大衛少 舒適,從馬修斯的宿舍, 註冊。 所以這個時候它說,你 註冊,不是真的。 讓我們來看看我在這裡做。 如果我看註冊兩個點 PHP,這有一些更多的PHP代碼。 這是一個有點清潔劑,雖然它 仍然包裹在這條線有點長。 注意這裡。 我打印出我的HTML標記,我的頭標籤, 我的標題標籤,頭部,身體。 然後我開始說 像進入PHP模式。 而這樣的標籤,打開支架 PHP--問號PHP說, 哎,服務器,execute--解釋 下面的東西,PHP 直到看到結束標記。 而且即使你可能不知道的任何 其他PHP比你見過迄今為止, 那種你可以閱讀 它非常直觀。 如果名稱為空,或舒適性 空,或宿舍是空的,我該怎麼辦? 我說什麼給用戶? 您必須提供您的姓名, 舒適度,和宿舍,等等。 否則,我說你是 註冊,這不是真的。 我說的不是真的 因為沒有數據庫。 我不這樣做與數據的任何東西。 我只是把它扔了 出於演示的目的。 現在我有點skimped超過22行。 還有更多的語法 有,但美元符號 強調文章是一種有趣的。 這是什麼好的關於PHP。 在PHP中,你有什麼被稱為 幾個超級全局變量。 他們是那種更 比全局變量非常重要的。 而這些,所有的資本 正因為如此,配備了PHP。 所以,如果你有一台服務器,有一個 Web服務器安裝,如Apache, 你安裝的語言 對於PHP,突然支持你 可以開始使用這些超級 在代碼中的全局變量。 什麼是好的關於 PHP是,如果你只是 寫在點結尾的文件 PHP,把它放在一個Web服務器上, 然後提交表單給它 通過這一行動標籤和一個表單標籤, 在該action屬性 表單標籤,PHP和Web 完全計算出如何抓住 所有這些鍵值對了 類似問題的URL 馬克Q等於貓, 它會找出如何q和貓。 如果您提交的照片,或用戶名, 或口令喜歡的Facebook, PHP會找出適合你 其中所有的數據都是。 它會剛剛到手 你一個關聯數組 所謂的美元符號下劃線後, 或美元符號下劃線得到, 這取決於你是否是 使用GET或POST提交。 而且它只會交給你 一個超級全局變量, 因此,如果你想獲得的名字 用戶通過該網絡提交 表單,你真的只是說這個名字 超級全局變量,報價, 引文結束,名稱。 和報價,引文結束的舒適度, 和報價,引文結束的宿舍。 而且我們要能夠做到 這和這麼多用PHP。 即使這是 一陣旋風在它一眼, 我們將更加下週深入研究。 我們就為大家介紹一個數據庫 這樣你實際上是 將開始實施 自己的電子交易based-- 喜歡的網站,在短短一個星期的時間。 所以我們會看到你下一次,和 希望你有短信。 再見。 [音樂播放] [門框] 揚聲器2:嘿。 揚聲器3:這是怎麼回事? 揚聲器2:你在做什麼? 揚聲器3:一個問題工作組。 揚聲器2:好的。 高五。 [高五] 什麼are--呃,你在這裡做什麼? 揚聲器3:只是掛出。 剛從健身房回來。 我不由得 注意,當我們高擊掌相慶, 你有很粗糙的手。 你去健身房? 揚聲器2:否。 第 揚聲器3:哥們,你看上去蠻大的。 這是不好的,因為每個人都知道 8球是大男人在校園裡。 擊掌。 揚聲器2:哦,不。 不,我想我很好。 我覺得我很好。