1 00:00:00,000 --> 00:00:05,340 2 00:00:05,340 --> 00:00:07,370 >> 道格·勞埃德:所以我們 在C中做了很多工作, 3 00:00:07,370 --> 00:00:09,536 C是一個非常酷 語言,因為它給你 4 00:00:09,536 --> 00:00:12,840 潛水真正的能力 低電平到你的程序。 5 00:00:12,840 --> 00:00:16,810 我們可以做的事情為 真分鐘為操縱 6 00:00:16,810 --> 00:00:18,800 內存單個字節。 7 00:00:18,800 --> 00:00:21,420 回想一下,真正的指針 讓我們的靈活性。 8 00:00:21,420 --> 00:00:25,260 >> 但是,我們總是需要有 這細粒度的詳細程度 9 00:00:25,260 --> 00:00:26,820 在我們的計劃? 10 00:00:26,820 --> 00:00:28,210 或許不會,對不對? 11 00:00:28,210 --> 00:00:30,376 如果我們將有 作為之間的權衡 12 00:00:30,376 --> 00:00:32,911 能夠做到真的,真的 分鐘的事情,真的,真的 13 00:00:32,911 --> 00:00:35,910 我們沒有想到大事情 約,我們沒有實現 14 00:00:35,910 --> 00:00:40,290 這些真正的大想法,如果 他們已經內置了對我們來說, 15 00:00:40,290 --> 00:00:43,980 通常用於構建大 方案或大項目, 16 00:00:43,980 --> 00:00:49,130 我們可能會犯錯就在身邊 具有多語言的東西建 17 00:00:49,130 --> 00:00:51,300 對於我們,而不是有 低層次的東西。 18 00:00:51,300 --> 00:00:53,970 而這也正是PHP真正的用武之地。 19 00:00:53,970 --> 00:00:58,200 >> 現在,其原因之一 我們教CS50 PHP 20 00:00:58,200 --> 00:01:01,020 是它所轄嚴重的啟發 C.而事實上,在我看來, 21 00:01:01,020 --> 00:01:05,140 這裡實際有 祖種語言, 22 00:01:05,140 --> 00:01:08,200 是非常普遍的今天。 23 00:01:08,200 --> 00:01:10,110 C和LISP。 24 00:01:10,110 --> 00:01:13,280 而且他們祖先的語言 因為所有其他現代編程 25 00:01:13,280 --> 00:01:17,380 已經開發語言 自那時以來,受到啟發 26 00:01:17,380 --> 00:01:20,330 由一個或其他語法上。 27 00:01:20,330 --> 00:01:26,160 PHP是非常相似的語法 到C,而像Scheme語言, 28 00:01:26,160 --> 00:01:27,900 例如,其 你可能聽說過, 29 00:01:27,900 --> 00:01:32,070 在很大程度上受語言的啟發 叫LISP,這是一個較舊的語言。 30 00:01:32,070 --> 00:01:34,220 >> 因此,我們當教師的原因 PHP在CS50的是, 31 00:01:34,220 --> 00:01:37,730 通過了解c以從根本上 因為你在這一點上, 32 00:01:37,730 --> 00:01:41,280 拿起PHP,它給你的 有能力做更高層次的東西 33 00:01:41,280 --> 00:01:44,710 比C呢,是不是 這麼多的一道坎的, 34 00:01:44,710 --> 00:01:48,230 因為你已經有了 的語法的基本思想。 35 00:01:48,230 --> 00:01:50,590 C'S出現了將近 45年在這一點上。 36 00:01:50,590 --> 00:01:52,780 PHP的存在了大約20年。 37 00:01:52,780 --> 00:01:57,080 而在這25年 在程序員之間 38 00:01:57,080 --> 00:02:01,540 確定,他們將多 而有更高層次的能力, 39 00:02:01,540 --> 00:02:04,970 和錯誤和鬥爭 在20年間的 40 00:02:04,970 --> 00:02:08,210 導致PHP和其他現代語言。 41 00:02:08,210 --> 00:02:11,039 >> PHP的一個很好的選擇 軟件語言 42 00:02:11,039 --> 00:02:14,042 這allow--的 軟件that--在那裡你 43 00:02:14,042 --> 00:02:16,250 需要做的事情,在 C是實際上是複雜的。 44 00:02:16,250 --> 00:02:18,480 因此,例如,工作 在C字符串 45 00:02:18,480 --> 00:02:21,709 是非常複雜的,因為 因為我們知道,在C字符串 46 00:02:21,709 --> 00:02:23,250 真的字符只是陣列。 47 00:02:23,250 --> 00:02:25,230 這不是一個內建的數據類型。 48 00:02:25,230 --> 00:02:28,220 或許更重要的是, 這是我們甚至沒有覆蓋C, 49 00:02:28,220 --> 00:02:30,360 如果你需要做什麼 一些計算機網絡? 50 00:02:30,360 --> 00:02:30,860 好吧? 51 00:02:30,860 --> 00:02:34,920 >> C有這樣做的能力,但它是如此 晦澀難懂,因此很難真正做到。 52 00:02:34,920 --> 00:02:37,580 那豈不是很好,如果 語言有一個內置的,簡單的方法 53 00:02:37,580 --> 00:02:38,910 實現聯網? 54 00:02:38,910 --> 00:02:43,420 和PHP是一種語言,使的是, 或便利的是,相當多的。 55 00:02:43,420 --> 00:02:47,740 正如我所說的,PHP是非常沉重的啟發 由C.語法是非常相似的。 56 00:02:47,740 --> 00:02:51,760 所以它應該有希望使 過渡從一個到另一個 57 00:02:51,760 --> 00:02:54,710 比一些稍微有點軟 其他語言可能。 58 00:02:54,710 --> 00:02:58,800 >> 開始寫PHP,只需打開 文件以.php文件擴展名。 59 00:02:58,800 --> 00:03:00,670 從技術上講,這不是 實際需要, 60 00:03:00,670 --> 00:03:04,495 但如果你想要像語法 突出了IDE,因此該類型 61 00:03:04,495 --> 00:03:07,620 名,或變量名,函數, 你知道,語言的關鍵字 62 00:03:07,620 --> 00:03:10,090 在突出顯示 特定的顏色,你一般 63 00:03:10,090 --> 00:03:14,020 要使用命名您的文件 一個特定的文件擴展名。 64 00:03:14,020 --> 00:03:18,430 因此,我們已經命名我們的文件以.php 擴展名,但後來也用PHP, 65 00:03:18,430 --> 00:03:23,310 所有我們寫的PHP代碼 文件必須包含在這些PHP 66 00:03:23,310 --> 00:03:25,190 分隔符,我們看到 這裡在屏幕上。 67 00:03:25,190 --> 00:03:27,910 尖括號?PHP的開始。 68 00:03:27,910 --> 00:03:30,860 然後我們寫我們所有的PHP 我們要在兩者之間的代碼。 69 00:03:30,860 --> 00:03:32,260 接著 ? 70 00:03:32,260 --> 00:03:34,710 尖括號關閉。 71 00:03:34,710 --> 00:03:37,170 >> 如果我們不這樣做,那麼 什麼會發生? 72 00:03:37,170 --> 00:03:38,170 它不會崩潰。 73 00:03:38,170 --> 00:03:39,410 它不會 真的毀了我們的計劃。 74 00:03:39,410 --> 00:03:41,440 但它不會有 我們想要的效果。 75 00:03:41,440 --> 00:03:44,540 這是怎麼回事發生,真的, 當我們嘗試並運行這個程序, 76 00:03:44,540 --> 00:03:50,330 一切不是那些分隔符之間 將要被逐字打印出來。 77 00:03:50,330 --> 00:03:52,210 它不會 實際執行的代碼, 78 00:03:52,210 --> 00:03:56,010 這將只 逐字打印出來。 79 00:03:56,010 --> 00:03:57,320 >> 現在為什麼是這樣? 80 00:03:57,320 --> 00:04:00,416 所以C是什麼知 作為一種編譯語言。 81 00:04:00,416 --> 00:04:03,040 你可能熟悉 使你的程序的步驟, 82 00:04:03,040 --> 00:04:07,820 打開.c文件和.h文件 與使一個單一的可執行文件, 83 00:04:07,820 --> 00:04:11,130 特別是使用 鐺為我們的編譯器。 84 00:04:11,130 --> 00:04:13,030 PHP,不過,不 有此等價的。 85 00:04:13,030 --> 00:04:15,600 PHP是所謂的 解釋語言。 86 00:04:15,600 --> 00:04:16,760 什麼意思呢? 87 00:04:16,760 --> 00:04:20,680 >> 嗯,這意味著我們不必轉換 我們的源代碼,以零和一 88 00:04:20,680 --> 00:04:21,470 預先。 89 00:04:21,470 --> 00:04:23,900 相反,有一個程序, 其也被稱為 90 00:04:23,900 --> 00:04:29,771 PHP是一種理解PHP和 那種可以把它的飛行。 91 00:04:29,771 --> 00:04:32,520 這並不是真正的完全準確, 但是這是一個非常好的比喻 92 00:04:32,520 --> 00:04:33,760 發生的事情。 93 00:04:33,760 --> 00:04:37,230 它解釋這些 零和一的飛行。 94 00:04:37,230 --> 00:04:40,160 因此,如果它不知道 如何處理事情, 95 00:04:40,160 --> 00:04:42,800 如果它不知道如何 過程PHP,你可能 96 00:04:42,800 --> 00:04:44,680 希望把該文本在那裡,對不對? 97 00:04:44,680 --> 00:04:48,960 >> 你可能希望把代碼 還有,即使它不是PHP--之間 98 00:04:48,960 --> 00:04:50,035 PHP的分隔符。 99 00:04:50,035 --> 00:04:51,910 但是 - 所以它不會 要刪除帳戶, 100 00:04:51,910 --> 00:04:53,576 它只是將基本放棄它。 101 00:04:53,576 --> 00:04:55,550 因此,這將打印 它輸出到屏幕。 102 00:04:55,550 --> 00:04:57,150 >> 這似乎是這是一個壞 的事情,但實際上它是 103 00:04:57,150 --> 00:04:58,220 要成為一個真正的 一件好事,因為我們將 104 00:04:58,220 --> 00:05:00,390 看看當我們談論 PHP網站開發, 105 00:05:00,390 --> 00:05:04,010 因為這意味著我們可以 點綴PHP和HTML。 106 00:05:04,010 --> 00:05:06,640 我們可以共同使用這些技術 創建一個更加動態的Web頁面。 107 00:05:06,640 --> 00:05:10,650 但更多的,在 視頻PHP的Web開發。 108 00:05:10,650 --> 00:05:12,021 >> 那麼,什麼是PHP語法? 109 00:05:12,021 --> 00:05:13,520 這就是這部影片的全部意義所在。 110 00:05:13,520 --> 00:05:14,850 讓我們來談談吧。 111 00:05:14,850 --> 00:05:16,490 >> 所以,展開,取出,變量。 112 00:05:16,490 --> 00:05:18,030 PHP變量存在。 113 00:05:18,030 --> 00:05:20,067 只是有兩個大 從C差異 114 00:05:20,067 --> 00:05:21,900 第一是,有 沒有類型說明符。 115 00:05:21,900 --> 00:05:24,245 我們沒有說INT, char和float,所有的東西。 116 00:05:24,245 --> 00:05:25,620 我們沒有做到這一點了。 117 00:05:25,620 --> 00:05:26,810 PHP是一種現代語言。 118 00:05:26,810 --> 00:05:28,910 它可以計算出你在做什麼 試圖做或做一個最好的 119 00:05:28,910 --> 00:05:30,451 想為你想要做的事。 120 00:05:30,451 --> 00:05:31,700 所以,這是相當不錯的。 121 00:05:31,700 --> 00:05:35,330 >> 另一件事是,所有變量 名稱必須以一個美元符號。 122 00:05:35,330 --> 00:05:36,940 這只是一些習慣。 123 00:05:36,940 --> 00:05:39,496 這是一個有點古怪,因為 它使PHP可以理解 124 00:05:39,496 --> 00:05:40,870 什麼是可變的,什麼不是。 125 00:05:40,870 --> 00:05:43,340 所以,每一個變量名 始於一個美元符號。 126 00:05:43,340 --> 00:05:46,884 因此,在C中,我們可能會說 這樣,INT X = 54。 127 00:05:46,884 --> 00:05:48,550 我們不必這樣做了在PHP。 128 00:05:48,550 --> 00:05:52,540 我們只能說$ X = 54。 129 00:05:52,540 --> 00:05:55,920 我們可以說,例如,在C, 如果我們磅包括CS50 .H 130 00:05:55,920 --> 00:06:00,314 頭文件中,我們可以說 串詞=“這是CS50。” 131 00:06:00,314 --> 00:06:01,980 我們沒有做,在PHP中,雖然。 132 00:06:01,980 --> 00:06:04,865 我們只能說$短語 =“這是CS50。” 133 00:06:04,865 --> 00:06:08,760 而事實上,串現 在PHP一個內置數據類型, 134 00:06:08,760 --> 00:06:10,950 或者更確切地說,PHP懂得 什麼是字符串。 135 00:06:10,950 --> 00:06:15,612 它是獨立於陣列 字符的像它是在C 136 00:06:15,612 --> 00:06:17,570 所有您最喜愛的 從C條件語句 137 00:06:17,570 --> 00:06:19,520 仍然可以供您使用。 138 00:06:19,520 --> 00:06:21,140 所以沒有什麼大的轉變存在。 139 00:06:21,140 --> 00:06:23,400 我們可以say--我們可以有 如果這樣的語句。 140 00:06:23,400 --> 00:06:28,210 如果$ Y 43,或$ Z = 15。 141 00:06:28,210 --> 00:06:29,690 所以這是非常簡單的。 142 00:06:29,690 --> 00:06:31,980 我們可以有,如果和其他人。 143 00:06:31,980 --> 00:06:34,210 我們可以有if和else if。 144 00:06:34,210 --> 00:06:36,430 >> 而發現一些 相當不錯的位置,而這 145 00:06:36,430 --> 00:06:39,620 是那種那些之一 PHP的優勢與C,通知 146 00:06:39,620 --> 00:06:41,510 我們沒有使用什麼功能嗎? 147 00:06:41,510 --> 00:06:47,737 我們使用==來比較 變量$名稱,為字符串。 148 00:06:47,737 --> 00:06:49,070 我們不能這樣做,在C,對不對? 149 00:06:49,070 --> 00:06:53,200 我們不得不使用調用的函數 STRCOMP或StrEndComp或任何 150 00:06:53,200 --> 00:06:54,840 其相關的表兄弟。 151 00:06:54,840 --> 00:06:56,980 >> 所以,我們已經看到這些優勢。 152 00:06:56,980 --> 00:07:00,930 我們並沒有做什麼 愚蠢或者不直觀 153 00:07:00,930 --> 00:07:03,540 作為調用一個調用的函數 STRCOMP如果我只是想測試 154 00:07:03,540 --> 00:07:05,237 是否一個值等於一個字符串。 155 00:07:05,237 --> 00:07:07,820 我可以只使用等於等號, 就像我可以做任何事情。 156 00:07:07,820 --> 00:07:09,560 因此,有一個優勢。 157 00:07:09,560 --> 00:07:13,350 >> 有時,順便說一句,你可能 看到否則,如果為一個字,ELSEIF。 158 00:07:13,350 --> 00:07:14,910 而這在PHP中確定為好。 159 00:07:14,910 --> 00:07:17,020 所以,有時你可能會看到這一點。 160 00:07:17,020 --> 00:07:17,790 這不是一個錯字。 161 00:07:17,790 --> 00:07:21,830 PHP實際上理解ELSEIF。 162 00:07:21,830 --> 00:07:23,980 我不知道他們為什麼 決定實施的, 163 00:07:23,980 --> 00:07:28,220 但正如我們已經見過很多次 在我們的影片到目前為止, 164 00:07:28,220 --> 00:07:30,460 我們程序員喜歡它,如果 我們可以做的事情迅速, 165 00:07:30,460 --> 00:07:33,660 因此擺脫了空間 顯然是一個很大的優勢。 166 00:07:33,660 --> 00:07:34,800 >> 這就是,如果和ELSEIF。 167 00:07:34,800 --> 00:07:37,540 我們也有三元運算符, 召回問號冒號, 168 00:07:37,540 --> 00:07:43,262 對於非常短的形式,如果其他人 或有條件的分支。 169 00:07:43,262 --> 00:07:45,470 而且顯然,在此, 我們想在這裡做什麼 170 00:07:45,470 --> 00:07:49,720 被分配變量 $信真或假, 171 00:07:49,720 --> 00:07:54,110 這取決於是否是$ var 為英文字母。 172 00:07:54,110 --> 00:07:57,320 因此,這是非常相似,因而isalpha 我們很熟悉的C. 173 00:07:57,320 --> 00:07:59,010 這有點相當於在PHP中。 174 00:07:59,010 --> 00:08:01,550 的功能是很明顯 叫而ctype_alpha, 175 00:08:01,550 --> 00:08:03,450 但是這就是我們如何做到這一點在PHP。 176 00:08:03,450 --> 00:08:08,560 所以,這一切都將是是,如果 $ var是一個字母,$封信是真實的。 177 00:08:08,560 --> 00:08:13,820 如果是$ var是不是一個字母, $信是假的。 178 00:08:13,820 --> 00:08:15,820 >> 我們也仍然有switch語句。 179 00:08:15,820 --> 00:08:17,870 我們還記得由C為好。 180 00:08:17,870 --> 00:08:22,480 在最高層那裡,那我們怎麼辦 像GET int或得到字符串。 181 00:08:22,480 --> 00:08:23,845 因此,PHP有一個內置的。 182 00:08:23,845 --> 00:08:25,470 我們不需要CS50庫了。 183 00:08:25,470 --> 00:08:27,237 我們可以只使用該功能的ReadLine。 184 00:08:27,237 --> 00:08:29,820 什麼是會做的是打印 出消息,“你的狀態, 185 00:08:29,820 --> 00:08:33,820 請“,然後閃爍提示 等待用戶輸入 186 00:08:33,820 --> 00:08:34,739 一些信息。 187 00:08:34,739 --> 00:08:36,530 現在注意什麼 我們可以用開關做。 188 00:08:36,530 --> 00:08:39,105 如果你以前使用過它, 你可能還記得,開關 189 00:08:39,105 --> 00:08:44,960 僅限幾乎為整數,並 人物,但現在我們可以使用字符串。 190 00:08:44,960 --> 00:08:50,190 而事實上,switch語句 在PHP是相當多的靈活 191 00:08:50,190 --> 00:08:54,880 比C.其表弟 192 00:08:54,880 --> 00:08:55,380 循環。 193 00:08:55,380 --> 00:08:58,130 就像條件句,所有的 你的老歌依然存在。 194 00:08:58,130 --> 00:09:00,740 我們有while循環的計算 從1到在這種情況下,100。 195 00:09:00,740 --> 00:09:03,940 我們已經做while循環 表示,計數從1到100, 196 00:09:03,940 --> 00:09:06,200 我們有for循環 表示,計數從1到100。 197 00:09:06,200 --> 00:09:07,220 所以沒有什麼大的飛躍那裡。 198 00:09:07,220 --> 00:09:09,360 語法是相當 多完全一樣, 199 00:09:09,360 --> 00:09:11,760 除了現在我們使用 美元符號變量,而不是 200 00:09:11,760 --> 00:09:17,260 聲明整數變量或 這樣的事情對我們的專櫃。 201 00:09:17,260 --> 00:09:20,090 >> 這就是事情得到一個 很多優於C,雖然。 202 00:09:20,090 --> 00:09:21,020 陣列。 203 00:09:21,020 --> 00:09:23,020 所以,記得當時我們 談到C,以 204 00:09:23,020 --> 00:09:25,560 為我們成長和收縮 信息集, 205 00:09:25,560 --> 00:09:28,310 我們需要進行排序默認 這一想法的一個鍊錶, 206 00:09:28,310 --> 00:09:30,780 因為C數組是固定大小。 207 00:09:30,780 --> 00:09:31,800 我們不能縮小它們。 208 00:09:31,800 --> 00:09:32,930 我們不能生長他們。 209 00:09:32,930 --> 00:09:36,074 我們不得不重新分配內存 做這一切瘋狂 210 00:09:36,074 --> 00:09:38,490 或使用鍊錶,這 佔用相當多的空間。 211 00:09:38,490 --> 00:09:41,590 但在PHP中,陣列 大小不是固定的了。 212 00:09:41,590 --> 00:09:43,240 他們可以成長,他們可以收縮。 213 00:09:43,240 --> 00:09:46,660 如此反复,這20年間所存在 C的第一個版本之間 214 00:09:46,660 --> 00:09:49,440 並首次發布PHP, 我們決定,你知道, 215 00:09:49,440 --> 00:09:51,670 這將是非常巨大的 如果我們能做到這一點。 216 00:09:51,670 --> 00:09:54,100 因此,我們實現這一點。 217 00:09:54,100 --> 00:09:58,040 >> 所以PHP數組是不固定的 大小,因為PHP並沒有真正 218 00:09:58,040 --> 00:10:03,090 有程序員朝前 類型的概念, 219 00:10:03,090 --> 00:10:05,110 我們可以混合數據類型 在我們的陣列了。 220 00:10:05,110 --> 00:10:08,100 因此,我們甚至沒有使用所有 整數或全部飄點, 221 00:10:08,100 --> 00:10:12,826 我們可以擁有所有的混合 不同種在一個陣列。 222 00:10:12,826 --> 00:10:14,700 聲明數組是 很簡單。 223 00:10:14,700 --> 00:10:16,116 這就像任何其他變量。 224 00:10:16,116 --> 00:10:20,020 $ NUMS =陣列(1,2,3, 4),陣列是一個功能 225 00:10:20,020 --> 00:10:22,760 這是內置到PHP的 將創建一個數組為您服務。 226 00:10:22,760 --> 00:10:28,315 這產生四個值的陣列, 在這種情況下的數字,稱為$ NUMS。 227 00:10:28,315 --> 00:10:29,940 而且也做一個以上的方式。 228 00:10:29,940 --> 00:10:32,420 而且我們要 看到這個有很多,在PHP。 229 00:10:32,420 --> 00:10:36,380 PHP已經開發了許多不同的 人的發展和增長和增長。 230 00:10:36,380 --> 00:10:40,050 有平時不只是兩個或 三種方式做一些事情在PHP中, 231 00:10:40,050 --> 00:10:42,170 通常有像10或20。 232 00:10:42,170 --> 00:10:45,300 這只是另一種常見的 方法來聲明數組。 233 00:10:45,300 --> 00:10:48,310 $ NUMS =正方形支架1,2,3,4。 234 00:10:48,310 --> 00:10:53,170 因此,這是有點類似C的角度 br--大括號標記,而。 $ - 235 00:10:53,170 --> 00:10:58,525 否則會是int NUMS方 括號等於大括號1,2,3,4。 236 00:10:58,525 --> 00:11:02,710 在PHP是$ NUMS =方 支架1,2,3,4。 237 00:11:02,710 --> 00:11:08,920 但是,這兩個例子在這裡給我 四個在這種情況下,整數的數組。 238 00:11:08,920 --> 00:11:10,920 >> 如果我想釘東西呢? 239 00:11:10,920 --> 00:11:14,760 嗯,我只能說$ NUMS 4,這 再次,我們仍然從0這裡計數 240 00:11:14,760 --> 00:11:17,800 在PHP中,將第五 數組的元素。 241 00:11:17,800 --> 00:11:18,990 我只能這麼說。 242 00:11:18,990 --> 00:11:22,860 我不會遭受SEG 故障,因為我的數組只是 243 00:11:22,860 --> 00:11:24,337 要增長以容納。 244 00:11:24,337 --> 00:11:25,420 這是相當不錯的,對不對? 245 00:11:25,420 --> 00:11:28,400 而事實上,我甚至都不需要 指定我想要把它。 246 00:11:28,400 --> 00:11:31,220 我只能說這個,只是 釘正確堅持到最後, 247 00:11:31,220 --> 00:11:34,099 或者,我可以甚至只是 說$ NUMS 20或1000。 248 00:11:34,099 --> 00:11:35,140 這其實並不重要。 249 00:11:35,140 --> 00:11:38,330 它仍然只是去 對上釘到年底。 250 00:11:38,330 --> 00:11:41,490 >> 因此,我可以成長,as--我們 不會掩蓋它在這裡, 251 00:11:41,490 --> 00:11:45,360 但我可以拼接或條狀 元素從數組中為好, 252 00:11:45,360 --> 00:11:50,064 和數組將收縮以適應 現在缺失或空白區域。 253 00:11:50,064 --> 00:11:52,230 還有另一種方式來釘 東西上的陣列, 254 00:11:52,230 --> 00:11:54,330 這是一種稱為array_push函數。 255 00:11:54,330 --> 00:11:57,860 如此反复,只是這種想法是 能夠做到的事情很多不同的方式。 256 00:11:57,860 --> 00:12:01,950 因此,我們已經看到了三種不同的方式,現在 到粘性另一元件上的陣列。 257 00:12:01,950 --> 00:12:06,900 因此,這又增加了一個元素 到$ NUMS數組的末尾。 258 00:12:06,900 --> 00:12:08,340 我們可以混淆了我們的數據類型。 259 00:12:08,340 --> 00:12:13,110 所以,我有不是一個數組 1,2,3,4,但1,真實,3,4, 260 00:12:13,110 --> 00:12:16,420 其中true是一個布爾值,然後 如果我想釘在另一個元素 261 00:12:16,420 --> 00:12:20,860 該陣列,也許是一個字符串, 字符串“五,”我能做到這一點。 262 00:12:20,860 --> 00:12:26,110 現在我的數組會 是1,真實的,3,4,5。 263 00:12:26,110 --> 00:12:28,640 這個詞五,而不是整數5。 264 00:12:28,640 --> 00:12:31,270 因此,具有很大的靈活性存在。 265 00:12:31,270 --> 00:12:33,290 >> 靈活性得到 更妙的是,雖然, 266 00:12:33,290 --> 00:12:37,530 因為PHP擁有的東西支持 稱為關聯數組。 267 00:12:37,530 --> 00:12:40,660 而我們那種隱約談到 在C中有關關聯數組 268 00:12:40,660 --> 00:12:44,740 在哈希表的情況下,因為 有什麼關聯數組是真正的所有 269 00:12:44,740 --> 00:12:48,950 關於正在關鍵 值對映射。 270 00:12:48,950 --> 00:12:53,410 而且在這種情況下,如果keys-- 我們熟悉的C數組, 271 00:12:53,410 --> 00:12:55,440 鍵是索引編號。 272 00:12:55,440 --> 00:12:57,530 0,1,2,3。 273 00:12:57,530 --> 00:13:03,070 和值是什麼,我們發現, 陣列0,陣列1,陣列2,依此類推。 274 00:13:03,070 --> 00:13:06,310 所以,鍵是索引, 和的值是 275 00:13:06,310 --> 00:13:10,060 什麼是該數組中的位置, 通過該索引指定。 276 00:13:10,060 --> 00:13:15,130 >> 但在PHP中,我們沒有做到這一點 概念陣列0,陣列1,陣列2 277 00:13:15,130 --> 00:13:15,830 了。 278 00:13:15,830 --> 00:13:21,025 我們現在可以用實際的話 以鍵映射到值。 279 00:13:21,025 --> 00:13:22,650 所以我可以說這樣的事情。 280 00:13:22,650 --> 00:13:26,710 我可以用創建數組 方括號的語法如下。 281 00:13:26,710 --> 00:13:30,685 $比薩餅=括號 “奶酪”,然後 282 00:13:30,685 --> 00:13:37,210 這種雙箭頭符號, 8.99,“辣”,箭頭10.99-- 9.99, 283 00:13:37,210 --> 00:13:37,880 等等。 284 00:13:37,880 --> 00:13:39,060 所以,這是怎麼回事嗎? 285 00:13:39,060 --> 00:13:41,040 什麼是我真正在做什麼? 286 00:13:41,040 --> 00:13:43,990 我創建鍵值對映射。 287 00:13:43,990 --> 00:13:49,060 因此,而不是說,例如, 比薩餅0,1片,比薩餅2, 288 00:13:49,060 --> 00:13:52,350 我現在可以說的比薩餅 奶酪,香腸比薩餅, 289 00:13:52,350 --> 00:13:55,120 並參考值 與之相關聯。 290 00:13:55,120 --> 00:13:56,970 >> 因此,這裡有我們的鑰匙為綠色。 291 00:13:56,970 --> 00:13:59,870 奶酪,香腸, 蔬菜,水牛雞。 292 00:13:59,870 --> 00:14:04,200 這裡是使箭頭 該鍵值對的映射。 293 00:14:04,200 --> 00:14:07,420 然後這裡的值 在該陣列的位置。 294 00:14:07,420 --> 00:14:10,330 因此,這等於是說陣列0等於8.99。 295 00:14:10,330 --> 00:14:11,720 最關鍵的是0。 296 00:14:11,720 --> 00:14:13,600 該值是8.99。 297 00:14:13,600 --> 00:14:19,370 我現在可以說陣列奶酪,或在此 案例比薩奶酪,奶酪是關鍵, 298 00:14:19,370 --> 00:14:23,340 而且我發現在 比薩奶酪是8.99。 299 00:14:23,340 --> 00:14:25,540 這就是我發現那裡的價值。 300 00:14:25,540 --> 00:14:28,124 >> 因此,我可以說這樣的話。 $比薩奶酪= 7.99。 301 00:14:28,124 --> 00:14:29,040 說我有一個轉讓。 302 00:14:29,040 --> 00:14:31,750 我想dis--我要降 奶酪比薩餅的價格。 303 00:14:31,750 --> 00:14:35,620 或者,我可以用蔬菜 比薩餅的條件的一部分, 304 00:14:35,620 --> 00:14:39,990 或者我可以添加新的元素,我 陣列,就像我可以做以前。 305 00:14:39,990 --> 00:14:44,680 我可以添加新的元素,這 關聯數組鍵“臘肉” 306 00:14:44,680 --> 00:14:49,250 和值13.49。 307 00:14:49,250 --> 00:14:53,820 >> 但這種引入了一個問題, 如果你想想看一秒鐘。 308 00:14:53,820 --> 00:14:55,721 我們如何在這個數組中循環? 309 00:14:55,721 --> 00:14:56,220 對? 310 00:14:56,220 --> 00:14:59,820 在C語言中,我們只是有一個 for循環,典型地,該 311 00:14:59,820 --> 00:15:03,650 在從0運行至 減1的陣列的大小。 312 00:15:03,650 --> 00:15:08,060 陣列具有在n個元件,所述 有效的索引是0到n減去​​1。 313 00:15:08,060 --> 00:15:11,530 因此,我們可以使用一個for循環 逐步完成每一個元素。 314 00:15:11,530 --> 00:15:13,530 >> 但是,這不是真的 一樣了,對不對? 315 00:15:13,530 --> 00:15:17,360 現在,我們有鍵值對 映射,其中鍵是的話, 316 00:15:17,360 --> 00:15:19,970 我們如何遍歷所有的話嗎? 317 00:15:19,970 --> 00:15:22,420 好了,幸運的是,PHP有 一個方法來處理這件事, 318 00:15:22,420 --> 00:15:24,580 所以我們會跳回 以循環為第二 319 00:15:24,580 --> 00:15:30,780 引入第四種循環的 存在於PHP稱為foreach循環。 320 00:15:30,780 --> 00:15:34,430 什麼foreach循環的作用是 它基本上是同樣的想法。 321 00:15:34,430 --> 00:15:36,060 你可以用它為任何類型的數組。 322 00:15:36,060 --> 00:15:38,100 但它基本上是 同樣的想法作為一個for循環, 323 00:15:38,100 --> 00:15:40,750 只是,而不是使用 索引號,你只要 324 00:15:40,750 --> 00:15:45,830 有這樣的語法怪異在哪裡 你叫的每一個元素 325 00:15:45,830 --> 00:15:47,550 一個名稱這個循環的目的。 326 00:15:47,550 --> 00:15:49,258 >> 因此,在這種情況下, 的foreach($數組$鍵)。 327 00:15:49,258 --> 00:15:52,900 328 00:15:52,900 --> 00:15:56,450 基本上,該評論指出, 這foreach循環內, 329 00:15:56,450 --> 00:16:00,466 它會走了過來每一個 $陣列,其通常的元件 330 00:16:00,466 --> 00:16:03,340 將是一個關聯數組, 但真正能成為任何類型的數組 331 00:16:03,340 --> 00:16:05,419 要在PHP。 332 00:16:05,419 --> 00:16:07,210 而每一次,在 一個for循環你可能 333 00:16:07,210 --> 00:16:13,780 說$數組方括號 $我,你可以只說$鍵。 334 00:16:13,780 --> 00:16:22,340 這樣$鍵變成一個別名為每 你的PHP關聯數組的索引, 335 00:16:22,340 --> 00:16:23,710 所以你可以使用它這樣。 336 00:16:23,710 --> 00:16:25,897 >> 因此,例如,我們已經 現在得到我們的比薩餅陣列。 337 00:16:25,897 --> 00:16:27,730 那種我塞到 到角落裡有 338 00:16:27,730 --> 00:16:31,080 所以我們可以用它做一個簡單的例子。 339 00:16:31,080 --> 00:16:36,420 如果我說的foreach($比薩餅 $比薩餅),好了,發生了什麼? 340 00:16:36,420 --> 00:16:42,400 好吧,我會遍歷每個 數組$比薩餅的單個元素, 341 00:16:42,400 --> 00:16:46,670 並在這樣做,我會打電話給 每一個元素,當我裡面 342 00:16:46,670 --> 00:16:49,400 對身體的循環,$​​比薩餅。 343 00:16:49,400 --> 00:16:52,440 >> 所以這是形式的 替身,回憶,那$比薩餅 344 00:16:52,440 --> 00:16:59,140 是替身的說法 $比薩餅方括號$ I 345 00:16:59,140 --> 00:17:03,370 如果我們用一個for循環,在那裡我們 可以去從$ i = 0到,在這種情況下, 346 00:17:03,370 --> 00:17:06,089 $ I = 3。 347 00:17:06,089 --> 00:17:09,780 如果我們沒有鍵值對 這裡,這將是元件0,1,2,3, 348 00:17:09,780 --> 00:17:16,390 我們會用一個for循環去 $比薩餅0,$比薩餅1,$比薩餅2, 349 00:17:16,390 --> 00:17:17,750 $比薩餅3。 350 00:17:17,750 --> 00:17:23,130 所以,現在只需$比薩餅代 該專用密鑰。 351 00:17:23,130 --> 00:17:25,630 >> 那麼,這是怎麼回事打印出來? 352 00:17:25,630 --> 00:17:29,030 我打印出$比薩餅。 353 00:17:29,030 --> 00:17:35,270 我該怎麼找at-- 如果我打印出$比薩餅,$ I? 354 00:17:35,270 --> 00:17:35,770 對? 355 00:17:35,770 --> 00:17:38,680 如果我要打印出來 比薩餅的第i個元素, 356 00:17:38,680 --> 00:17:40,070 我該怎麼打印? 357 00:17:40,070 --> 00:17:42,580 我要打印出來的 在該位置值,對不對? 358 00:17:42,580 --> 00:17:45,370 就像如果我們這樣做 這在C的範圍內, 359 00:17:45,370 --> 00:17:49,786 我們通常不會使用我們的迭代器 變量,INT I = 0,i為小於3, 360 00:17:49,786 --> 00:17:52,900 我+ +,打印出0,1,2,3。 361 00:17:52,900 --> 00:17:57,500 我們打印出數組0, 陣列1,陣列2,陣列3。 362 00:17:57,500 --> 00:17:59,580 所以這是什麼打印出來是這樣的。 363 00:17:59,580 --> 00:18:01,150 它的價格列表。 364 00:18:01,150 --> 00:18:05,750 8.99,9.99,10.99,11.99。 365 00:18:05,750 --> 00:18:06,900 >> 現在,快速注意到這裡。 366 00:18:06,900 --> 00:18:10,900 foreach循環並不一定 為了打印出的東西。 367 00:18:10,900 --> 00:18:12,770 它不能保證。 368 00:18:12,770 --> 00:18:13,550 它通常不會。 369 00:18:13,550 --> 00:18:17,667 它通常設在順序 該元素被添加到陣列中, 370 00:18:17,667 --> 00:18:18,750 因此只需牢記這一點。 371 00:18:18,750 --> 00:18:20,830 它可能不是為了。 372 00:18:20,830 --> 00:18:23,930 但foreach循環將遍歷 橫跨每一個元件 373 00:18:23,930 --> 00:18:25,060 所討論的陣列。 374 00:18:25,060 --> 00:18:27,980 在這種情況下,再次, 該數組是$比薩餅。 375 00:18:27,980 --> 00:18:32,920 >> 如果我可以改變語法,不過, 我想同時得到鍵和值。 376 00:18:32,920 --> 00:18:37,179 與其說$比薩餅 為$比薩餅,我可以這樣說。 377 00:18:37,179 --> 00:18:39,470 如果你看一下我所 這裡以綠色突出顯示, 378 00:18:39,470 --> 00:18:42,130 它看起來像一個鍵值對映射。 379 00:18:42,130 --> 00:18:45,980 所以,如果你 - 即使你是不是 完全知道它要幹什麼, 380 00:18:45,980 --> 00:18:49,300 你可能已經猜到 即$餡料是怎麼回事 381 00:18:49,300 --> 00:18:53,800 要在這種情況下,鍵和 $價格將是價值。 382 00:18:53,800 --> 00:18:59,200 所以我現在替換的每一個元素 的$比薩作為一個鍵值對, 383 00:18:59,200 --> 00:19:03,900 現在我可以參考的關鍵和 值,這可能會派上用場, 384 00:19:03,900 --> 00:19:05,590 例如,如下所述。 385 00:19:05,590 --> 00:19:10,170 >> “一個整體” - 這是一個很大的 印刷回事這裡 - “一個整體” 386 00:19:10,170 --> 00:19:17,300 一流“比薩餅成本$”的價格,然後 我打印出一個句點和一個反斜杠ñ。 387 00:19:17,300 --> 00:19:23,420 所以,現在,通知我再一次有機會獲得 一個鍵,$摘心,和一個值,$價格。 388 00:19:23,420 --> 00:19:26,647 所以,你能猜出這是什麼 將要打印出來? 389 00:19:26,647 --> 00:19:29,480 有很多打印報表, 但只有一個反斜杠N, 390 00:19:29,480 --> 00:19:33,410 所以它要打印的東西 在一個單一的代碼行的entire--。 391 00:19:33,410 --> 00:19:36,965 >> 如果我可以參閱鍵 和的值,則現在, 392 00:19:36,965 --> 00:19:39,090 而不是僅僅能夠 打印出來的價格, 393 00:19:39,090 --> 00:19:41,330 我可以打印出這樣的事情。 394 00:19:41,330 --> 00:19:43,780 “整整一個奶酪比薩售價$ 8,99。” 395 00:19:43,780 --> 00:19:47,150 而現在,我使用所有的keys--的 奶酪,香腸,蔬菜, 396 00:19:47,150 --> 00:19:49,640 水牛chicken--和的值。 397 00:19:49,640 --> 00:19:53,980 8.99,9.99,10.99,11.99於是 這只是一種不同的方式 398 00:19:53,980 --> 00:19:57,840 做一個foreach循環,而不是 只是給你訪問到的值, 399 00:19:57,840 --> 00:20:02,950 它只是給你 - 它給你 訪問的鍵和值。 400 00:20:02,950 --> 00:20:04,411 >> 因此打印出的信息。 401 00:20:04,411 --> 00:20:07,410 我已經做了幾個 不同的方式,你可能已經注意到。 402 00:20:07,410 --> 00:20:11,080 這兩個函數,我們已經主要 看到的都是打印和迴聲。 403 00:20:11,080 --> 00:20:14,380 而對於幾乎所有意圖和 目的,他們是完全一樣的。 404 00:20:14,380 --> 00:20:17,130 They're--有一個非常微妙 區別這不值得 405 00:20:17,130 --> 00:20:21,130 進入,但基本上無處不在 您可以使用打印你大概可以使用 406 00:20:21,130 --> 00:20:22,370 迴聲也是如此。 407 00:20:22,370 --> 00:20:23,610 >> 而這還不是只有兩個。 408 00:20:23,610 --> 00:20:26,970 PHP有很多不同 方法來打印東西出來, 409 00:20:26,970 --> 00:20:30,520 它也有方法來整合 變量到字符串中間。 410 00:20:30,520 --> 00:20:32,860 因此,從C回想一下,你 記得有什麼功能 411 00:20:32,860 --> 00:20:37,580 我們可以用它來替代變量 成的事情,我們要打印出來? 412 00:20:37,580 --> 00:20:40,160 你可能使用此 功能相當多。 413 00:20:40,160 --> 00:20:42,290 printf的,對不對? 414 00:20:42,290 --> 00:20:45,290 因此,這是我們以前裡面有 我們foreach循環的上下文中。 415 00:20:45,290 --> 00:20:48,000 我們有這五個 單獨的打印報表, 416 00:20:48,000 --> 00:20:50,330 因為這是唯一的 這樣,我真的知道的時候 417 00:20:50,330 --> 00:20:52,450 如何打印出消息。 418 00:20:52,450 --> 00:20:59,560 我不知道如何整合 變量$摘心到我的PHP代碼。 419 00:20:59,560 --> 00:21:03,700 好吧,如果我只是採取了胡亂猜測, printf的,它實際上會起作用。 420 00:21:03,700 --> 00:21:08,980 printf的是,我可以用一個函數 在PHP中,就像我可以在C使用 421 00:21:08,980 --> 00:21:11,880 >> 所以這樣的事情,printf的, 再次,我們很熟悉。 422 00:21:11,880 --> 00:21:16,420 第一個%s被替換 與$摘心的價值。 423 00:21:16,420 --> 00:21:19,700 第二個%s被替換 與$價格的價值。 424 00:21:19,700 --> 00:21:22,630 所以我interpellating, 這僅僅是一個奇特的方式 425 00:21:22,630 --> 00:21:25,400 對他說,我堅持了 變量到該位置。 426 00:21:25,400 --> 00:21:31,000 所以我堵在$摘心地方 紅色%s是和$的價格,其中藍色%S 427 00:21:31,000 --> 00:21:36,060 是,然後我就得到消息, “整整一個奶酪比薩售價$ 8,99。” 428 00:21:36,060 --> 00:21:37,750 >> 不是我能做到這一點,但唯一的辦法。 429 00:21:37,750 --> 00:21:39,760 也許我會想使用此方法。 430 00:21:39,760 --> 00:21:44,890 其實,這是什麼是最常見的 所謂可變質詢。 431 00:21:44,890 --> 00:21:45,690 我可以用一個回音。 432 00:21:45,690 --> 00:21:47,737 我可以使用打印也一樣,我們拭目以待。 433 00:21:47,737 --> 00:21:48,820 但是,這裡發生了什麼? 434 00:21:48,820 --> 00:21:51,520 >> 首先,我要 逃離美元符號。 435 00:21:51,520 --> 00:21:55,140 因為還記得,當我們實際上 打印出的比薩餅的價格, 436 00:21:55,140 --> 00:21:59,370 實際上,我是他們的格式為 貨幣數字與一個美元符號。 437 00:21:59,370 --> 00:22:05,635 但是,我們使用的是美元符號也 代表在PHP中的變量名, 438 00:22:05,635 --> 00:22:08,010 特別是當我 使用捲曲的這種方法 439 00:22:08,010 --> 00:22:10,040 梅開二度變 質詢方法,我需要 440 00:22:10,040 --> 00:22:13,490 逃離我的美元符號,因此不 以為我說的是一個變量。 441 00:22:13,490 --> 00:22:16,920 這將實際上, 從字面上打印一個美元符號。 442 00:22:16,920 --> 00:22:19,530 >> 排序所以類推到 你的盡頭有看到。 443 00:22:19,530 --> 00:22:22,832 它實際上並不 打印反斜杠N,對不對? 444 00:22:22,832 --> 00:22:24,290 它打印出一個新行字符。 445 00:22:24,290 --> 00:22:26,750 這is--它不會 打印反斜線美元符號, 446 00:22:26,750 --> 00:22:30,130 它會打印出剛 一個美元符號字符。 447 00:22:30,130 --> 00:22:30,640 同樣的想法。 448 00:22:30,640 --> 00:22:32,760 轉義序列是什麼 這些東西被調用。 449 00:22:32,760 --> 00:22:37,080 >> 但是請注意,我沒有做 任何形式的%s的替換, 450 00:22:37,080 --> 00:22:40,050 我只是從字面上堵漏 在這些變量。 451 00:22:40,050 --> 00:22:45,110 所以在this--什麼會發生在這裡 是,$ topping--的價值再次, 452 00:22:45,110 --> 00:22:48,390 只是符合我們一直 談論這樣far--奶酪會得到 453 00:22:48,390 --> 00:22:49,720 插在那裡。 454 00:22:49,720 --> 00:22:54,780 而$價格將是任何值 在比薩,方括號,奶酪, 455 00:22:54,780 --> 00:22:56,270 這是8.99。 456 00:22:56,270 --> 00:23:01,860 因此,這也將打印出 “整整一個奶酪比薩售價$ 8,99。” 457 00:23:01,860 --> 00:23:05,160 就像我說的,我可以用 打印取代echo這裡, 458 00:23:05,160 --> 00:23:08,040 和功能是 幾乎完全一樣。 459 00:23:08,040 --> 00:23:09,660 它將打印出同樣的事情。 460 00:23:09,660 --> 00:23:12,680 >> 還有另一種方式來做到這一點, 這是另一個優點 461 00:23:12,680 --> 00:23:14,710 PHP工作與字符串。 462 00:23:14,710 --> 00:23:17,130 我們可以做字符串連接。 463 00:23:17,130 --> 00:23:19,660 我們能做到這一點的C,也是如此, 使用稱為strcat的函數, 464 00:23:19,660 --> 00:23:21,180 但同樣,我們不得不 調用獨立的功能。 465 00:23:21,180 --> 00:23:22,640 這是這整個亂七八糟的事情。 466 00:23:22,640 --> 00:23:24,590 我們不得不磅 - 包括string.h中。 467 00:23:24,590 --> 00:23:25,780 這是一家集生產,對不對? 468 00:23:25,780 --> 00:23:30,070 但現在我可以只用這個點運算符 連接字符串在一起。 469 00:23:30,070 --> 00:23:34,910 >> 所以我串聯“一個整體”和 那麼無論$摘心的價值, 470 00:23:34,910 --> 00:23:38,860 然後又是 字符串,“比薩餅成本$” 471 00:23:38,860 --> 00:23:42,340 然後連接任何 $價格的價值, 472 00:23:42,340 --> 00:23:45,670 然後在最後我 套結上期反斜杠ñ。 473 00:23:45,670 --> 00:23:47,926 所以,這也 打印出“一個整體” - 再次, 474 00:23:47,926 --> 00:23:50,550 如果我們談論的第一個 這比薩餅array--元素 475 00:23:50,550 --> 00:23:54,710 “整整一個奶酪比薩售價$ 8,99。” 476 00:23:54,710 --> 00:24:01,260 期間,反斜杠N,再次用 在$摘心和$的價格代 477 00:24:01,260 --> 00:24:06,580 對於我們在我們的foreach已明確 環路的鍵值對映射。 478 00:24:06,580 --> 00:24:08,050 >> PHP能夠處理的功能。 479 00:24:08,050 --> 00:24:11,250 功能進行了排序 整體為C,正如我們所看到的。 480 00:24:11,250 --> 00:24:14,870 像變量,我們並不需要 指定函數的返回類型, 481 00:24:14,870 --> 00:24:16,350 因為它其實並不重要。 482 00:24:16,350 --> 00:24:18,660 我們不指定 的任何參數的數據類型, 483 00:24:18,660 --> 00:24:21,410 因為他們並不真正 的事情,就像我們已經看到了PHP。 484 00:24:21,410 --> 00:24:24,510 每個功能介紹 用函數關鍵字。 485 00:24:24,510 --> 00:24:27,920 這就是我們指示PHP中 我們正在談論的是一個函數。 486 00:24:27,920 --> 00:24:29,720 >> 我們不必 應對主所有, 487 00:24:29,720 --> 00:24:33,690 因為解釋器,PHP 解釋器,工作從上到下, 488 00:24:33,690 --> 00:24:34,190 而不管。 489 00:24:34,190 --> 00:24:35,640 如果它認為你可以 一個函數調用,它會 490 00:24:35,640 --> 00:24:37,850 去尋找函數調用, 即使是後話。 491 00:24:37,850 --> 00:24:40,360 但它會從頂部讀 底部,所以我們並不需要指定, 492 00:24:40,360 --> 00:24:41,500 這裡就是你開始。 493 00:24:41,500 --> 00:24:46,700 你開始對1號線的 PHP和從那裡工作了。 494 00:24:46,700 --> 00:24:49,690 >> 因此,這裡是我們如何創造 一個函數調用hard_square。 495 00:24:49,690 --> 00:24:54,100 這顯然需要一個 參數,我打電話$ X。 496 00:24:54,100 --> 00:24:58,424 此功能是複雜的剛 說明各種東西。 497 00:24:58,424 --> 00:24:59,590 我們仍然有返回值。 498 00:24:59,590 --> 00:25:00,870 我使用一個for循環在這裡。 499 00:25:00,870 --> 00:25:04,970 但它基本上只是,這是什麼 達只是$ x次$ X。 500 00:25:04,970 --> 00:25:10,520 什麼我實際上做的是剛剛加入 x可0 x次或$ X為零$ x次。 501 00:25:10,520 --> 00:25:15,850 但它有效地正是 同乘$ x次$ X。 502 00:25:15,850 --> 00:25:18,700 我仍然可以返回一個值, 在這種情況下$結果, 503 00:25:18,700 --> 00:25:22,060 我已經取得了PHP函數。 504 00:25:22,060 --> 00:25:24,160 >> 下面是如何使用它的上下文中。 505 00:25:24,160 --> 00:25:26,020 所以,也許我的一些PHP文件裡。 506 00:25:26,020 --> 00:25:29,240 藍色有該通知 我用我的PHP的分隔符, 507 00:25:29,240 --> 00:25:31,010 尖括號問號PHP。 508 00:25:31,010 --> 00:25:35,180 在這些之間的所有 我想寫的PHP。 509 00:25:35,180 --> 00:25:37,840 所以我顯然要get-- 我要提示用戶 510 00:25:37,840 --> 00:25:41,550 給我一個數字,商店 變量,存儲在變量$ X, 511 00:25:41,550 --> 00:25:43,320 不管他們給了我。 512 00:25:43,320 --> 00:25:48,590 然後,我要呼應 hard_square該值的, 513 00:25:48,590 --> 00:25:50,370 顯然打算 要釘在一個新行 514 00:25:50,370 --> 00:25:53,590 還有,再後來我就 定義hard_square因此函數 515 00:25:53,590 --> 00:25:55,550 當我做了 來電hard_square, 516 00:25:55,550 --> 00:25:58,160 它知道我在說什麼。 517 00:25:58,160 --> 00:26:00,705 >> 現在,我也可以做 這樣的事情。 518 00:26:00,705 --> 00:26:02,050 此略有不同。 519 00:26:02,050 --> 00:26:04,190 這幾乎完全 同我們以前看到的, 520 00:26:04,190 --> 00:26:08,400 但不是說只是$ X 有作為參數傳遞給hard_square, 521 00:26:08,400 --> 00:26:11,730 我說的$ X = 10。 522 00:26:11,730 --> 00:26:14,330 因此,這是一個例子 防禦性編程, 523 00:26:14,330 --> 00:26:17,070 守著你的程序 防範惡意用戶。 524 00:26:17,070 --> 00:26:20,020 >> 這是做一些錯誤的一種方式 檢查我們並沒有真的 525 00:26:20,020 --> 00:26:24,670 有在C.一個選項,我們永遠無法 指定的東西的默認值。 526 00:26:24,670 --> 00:26:27,010 我們總是不得不檢查 是否,例如, 527 00:26:27,010 --> 00:26:30,820 如果我們打了一個電話給GetString,它是 最合適的,如果立即之後我們 528 00:26:30,820 --> 00:26:33,300 經檢查發現,我們檢查 是否字符串 529 00:26:33,300 --> 00:26:35,504 用戶給了我們 不等於空, 530 00:26:35,504 --> 00:26:37,920 因為我們不希望啟動 使用的是空字符串。 531 00:26:37,920 --> 00:26:39,670 >> 這裡,這是一種 警惕這一點。 532 00:26:39,670 --> 00:26:43,480 如果用戶沒有為我們提供什麼 不知怎麼的,什麼是我們該怎麼辦? 533 00:26:43,480 --> 00:26:46,080 好了,我們只想說什麼 他們沒有向我們提供, 534 00:26:46,080 --> 00:26:47,705 我們只是在10堵塞代替。 535 00:26:47,705 --> 00:26:52,030 所以,如果他們不給我們一個值, 只需使用10默認情況下。所以在這裡, 536 00:26:52,030 --> 00:26:53,940 請注意,我在做 打電話給hard_square, 537 00:26:53,940 --> 00:26:55,980 但沒有提示 給用戶的,對不對? 538 00:26:55,980 --> 00:26:57,540 我只是做一個空的電話。 539 00:26:57,540 --> 00:27:00,860 >> 但我的功能hard_square 期望的參數。 540 00:27:00,860 --> 00:27:02,222 這是什麼打算打印出來? 541 00:27:02,222 --> 00:27:03,680 這將打印出100,對不對? 542 00:27:03,680 --> 00:27:05,720 因為用戶沒有 給我任何東西。 543 00:27:05,720 --> 00:27:08,970 所以,我只是要承擔 即10-- 10是默認值。 544 00:27:08,970 --> 00:27:13,760 所以這將打印 出100在自己的行。 545 00:27:13,760 --> 00:27:16,390 >> PHP文件不必 只是一個單一的文件。 546 00:27:16,390 --> 00:27:19,480 您可以將多個文件合併在一起, 就像你可以在C.方式 547 00:27:19,480 --> 00:27:24,330 我們這樣做,在C是典型的做 #包括讓頭文件拉到研究。 548 00:27:24,330 --> 00:27:26,180 我們不這樣做,在PHP。 549 00:27:26,180 --> 00:27:29,110 我們做一些所謂的require_once。 550 00:27:29,110 --> 00:27:33,360 再有就是這整個 首先,這是什麼__DIR__? 551 00:27:33,360 --> 00:27:36,510 這只是一個特殊的 變量或特殊常量, 552 00:27:36,510 --> 00:27:39,030 真的,指定什麼 當前目錄。 553 00:27:39,030 --> 00:27:41,320 所以它要看看 在當前目錄 554 00:27:41,320 --> 00:27:44,900 對於一個名為cs50.php 這裡在本例中, 555 00:27:44,900 --> 00:27:50,490 而且它要堅持該文件 在你的PHP程序的頂部, 556 00:27:50,490 --> 00:27:56,980 假設你把需要 一旦在你的PHP文件的第一行。 557 00:27:56,980 --> 00:28:01,474 >> 因此,PHP主要使用, 但不排他使用, 558 00:28:01,474 --> 00:28:03,140 作為基於網絡的編程語言。 559 00:28:03,140 --> 00:28:05,270 那它到底是如何走過來的。 560 00:28:05,270 --> 00:28:06,980 但它是一個完整的 語言,因為我們已經看到了。 561 00:28:06,980 --> 00:28:10,105 我們已經看到了幾乎所有的東西 它可以做類似於C, 562 00:28:10,105 --> 00:28:13,290 它可以做赫克 很多不止於此。 563 00:28:13,290 --> 00:28:16,950 >> 但由於它是一個完整的語言,我們 可以在裡面做的命令行程序。 564 00:28:16,950 --> 00:28:18,630 我們可以運行命令行程序。 565 00:28:18,630 --> 00:28:22,580 所有這一切需要運行一個命令 這是寫在PHP行程序 566 00:28:22,580 --> 00:28:24,260 是你有一個PHP解釋器。 567 00:28:24,260 --> 00:28:27,460 所以,這有點類似於 有一個編譯器在系統上 568 00:28:27,460 --> 00:28:31,100 如果你想編譯C代碼 把它變成可執行文件。 569 00:28:31,100 --> 00:28:33,810 你需要有一個PHP解釋器 存在你的系統上 570 00:28:33,810 --> 00:28:37,330 這樣就可以解釋PHP文件。 571 00:28:37,330 --> 00:28:40,370 >> 假設你做什麼,通常 這個解釋被稱為PHP, 572 00:28:40,370 --> 00:28:44,300 並且它通常捆綁在最 下載或PHP的安裝 573 00:28:44,300 --> 00:28:47,430 你可以上網,而且肯定 PHP解釋器的名稱 574 00:28:47,430 --> 00:28:49,550 我們在CS50,IDE。 575 00:28:49,550 --> 00:28:51,819 你要做的就是類型的PHP文件。 576 00:28:51,819 --> 00:28:53,610 而你的程序的 要做的是它的 577 00:28:53,610 --> 00:28:55,360 經過運行 解釋器,它的 578 00:28:55,360 --> 00:28:58,040 將忽略一切的 沒有問題mark--之間 579 00:28:58,040 --> 00:29:03,160 或者,尖括號問號PHP的, PHP的分隔符,並打印出來, 580 00:29:03,160 --> 00:29:07,660 它會解釋和執行的 你的PHP定界符內部代碼。 581 00:29:07,660 --> 00:29:12,850 >> 因此,讓我們跳出交給CS50 IDE和 看看一對夫婦的PHP文件, 582 00:29:12,850 --> 00:29:19,850 跑了幾個PHP文件,在 命令行CS50的IDE接口。 583 00:29:19,850 --> 00:29:22,100 所以在這裡我們是在CS50的IDE, 我已經採取了自由 584 00:29:22,100 --> 00:29:25,800 中打開一個名為hello1.php文件。 585 00:29:25,800 --> 00:29:29,920 此,顯然,其內容 文件只是PHP的分隔符有, 586 00:29:29,920 --> 00:29:32,220 而在,迴聲之間(“你好,世界”)。 587 00:29:32,220 --> 00:29:34,710 這是一個非常簡單的PHP程序。 588 00:29:34,710 --> 00:29:37,670 我只是要向下滾動 我的終端窗口在這裡, 589 00:29:37,670 --> 00:29:44,320 我要去鍵入PHP hello1.php,按下回車鍵。 590 00:29:44,320 --> 00:29:44,950 你好,世界。 591 00:29:44,950 --> 00:29:48,110 這大概就是我們 希望它做的,對不對? 592 00:29:48,110 --> 00:29:51,140 >> 讓我們去,並採取 另外看一個節目。 593 00:29:51,140 --> 00:29:52,924 hello2.php。 594 00:29:52,924 --> 00:29:55,090 幾乎是同樣的事情, 不是有很多事情在這裡。 595 00:29:55,090 --> 00:29:57,190 這一次,雖然,我要提示 用戶給我自己的名字。 596 00:29:57,190 --> 00:29:59,290 我再次使用了readline的功能。 597 00:29:59,290 --> 00:30:01,340 $名稱= readline的。 598 00:30:01,340 --> 00:30:03,070 這提示,“你叫什麼名字?” 599 00:30:03,070 --> 00:30:04,880 >> 顯然,我打印 它在自己的行。 600 00:30:04,880 --> 00:30:07,220 然後,下面這樣的線 這將是提示 601 00:30:07,220 --> 00:30:08,750 用戶可以在其中輸入他們的名字。 602 00:30:08,750 --> 00:30:12,030 然後,我使用了一點點 可變置疑這裡第3行 603 00:30:12,030 --> 00:30:14,780 打印出“你好”和 無論用戶類型。 604 00:30:14,780 --> 00:30:22,040 因此,這是在說,你好, 逗號,%S如果我們在C.用printf 605 00:30:22,040 --> 00:30:24,910 >> 因此,讓我們去解釋這個計劃。 606 00:30:24,910 --> 00:30:27,400 所以,再一次,我會向下滾動 我的終端窗口。 607 00:30:27,400 --> 00:30:29,070 PHP hello2.php。 608 00:30:29,070 --> 00:30:31,920 609 00:30:31,920 --> 00:30:33,820 你叫什麼? 610 00:30:33,820 --> 00:30:35,490 道格。 611 00:30:35,490 --> 00:30:36,526 您好,道格。 612 00:30:36,526 --> 00:30:39,440 我也有另一種 所謂的文件hello3.php。 613 00:30:39,440 --> 00:30:42,850 我要清楚我 屏幕控制L, 614 00:30:42,850 --> 00:30:46,210 我要去執行的。 615 00:30:46,210 --> 00:30:47,640 你叫什麼? 616 00:30:47,640 --> 00:30:49,020 道格。 617 00:30:49,020 --> 00:30:49,780 您好,道格。 618 00:30:49,780 --> 00:30:56,540 所以該行為是相同 hello2.php,但為什麼它hello3.php? 619 00:30:56,540 --> 00:30:58,040 >> 那麼,這裡的區別。 620 00:30:58,040 --> 00:31:00,620 在這種情況下,通知 上這裡1號線, 621 00:31:00,620 --> 00:31:04,270 我有東西是不是 在PHP分隔符之間。 622 00:31:04,270 --> 00:31:07,760 我只是打印out--還是我 剛鍵入,“你叫什麼名字?” 623 00:31:07,760 --> 00:31:12,060 當PHP解釋器看到這一點, 已經不知道該怎麼解釋為PHP, 624 00:31:12,060 --> 00:31:15,060 等等,而不是失敗, 它只是要吐了出來。 625 00:31:15,060 --> 00:31:19,010 >> 因此,第3行注意到,現在,我的呼籲 readline的,沒有任何提示了。 626 00:31:19,010 --> 00:31:21,750 我只是真的要用於:當 PHP解釋器看到這一點, 627 00:31:21,750 --> 00:31:23,400 它會打印出 “你叫什麼?” 628 00:31:23,400 --> 00:31:25,941 然後,它認為,哦,好吧,here's-- 一切將是 629 00:31:25,941 --> 00:31:29,970 解釋為PHP的,所以 這就是為什麼這個工程。 630 00:31:29,970 --> 00:31:34,990 我不必一定提示 的readline內的用戶用於:, 631 00:31:34,990 --> 00:31:37,490 我可以把它外面 PHP的分隔符 632 00:31:37,490 --> 00:31:41,490 並允許解釋器 剛剛打印出來給我。 633 00:31:41,490 --> 00:31:45,364 >> 所以,你實際上並不只 有一組PHP的分隔符 634 00:31:45,364 --> 00:31:46,030 在你的程序。 635 00:31:46,030 --> 00:31:49,887 實際上,你可以有幾個人, 開,並根據需要關閉它們。 636 00:31:49,887 --> 00:31:51,720 因此,讓我們一起來看看 在幾個方案 637 00:31:51,720 --> 00:31:55,070 在CS50 IDE我們 說明這個道理具有 638 00:31:55,070 --> 00:31:58,376 多組分隔的PHP。 639 00:31:58,376 --> 00:32:02,010 >> 好了,我已經打開的文件 這裡所謂的add1.php。 640 00:32:02,010 --> 00:32:03,390 同時注意這裡發生了什麼。 641 00:32:03,390 --> 00:32:08,077 與以前一樣,我有一個 單一的PHP設置分隔符。 642 00:32:08,077 --> 00:32:10,660 我要打印出來的 消息,“請給我一個數字。” 643 00:32:10,660 --> 00:32:13,394 然後我會讀線 其存儲在變量$ NUM1。 644 00:32:13,394 --> 00:32:14,810 然後,我要打印出來了。 645 00:32:14,810 --> 00:32:16,310 給我第二個數字。 646 00:32:16,310 --> 00:32:20,450 閱讀從用戶,存儲一行 無論他們輸入在$ NUM2。 647 00:32:20,450 --> 00:32:23,980 添加在一起並存儲 導致一個名為$總和變量, 648 00:32:23,980 --> 00:32:26,180 然後打印出“的 這兩個數字的總和 649 00:32:26,180 --> 00:32:29,254 是“,然後interpellate 有變量$總和。 650 00:32:29,254 --> 00:32:31,170 因此,讓我們只需要運行這個 通過翻譯 651 00:32:31,170 --> 00:32:33,720 要確認這是我們所期望的。 652 00:32:33,720 --> 00:32:37,540 PHP add1.php。 653 00:32:37,540 --> 00:32:38,665 請給我一個數字,3。 654 00:32:38,665 --> 00:32:40,410 請給我第二個數字,4。 655 00:32:40,410 --> 00:32:43,370 這兩個數字的總和是7。 656 00:32:43,370 --> 00:32:45,030 這就是3加4。 657 00:32:45,030 --> 00:32:45,530 好不好? 658 00:32:45,530 --> 00:32:47,770 所以沒有什麼可怕看中那裡。 659 00:32:47,770 --> 00:32:51,080 >> 現在,讓我們打開了add2.php。 660 00:32:51,080 --> 00:32:54,460 在這裡,我有一對夫婦的PHP 分隔套在那裡,對不對? 661 00:32:54,460 --> 00:32:59,107 線路1,3--線1和 3沒有PHP的分隔符。 662 00:32:59,107 --> 00:33:00,940 所以當翻譯 看到他們,這只是 663 00:33:00,940 --> 00:33:03,220 要吐了出來正好 我所輸入那裡。 664 00:33:03,220 --> 00:33:05,011 所以這就是我 做所有我的提示。 665 00:33:05,011 --> 00:33:11,220 上線2和4中,我們看到了非常 熟悉的$?的PHP類分隔符, 666 00:33:11,220 --> 00:33:15,210 所以這兩個行是 將作為PHP執行。 667 00:33:15,210 --> 00:33:18,270 然後在第5行,我有這樣的 奇怪的事情就在這裡,對不對? 668 00:33:18,270 --> 00:33:20,480 這個角度支架 問號等號。 669 00:33:20,480 --> 00:33:22,660 我甚至會放大得遠一點。 670 00:33:22,660 --> 00:33:29,270 你可以看到這就是我 說起在那裡,這$?=。 671 00:33:29,270 --> 00:33:33,420 >> 事實證明,這是很常見的, 我們開闢了一套PHP的原因 672 00:33:33,420 --> 00:33:36,055 定界符是打印出的值。 673 00:33:36,055 --> 00:33:37,430 這就是我們要做的。 674 00:33:37,430 --> 00:33:39,220 但是,甚至還有速記的。 675 00:33:39,220 --> 00:33:46,490 $?=是PHP簡寫說 類似$?PHP的echo總和 676 00:33:46,490 --> 00:33:48,350 的NUM1與NUM2。 677 00:33:48,350 --> 00:33:51,900 因此,這只是另一種 速記的。 678 00:33:51,900 --> 00:33:55,550 >> 所以,如果我運行這個程序,PHP add2.php。 679 00:33:55,550 --> 00:33:57,530 我會放大下跌一點點。 680 00:33:57,530 --> 00:33:59,000 請給我一個數字,4。 681 00:33:59,000 --> 00:34:00,350 請給我第二個數字。 682 00:34:00,350 --> 00:34:04,650 而且因為我真的不關心 在PHP中的數據類型,我可以說4.8。 683 00:34:04,650 --> 00:34:07,160 這兩個數字的總和是8.8。 684 00:34:07,160 --> 00:34:10,179 這個函數的行為非常 就如我們所期望的一樣, 685 00:34:10,179 --> 00:34:10,989 為好。 686 00:34:10,989 --> 00:34:13,114 我有一個更加開放 在這裡所謂的dice.php。 687 00:34:13,114 --> 00:34:25,625 688 00:34:25,625 --> 00:34:26,250 再試試這個。 689 00:34:26,250 --> 00:34:29,429 690 00:34:29,429 --> 00:34:33,280 我有一個更這裡所說的 dice1.php,這也見, 691 00:34:33,280 --> 00:34:37,440 有一個尖括號問題 在那裡慶祝等號符號, 692 00:34:37,440 --> 00:34:40,659 但是請注意,在這種情況下,我 調用函數蘭特,你這 693 00:34:40,659 --> 00:34:42,790 可能期望產生一個隨機數。 694 00:34:42,790 --> 00:34:46,889 “你滾了,”並且這將 計算一些隨機數,模6 + 695 00:34:46,889 --> 00:34:47,389 1。 696 00:34:47,389 --> 00:34:49,989 所以這會給我一些 為1〜6的範圍內。 697 00:34:49,989 --> 00:34:53,040 >> 請記住,國防部6會給我 一個數為0〜5的範圍內, 698 00:34:53,040 --> 00:34:56,630 但如果我在模擬擲骰, 這就是我在這裡做, 699 00:34:56,630 --> 00:35:00,040 我不希望這些骰子從0去 至5,我想骰子從1至6。 700 00:35:00,040 --> 00:35:02,800 所以這是一種方式來獲得 我在1至6的範圍內。 701 00:35:02,800 --> 00:35:04,720 我這樣做兩次。 702 00:35:04,720 --> 00:35:08,630 因此很明顯,我壓延 兩個骰子此計劃。 703 00:35:08,630 --> 00:35:15,210 >> 所以,我清楚我的屏幕, 我會做的PHP dice1.php。 704 00:35:15,210 --> 00:35:16,640 您擲出4和2。 705 00:35:16,640 --> 00:35:19,156 如果我運行的程序 再次,你滾5和5。 706 00:35:19,156 --> 00:35:21,780 所以,我每次運行程序時, 我得到不同的號碼, 707 00:35:21,780 --> 00:35:24,280 因為每次我這樣做 所以,它開始了。 708 00:35:24,280 --> 00:35:27,250 這將生成一個新的 設置隨機數我的。 709 00:35:27,250 --> 00:35:29,790 >> 因此,如果我們已經習慣了 從C運行的程序, 710 00:35:29,790 --> 00:35:32,520 我們已經習慣了打字./的 一個程序的名字吧? 711 00:35:32,520 --> 00:35:35,090 這就是我們如何做的一切 我們在C程序為止。 712 00:35:35,090 --> 00:35:37,555 我們可以在PHP中做到這一點,以及 通過添加一種叫 713 00:35:37,555 --> 00:35:40,026 一個家當我們的PHP文件的頂部。 714 00:35:40,026 --> 00:35:41,400 我知道這是一種愚蠢的詞。 715 00:35:41,400 --> 00:35:44,540 這是短期的哈希爆炸。 716 00:35:44,540 --> 00:35:46,300 這是前兩個字符出現。 717 00:35:46,300 --> 00:35:50,030 還記得我們稱之為感嘆號 經常一聲巨響計算機科學。 718 00:35:50,030 --> 00:35:51,690 這也可能是尖銳的爆炸。 719 00:35:51,690 --> 00:35:53,273 有一對夫婦的方式來解釋它。 720 00:35:53,273 --> 00:35:57,320 但它基本上是一種特殊的 命令的PHP解釋器 721 00:35:57,320 --> 00:36:00,160 理解為,哦,我想 您可以執行該程序, 722 00:36:00,160 --> 00:36:05,250 這顯然是/用戶/斌/ PHP的,這 實際上,其中的PHP解釋器 723 00:36:05,250 --> 00:36:08,590 特別是住在我們的系統。 724 00:36:08,590 --> 00:36:12,530 所以it's--這裡發生的事情是 解釋明白,哦, 725 00:36:12,530 --> 00:36:17,270 我顯然應該使用 這一計劃運行此文件。 726 00:36:17,270 --> 00:36:20,010 所以,它可以讓你 跳過步驟 727 00:36:20,010 --> 00:36:22,979 不必去說PHP something.php。 728 00:36:22,979 --> 00:36:25,020 還有另一個抓 在這裡,這是,如果我們 729 00:36:25,020 --> 00:36:27,320 希望我們的節目 達到預期效果,我們 730 00:36:27,320 --> 00:36:30,220 需要做一些所謂的 文件權限的改變。 731 00:36:30,220 --> 00:36:33,380 我們將go--和我們談一點 更多的有關文件權限更改 732 00:36:33,380 --> 00:36:37,550 在我們的視頻MVC的,但我只想 說這就是你需要做的 733 00:36:37,550 --> 00:36:42,760 為了使您的 .php文件的可執行文件。 734 00:36:42,760 --> 00:36:49,330 因此,讓我們來看看本作 我們在CS50 IDE最後的例子了。 735 00:36:49,330 --> 00:36:53,910 >> 所以在這裡的IDE我在這兩個文件 這似乎不是PHP目錄 736 00:36:53,910 --> 00:36:55,310 所謂的.php。 737 00:36:55,310 --> 00:36:58,170 我有一個稱為函數add-- 我有一個名為ADD3 738 00:36:58,170 --> 00:37:00,650 並要求文件dice2。 739 00:37:00,650 --> 00:37:03,680 因此,讓我們快速瀏覽 外觀和開拓ADD3。 740 00:37:03,680 --> 00:37:08,300 正如你所看到的,在開始 我的文件我有這個家當,對不對? 741 00:37:08,300 --> 00:37:11,420 該散列標記感嘆號。 742 00:37:11,420 --> 00:37:15,115 現在,你也可能 注意到,由於某種原因, 743 00:37:15,115 --> 00:37:16,990 我沒有任何語法 突出了, 744 00:37:16,990 --> 00:37:20,198 這就是我前面提到, 這是說,如果我沒有名字我的文件 745 00:37:20,198 --> 00:37:23,040 .PHP,我沒有好處 語法高亮了。 746 00:37:23,040 --> 00:37:26,220 這個文件就被稱為ADD3。 747 00:37:26,220 --> 00:37:30,960 所以,我可以在以後運行 以./ ADD3,而不是./ add3.php。 748 00:37:30,960 --> 00:37:33,680 >> 所以reason--它仍然 很好,它仍然是有效的PHP, 749 00:37:33,680 --> 00:37:37,000 但它沒有語法高亮,因為 該文件不叫something.php。 750 00:37:37,000 --> 00:37:41,580 這是唯一的真正的區別 這裡,加上家當。 751 00:37:41,580 --> 00:37:45,170 因此,讓我們看看會發生什麼時, 我嘗試運行此程序。 752 00:37:45,170 --> 00:37:50,780 ./ ADD3,就像我會與C猛砸。 753 00:37:50,780 --> 00:37:53,190 ./ ADD3權限被拒絕。 754 00:37:53,190 --> 00:37:55,390 這是你將成為怎樣 就看你忘了 755 00:37:55,390 --> 00:37:59,280 使用chmod命令更改 該文件的權限。 756 00:37:59,280 --> 00:38:03,845 >> 事實證明,常規PHP 文件不能只是執行。 757 00:38:03,845 --> 00:38:06,970 他們可以理解,但我們 做的東西在這裡有點不同。 758 00:38:06,970 --> 00:38:07,761 我們正在執行它。 759 00:38:07,761 --> 00:38:12,970 所以我需要添加權限 執行,文件模式一+ X到ADD3。 760 00:38:12,970 --> 00:38:15,680 那麼我可以說./ ADD3。 761 00:38:15,680 --> 00:38:16,860 請給我一個號碼。 762 00:38:16,860 --> 00:38:18,060 5,6。 763 00:38:18,060 --> 00:38:20,490 這兩個數字的總和為11。 764 00:38:20,490 --> 00:38:26,530 >> 同樣的,我已經chmoded dice2,這樣我就可以只輸入./ dice2, 765 00:38:26,530 --> 00:38:31,260 你推出一個1和一個1,你 軋製一個5和4,等等。 766 00:38:31,260 --> 00:38:33,680 >> 所以這是相當多的 一個PHP語法的想法,對吧? 767 00:38:33,680 --> 00:38:35,221 有很多打通,我知道了。 768 00:38:35,221 --> 00:38:39,160 但希望你現在已經看到PHP 是不是真的那麼從C不同 769 00:38:39,160 --> 00:38:43,670 真是給了我們的能力 拿東西了一個或兩個檔次。 770 00:38:43,670 --> 00:38:48,230 我們真的不擔心 太多about--我們真的不 771 00:38:48,230 --> 00:38:51,605 不得不過分擔心 低級別的細節,我們 772 00:38:51,605 --> 00:38:52,980 不用擔心用C,對不對? 773 00:38:52,980 --> 00:38:56,170 我們可以專注於更高 級別的東西,PHP 774 00:38:56,170 --> 00:39:01,090 使我們能夠做的,並採取了 想當然地認為它會為我們工作。 775 00:39:01,090 --> 00:39:04,350 所以,它給了我們的能力,現在, 從C過渡到PHP, 776 00:39:04,350 --> 00:39:08,280 使該是多了很多方案 複雜,或許很多更穩健。 777 00:39:08,280 --> 00:39:13,070 >> 所以,我希望你有樂趣的工作 用PHP,我是道格·勞埃德。 778 00:39:13,070 --> 00:39:15,050 這是CS50。 779 00:39:15,050 --> 00:39:17,637