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 >> در حال حاضر، یکی از دلایل که ما در PHP CS50 آموزش 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، در حالی که زبان هایی مانند طرح، 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 برداشتن پی اچ پی، که به شما می دهد توانایی انجام کارهای سطح بسیار بالاتر 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 >> یک انتخاب بزرگ از پی اچ پی زبان برای نرم افزار 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 بنابراین برای مثال، کار با رشته ها در سی 45 00:02:18,480 --> 00:02:21,709 است بسیار پیچیده است، چرا همانطور که می دانیم، رشته ها در سی 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، فقط باز کردن یک فایل با پسوند پی اچ پی. 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 بنابراین ما فایل ما به نام ام با پی اچ پی فرمت، اما پس از آن نیز با پی اچ پی، 65 00:03:18,430 --> 00:03:23,310 تمام کد پی اچ پی که ما در آن ارسال فایل به این پی اچ پی محصور می شود 66 00:03:23,310 --> 00:03:25,190 جداکننده که ما می بینیم در اینجا بر روی صفحه نمایش. 67 00:03:25,190 --> 00:03:27,910 براکت زاویه؟ پی اچ پی شروع می شود. 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 تبدیل فایل های ج و فایل های حجتاله به یک فایل اجرایی با آرایش، 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 پی اچ پی، پی اچ پی و که می داند می توانید از آن را در پرواز است. 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 اگر نمی داند که چگونه به پی اچ پی، شما احتمالا 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 جداکننده پی اچ پی. 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 بینیم هنگامی که ما در مورد آن صحبت پی اچ پی توسعه وب، 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 تنها دو بزرگ وجود دارد تفاوت از C. 114 00:05:20,067 --> 00:05:21,900 اول این است که وجود دارد این است که هیچ تعیین نوع. 115 00:05:21,900 --> 00:05:24,245 ما لازم نیست که به نوع int، کاراکتر، شناور، تمام چیزهای که. 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 ما ممکن است چیزی می گویند مثل این، اعضای هیات ایکس = 54. 127 00:05:46,884 --> 00:05:48,550 ما لازم نیست که به انجام این کار دیگر در پی اچ پی. 128 00:05:48,550 --> 00:05:52,540 فقط می توانیم بگوییم $ X = 54. 129 00:05:52,540 --> 00:05:55,920 و می توان گفت، برای مثال، در C، اگر ما بود پوند شامل حجتاله 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 و در واقع، در حال حاضر رشته یک نوع داده ساخته شده است در در پی اچ پی، 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 ما می توانیم می گویند ما می توانیم اگر اظهارات مثل این. 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 مرتب کردن بر اساس یکی از آن است مزایای استفاده از پی اچ پی در مقابل، اطلاع 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 در بالا بسیار وجود دارد، این که چگونه ما انجام می دهیم چیزی شبیه به روی 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 ما در حالی که حلقه های آن شمارش از 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 اما در پی اچ پی، آرایه ها در اندازه ثابت نیست. 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 و اولین نسخه پی اچ پی، ما تصمیم گرفتیم که شما می دانید، 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 در ثابت نیست اندازه، و چون پی اچ پی را واقعا نمی 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 $ عدد رده آرایه = (1، 2، 3، 4)، آرایه بودن یک تابع 225 00:10:20,020 --> 00:10:22,760 است که به PHP ساخته شده است که یک آرایه برای شما ایجاد. 226 00:10:22,760 --> 00:10:28,315 این باعث ایجاد یک مجموعه ای از چهار مقدار، اعداد در این مورد، به نام $ عدد رده. 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 معمولا وجود ندارد فقط دو یا سه راه برای انجام کاری در پی اچ پی، 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 $ عدد رده = مربع براکت 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 مربع براکت برابر آکولاد 1، 2، 3، 4. 236 00:10:58,525 --> 00:11:02,710 در PHP آن را $ عدد رده = مربع براکت 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 خب من فقط می توانم بگویم $ عدد رده 4، که باز هم، ما هنوز هم از 0 شمارش در اینجا 240 00:11:14,760 --> 00:11:17,800 در پی اچ پی، خواهد بود پنجم عنصر از آرایه. 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 یا من می توانم حتی فقط می گویند $ عدد رده 20 یا 1،000. 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 بنابراین این می افزاید: عنصر دیگری به پایان آرایه $ عدد رده. 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 چون پی اچ پی دارای پشتیبانی از چیزی به نام یک آرایه انجمنی. 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 >> اما در پی اچ پی، ما لازم نیست برای انجام این کار مفهوم آرایه 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 بنابراین ما می تواند یک حلقه 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 خب، خوشبختانه، پی اچ پی یک راه برای مقابله با این بیش از حد، 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 ایستاده در برای گفتن است $ پیتزا براکت $ من 345 00:16:59,140 --> 00:17:03,370 اگر ما برای حلقه، که در آن ما با استفاده از می تواند از $ من = 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-- اگر من نسخه قابل چاپ کردن $ پیتزا، $ من؟ 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 ما معمولا نمی تکرارکننده ما استفاده کنید متغیر، اعضای هیات من = 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 و بنابراین اگر you-- حتی اگر شما نمی کاملا مطمئن چه آن را انجام دهید، 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 >> "تمام" - این بسیاری از است چاپ بر روی here-- "یک کل" 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 در بسیاری از اظهارات چاپ وجود دارد، اما تنها یک بک اسلش نفر وجود دارد، 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 "A پنیر پیتزا طیف هزینه 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 آن را فقط به you-- آن را به شما می دهد دسترسی به کلید ها و مقادیر. 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 ما تا به حال این پنج عبارت print جداگانه، 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 یک تابع است که من می توانید استفاده کنید در پی اچ پی، درست مثل من می توانید آن را در 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 است، و پس از آن من این پیام را دریافت، "A پنیر پیتزا طیف هزینه 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 این کار در واقع نمی چاپ بک اسلش نفر، درست است؟ 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 و این نیز از چاپ "A پنیر پیتزا طیف هزینه 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 از پی اچ پی کار با رشته ها. 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 اگر ما در حال صحبت کردن در مورد اول عنصر از آرایه که پیتزا 475 00:23:50,550 --> 00:23:54,710 "A پنیر پیتزا طیف هزینه 8.99 $." 476 00:23:54,710 --> 00:24:01,260 دوره، بک اسلش نفر، دوباره، با $ شکوه و $ قیمت جایگزین 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 این که چگونه ما نشان می دهد که به پی اچ پی آنچه ما در حال صحبت کردن در مورد یک تابع است. 486 00:24:27,920 --> 00:24:29,720 >> و ما لازم نیست که مقابله با اصلی در همه، 487 00:24:29,720 --> 00:24:33,690 به این دلیل که مترجم، پی اچ پی مترجم، کار می کند از بالا به پایین، 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 از شروع خود را پی اچ پی و پایین کار می کنند وجود دارد. 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 به X 0 بار یا $ 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 براکت زاویه پی اچ پی علامت سوال است. 508 00:25:31,010 --> 00:25:35,180 در میان این همه از پی اچ پی که من می خواهم به نوشتن. 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 به طور معمول بود برای انجام یک کد: #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 و آن را به چوب که فایل در بالای برنامه پی اچ پی خود را، 556 00:27:50,490 --> 00:27:56,980 فرض کنید که شما نیاز به قرار دادن یک بار خط در بالای فایل پی اچ پی خود را. 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 همه که لازم به اجرای یک فرمان برنامه خط که در پی اچ پی نوشته 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 به طوری که شما می توانید فایل های پی اچ پی تفسیر. 571 00:28:37,330 --> 00:28:40,370 >> با فرض شما، و معمولا این مترجم است که به نام پی اچ پی، 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 همه شما باید انجام نوع فایل پی اچ پی است. 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 و یا، پی اچ پی براکت زاویه علامت سوال، جداکننده پی اچ پی، و آن را چاپ کنید، 580 00:29:03,160 --> 00:29:07,660 و آن را تفسیر و اجرا کد داخل جداکننده PHP خود را. 581 00:29:07,660 --> 00:29:12,850 >> بنابراین اجازه دهید به CS50 IDE پاپ و یک نگاهی به یک زن و شوهر از فایل های پی اچ پی، 582 00:29:12,850 --> 00:29:19,850 در حال اجرا یک زن و شوهر از فایل های پی اچ پی، در رابط خط فرمان از 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 و من قصد دارم به نوع پی اچ پی 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 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 من چیزی است که نمی در بین جداکننده پی اچ پی. 622 00:31:04,270 --> 00:31:07,760 من فقط چاپ out-- یا من فقط تایپ، "نام شما چیست؟" 623 00:31:07,760 --> 00:31:12,060 هنگامی که مفسر 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 من فقط در واقع رفتن to-- که مفسر PHP این را می بیند، 627 00:31:21,750 --> 00:31:23,400 آن را برای چاپ کردن "اسم شما چیست؟" 628 00:31:23,400 --> 00:31:25,941 سپس آن را می بیند، آه، OK، here's-- هر چیز دیگری است برای رفتن به 629 00:31:25,941 --> 00:31:29,970 تفسیر به عنوان PHP، بنابراین به همین دلیل این کار می کند. 630 00:31:29,970 --> 00:31:34,990 من لازم نیست که لزوما بی درنگ to-- کاربران داخل از readline، 631 00:31:34,990 --> 00:31:37,490 من فقط می توانید آن را خارج از جداکننده پی اچ پی 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 است "، و سپس استیضاح $ مجموع متغیر وجود دارد. 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 پی اچ پی. 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 در اینجا، من یک زن و شوهر از پی اچ پی ام مجموعه محدود وجود دارد، درست است؟ 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، ما می بینیم بسیار $ آشنا؟ مرتب سازی بر پی اچ پی از جداکننده، 666 00:33:11,220 --> 00:33:15,210 بنابراین کسانی که دو خط رفتن به پی اچ پی را اجرا کند. 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 >> به نظر می رسد که آن را بسیار رایج است که به این دلیل که ما برای باز کردن مجموعه ای از پی اچ پی 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 اکو مجموع 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 پی اچ پی را اجرا کنید. 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 >> به یاد داشته باشید که وزارت دفاع 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 پی اچ پی را انجام دهد. 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 ابتکار به بالای فایل پی اچ پی است. 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 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 از داشتن به گفتن 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 به منظور ایجاد خود را پی اچ پی اجرایی فایل های. 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 به نام پی اچ پی. 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 پی اچ پی، من به نفع ندارد از نحو برجسته کند. 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 و بنابراین من نیاز به اضافه کردن اجازه اعدام، سطح دسترسی A + 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 اما امیدوارم شما هم اکنون دیده می شود که پی اچ پی واقعا که متفاوت از 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 >> بنابراین من امیدوارم که شما سرگرم کننده کار با پی اچ پی، و من داگ لوید هستم. 778 00:39:13,070 --> 00:39:15,050 این CS50 است. 779 00:39:15,050 --> 00:39:17,637