1 00:00:00,000 --> 00:00:05,340 2 00:00:05,340 --> 00:00:07,370 >> דאג LLOYD: אז יש לנו עשה הרבה עבודה ב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 ואם אנחנו הולכים לי trade-off בין להיות 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 >> עכשיו, אחת הסיבות שאנחנו מלמדים PHP בCS50 20 00:00:58,200 --> 00:01:01,020 הוא שזה בהשראה בכבדות על ידי ג ואכן, לדעתי, 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, ואילו שפות כמו תכנית, 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 בסביבה כבר כמעט 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-- ל תוכנה לראות-- שבו אתה 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 היא השראה מאוד בכבדות על ידי ג התחביר דומה מאוד. 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 הפיכת קבצי .h הקבצים ו.c להפעלה אחד עם איפור, 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 But-- כך שזה לא הולך כדי למחוק את זה בשבילך, 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 אנו יכולים להשתמש בם יחד ל ליצור דף אינטרנט דינמי יותר. 107 00:05:06,640 --> 00:05:10,650 אבל עוד על כך ב וידאו באינטרנט פיתוח PHP. 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 יש רק שני גדולים הבדלים מג 114 00:05:20,067 --> 00:05:21,900 הראשון הוא שיש לא מציין סוג. 115 00:05:21,900 --> 00:05:24,245 אנחנו לא צריכים לומר int, char, לצוף, כל הדברים האלה. 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, אם היינו-כלול לירה .h CS50 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 זה נפרד ממערך דמויות כמו זה בג 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 יכול להיות לנו אם ואחר אם. 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 אנחנו לא צריכים לעשות משהו טיפשי או אולי unintuitive כ 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 שאנחנו מכירים מג 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 >> יש לנו גם הצהרות מתג עדיין. 179 00:08:15,820 --> 00:08:17,870 אנו זוכרים אותם מC, כמו גם. 180 00:08:17,870 --> 00:08:22,480 בחלקו העליון שם, זה איך אנחנו עושים משהו כמו גט 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 ולמעשה, הצהרת המתג ב- PHP הוא גמיש למדי קצת יותר 191 00:08:50,190 --> 00:08:54,880 מבת הדודה שלה מג 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 יש לנו בזמן שלולאות לספור 1-100 במקרה זה. 195 00:09:00,740 --> 00:09:03,940 יש לנו לעשות בזמן לולאות כי לספור 1-100, 196 00:09:03,940 --> 00:09:06,200 ויש לנו ללולאות כי לספור 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 או שזה יהיה מרובע nums int סוגריים מסולסל שווים סד 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 $ 1,000 או 20. 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 שבו אמיתי היא בוליאנית, ולאחר מכן אם אני רוצה טקטיקה על אלמנט אחר 261 00:12:16,420 --> 00:12:20,860 למערך זה, אולי מחרוזת, המחרוזת "חמש," אני יכול לעשות את זה. 262 00:12:20,860 --> 00:12:26,110 ועכשיו המערך שלי היית להיות 1, אמיתי, 3, 4, חמש. 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, תהיה לנו רק ללולאה, בדרך כלל, ש 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 כדי שנוכל להשתמש בלולאה ל צעד דרך כל אלמנט. 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 אבל זה בעצם שלו רעיון כמו ללולאה, 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 ובכל פעם שב ללולאה שאולי 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 הוא תחליף לאומר סוגריים מרובעים פיצות $ $ אני 345 00:16:59,140 --> 00:17:03,370 אם היינו משתמשים ללולאה, שבו אנחנו יכול ללכת מ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 והיינו להשתמש ללולאה ללכת פיצות $ 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-- אם אני להדפיס את פיצות $, $ אני? 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, היא שפחות מ 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 ציפוי "פיצה עולה $" מחיר, ולאחר מכן אני להדפיס את התקופה וn קו נטוי. 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, בדיוק כמו שאני יכול להשתמש בו בג 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 ואז אני שיבוץ, וזה רק דרך מפוארת 425 00:21:22,630 --> 00:21:25,400 לומר אני דבק משתנה למיקום זה. 426 00:21:25,400 --> 00:21:31,000 אז אני חיבור $ תוספת שבי % 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 זה הוא-- זה לא הולך ל סימן דולר לוכסן הדפסה, 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 וכך בזה-- מה יקרה כאן הוא שהערך של 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 וכמו שאמרתי, אני יכול להשתמש להדפיס כאן במקום הד, 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 ואז ממש בסוף אני tacking על n לוכסן תקופה. 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 אני משתמש ללולאה כאן. 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 יש לי כאופציה ב.ג לא יכול ציין את ערך ברירת המחדל של משהו. 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 שהמשתמש נתן לנו אינו שווה ל null, 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 ניתן לשלב מספר קבצים יחד, בדיוק כמו שאתה יכול בג הדרך 547 00:27:19,480 --> 00:27:24,330 עשינו את זה ב- C היה בדרך כלל לעשות #include לקבל קבצי כותרת משכו ב. 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 >> אז בואו נקפוץ לIDE CS50 ו יש להסתכל על כמה קבצי PHP, 582 00:29:12,850 --> 00:29:19,850 פועל כמה קבצי PHP, ב ממשק שורת הפקודה של IDE CS50. 583 00:29:19,850 --> 00:29:22,100 אז הנה אנחנו בIDE CS50, ואני לקחתי את חירותו 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, הקש על Enter. 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 אם היינו משתמשים ב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 hello2.php 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 בIDE CS50 בנו להמחיש את הרעיון הזה שיש 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 הוא, "ולאחר מכן לְהַגִישׁ שְׁאֵלָתָה יש סכום $ משתנה. 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 add1.php 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 >> אז אם אני מפעיל תכנית, add2.php 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 "אתה התגלגל," וזה הולך לחשב כמה מספרים אקראיים, mod 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 >> זכור כי mod 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 >> אז אני לנקות את המסך שלי, ואני אעשה dice1.php 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 שהוא כנראה / משתמש / bin / php, ש הוא למעשה שם מתורגמן PHP 723 00:36:05,250 --> 00:36:08,590 במיוחד גר במערכת שלנו. 724 00:36:08,590 --> 00:36:12,530 אז מה קורה כאן הוא-- הוא המתורגמן מבין, הו, 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 יש לומר של something.php 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, בדיוק כמו שהיית עם ג Bash. 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 ואז אני צריך להוסיף את הרשות ביצוע, chmod + 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 אנחנו לא באמת צריכים לדאוג יותר מדי על-- אנחנו לא באמת 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