1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] بخش 8 - راحت تر] 2 00:00:02,610 --> 00:00:04,910 [راب Bowden - دانشگاه هاروارد 3 00:00:04,910 --> 00:00:07,070 [این CS50 است. - CS50.TV] 4 00:00:11,520 --> 00:00:14,160 >> این هفته بخش یادداشت در حال رفتن به تواند خیلی کوتاه، 5 00:00:14,160 --> 00:00:19,070 پس من فقط رفتن برای حرف زیاد می زنن، شما بچه ها در حال رفتن به پرسیدن سوال، 6 00:00:19,070 --> 00:00:22,720 و ما سعی خواهیم کرد به پر کردن زمان تا آنجا که ممکن است. 7 00:00:22,720 --> 00:00:31,950 بسیاری از مردم فکر می کنم که این pset است لزوما دشوار نیست، اما آن را بسیار طولانی است. 8 00:00:31,950 --> 00:00:37,070 تنظیمات pset خود یک ساعت طول می کشد به خواندن. 9 00:00:40,530 --> 00:00:45,730 ما به شما بسیاری از SQL شما احتمالا می تواند نیاز به استفاده از. 10 00:00:45,730 --> 00:00:50,520 ما به شما راه رفتن را از طریق مقدار زیادی از آن، پس از آن نباید بیش از حد بد است. 11 00:00:50,520 --> 00:00:54,560 هر کسی شروع شده و یا به پایان رسید؟ 12 00:00:55,380 --> 00:00:59,710 این، آخرین pset. آه، خدای من. 13 00:00:59,710 --> 00:01:05,400 معمولا یک جاوا اسکریپت یکی پس از این وجود دارد، اما همه چیز تغییر تقویم 14 00:01:05,400 --> 00:01:09,560 باعث می شود همه چیز 1 هفته کوتاه تر است، و ما دیگر لازم نیست pset جاوا اسکریپت. 15 00:01:09,560 --> 00:01:12,310 من نمی دانم که چگونه است که تاثیر می گذارد که آیا جاوا اسکریپت در آزمون ظاهر می شود 16 00:01:12,310 --> 00:01:15,510 یا کوئیز 1. 17 00:01:15,510 --> 00:01:22,260 من تصور آن خواهد بود که چیزی شبیه به شما نیاز به دانستن سطح بالا چیز در مورد جاوا اسکریپت، 18 00:01:22,260 --> 00:01:26,460 اما من شک ما فقط می خواهم شما را مستقیم کد جاوا اسکریپت 19 00:01:26,460 --> 00:01:28,720 از آنجا که شما در آن یک pset نمی بود. 20 00:01:28,720 --> 00:01:33,000 اما این مسائل برای بررسی مسابقه هفته آینده خواهد بود. 21 00:01:33,000 --> 00:01:36,320 >> بخش از سوالات. 22 00:01:36,320 --> 00:01:43,870 بسیاری از این مسائل تا حدودی ضعیف بیان شده است، اما ما بحث خواهیم کرد که چرا. 23 00:01:43,870 --> 00:01:50,220 بر خلاف C، PHP "" زبان های نوع دار دینامیک است. این به چه معنی، از شما بپرسم؟ 24 00:01:50,220 --> 00:01:53,830 خب، خداحافظی به تمام کسانی که کاراکتر، شناور، هوشمند، و کلمات کلیدی دیگر شما نیاز به استفاده از 25 00:01:53,830 --> 00:01:56,190 در هنگام تعریف متغیرها و توابع در C 26 00:01:56,190 --> 00:02:00,420 در PHP، نوع متغیر با ارزش است که آن را در حال حاضر برگزاری تعیین می شود. 27 00:02:00,420 --> 00:02:04,990 بنابراین قبل از ما این کد را در یک فایل به نام dynamic.php تایپ، 28 00:02:04,990 --> 00:02:12,670 PHP به صورت پویا تایپ می شود. درست است. 29 00:02:12,670 --> 00:02:17,590 من با این واقعیت است که این بدان معناست که ما در حال خداحافظی به کاراکتر، شناور، اعضای هیات اختلاف نظر دارند، 30 00:02:17,590 --> 00:02:20,620 و دیگر کلمات کلیدی است. 31 00:02:20,620 --> 00:02:25,510 تفاوت دقیق بین نوع دار دینامیک و جایگزین، 32 00:02:25,510 --> 00:02:32,010 که به صورت استاتیک تایپ شده، این است که به صورت پویا تایپ شده، همه از چک کردن نوع و مسائل خود را 33 00:02:32,010 --> 00:02:37,350 در زمان اجرا اتفاق می افتد، در حالی که نوع دار استاتیک آن را در زمان کامپایل اتفاق می افتد. 34 00:02:37,350 --> 00:02:43,030 کلمه استاتیک به طور کلی به نظر می رسد به معنای همه چیز زمان کامپایل است. 35 00:02:43,030 --> 00:02:48,170 من حدس می زنم که کاربردهای دیگری برای آن وجود دارد، اما در C هنگامی که شما یک متغیر استاتیک، 36 00:02:48,170 --> 00:02:52,650 ذخیره سازی آن در زمان کامپایل اختصاص داده است. 37 00:02:52,650 --> 00:02:59,260 در اینجا، به صورت پویا تایپ حالت فقط بدان معناست که - 38 00:02:59,260 --> 00:03:04,350 در C اگر شما سعی می کنید برای اضافه کردن یک رشته و یک عدد صحیح، هنگامی که شما آن را کامپایل، 39 00:03:04,350 --> 00:03:11,000 رفتن به شکایت به دلیل آن را رفتن به می گویند که شما می توانید یک int و یک اشاره گر را اضافه نمی کند. 40 00:03:11,000 --> 00:03:14,710 این فقط یک عملیات معتبر نیست. 41 00:03:14,710 --> 00:03:21,170 این چیز دیگری که می کنیم که در یک ثانیه است. 42 00:03:21,170 --> 00:03:24,860 اما این نوع از چک کردن، این واقعیت است که آن را در زمان کامپایل شکایت، 43 00:03:24,860 --> 00:03:29,220 چک نوع استاتیک است. 44 00:03:29,220 --> 00:03:35,220 زبان های که در آن شما لازم نیست که کاراکتر، شناور، هوشمند برای گفتن، و تمام کسانی که همه چیز وجود دارد، 45 00:03:35,220 --> 00:03:40,940 اما این زبان می تواند از چهار چوب از چیزی بگویید که چه نوع از آن تصور می شود، 46 00:03:40,940 --> 00:03:43,980 اما هنوز هم نوع دار استاتیک. 47 00:03:43,980 --> 00:03:49,000 بنابراین اگر شما را 51، OCaml، شما هرگز نیاز به استفاده از هر یک از این انواع، 48 00:03:49,000 --> 00:03:58,700 اما هنوز آن را در زمان کامپایل می گویند شما می توانید این کار را نمی کند چرا که شما در حال اختلاط بین المللی و یک رشته است. 49 00:03:58,700 --> 00:04:05,650 نوع دار دینامیک فقط بدان معنی است که گاهی اوقات در زمان اجرا شما قصد دریافت شکایت است. 50 00:04:05,650 --> 00:04:13,430 اگر شما همچنین با استفاده از جاوا قبل از آن، به طور کلی، تقریبا هر نوع زبان C- 51 00:04:13,430 --> 00:04:20,070 رفتن به تایپ استاتیک، C، C + +، جاوا، همه کسانی که به طور کلی نوع دار استاتیک. 52 00:04:20,070 --> 00:04:22,910 در جاوا وقتی چیزی را کامپایل و شما می گویید 53 00:04:22,910 --> 00:04:26,670 رشته برابر چیزی است که یک رشته نیست، 54 00:04:26,670 --> 00:04:28,950 که رفتن به شکایت به دلیل آن نوع فقط مطابقت ندارد. 55 00:04:28,950 --> 00:04:31,180 که رفتن به شکایت در زمان کامپایل است. 56 00:04:31,180 --> 00:04:36,750 اما آن را نیز تا به برخی از پویا همه چیز را دوست دارم اگر شما سعی می کنید چیزی به بازیگران 57 00:04:36,750 --> 00:04:40,500 به یک نوع خاص از نوع فعلی آن است، 58 00:04:40,500 --> 00:04:45,610 هیچ چیز می تواند در زمان کامپایل برای بررسی اینکه آیا که بازیگران برای موفقیت وجود دارد. 59 00:04:45,610 --> 00:04:51,130 جاوا همچنین دارای برخی از نوع پویا بررسی است که به محض این که آن را به این خط از کد می شود 60 00:04:51,130 --> 00:04:54,130 هنگامی که آن را در واقع اجرای آن را به انجام بازیگران، 61 00:04:54,130 --> 00:04:56,260 چک کنید در صورتی که بازیگران معتبر در وهله اول، 62 00:04:56,260 --> 00:04:59,890 و اگر آن نبود، و سپس آن را به رفتن به شکایت است که شما باید یک نوع نامعتبر است. 63 00:04:59,890 --> 00:05:03,200 نوع پویا استفاده می شود. 64 00:05:03,200 --> 00:05:07,010 این نوع را به یک فایل با نام dynamic.php. 65 00:05:10,130 --> 00:05:12,380 Dynamic.php. 66 00:05:14,580 --> 00:05:17,190 من که قالب را از حالت زیپ خارج کنید. 67 00:05:18,750 --> 00:05:21,880 ما باید یک متغیر باشد، ما آن را به 7 عدد صحیح، 68 00:05:21,880 --> 00:05:27,930 پس از آن ما در حال رفتن به آن را چاپ و S٪ - 69 00:05:27,930 --> 00:05:32,830 آه، ما در حال چاپ نوع از آن، بنابراین gettype برای بازگشت به نوع متغیر است. 70 00:05:32,830 --> 00:05:35,720 ما فقط چاپ نوع بارها و بارها. 71 00:05:35,720 --> 00:05:39,440 ما فقط php.dynamic.php. 72 00:05:39,440 --> 00:05:45,920 خواهیم دید که آن را از عدد صحیح به رشته به بولی ما را از طریق رفتن. 73 00:05:45,920 --> 00:05:54,590 در سی هیچ نوع داده بولی است، این است که هیچ نوع داده رشته ای وجود دارد. 74 00:05:54,590 --> 00:06:00,500 * کاراکتر وجود دارد و بولی فقط گرایش به دانشنامه هوشمند یا کاراکتر و یا چیزی است. 75 00:06:00,500 --> 00:06:05,690 در PHP این نوع وجود داشته باشد، و این یکی از مزیت های بزرگ از PHP بیش C - 76 00:06:05,690 --> 00:06:13,290 که عملیات رشته ها بی نهایت آسان تر در PHP از C. آنها فقط کار. 77 00:06:13,290 --> 00:06:18,290 >> بنابراین ما به اینجا برگرد. 78 00:06:18,290 --> 00:06:21,260 ما زد dynamic.php. 79 00:06:21,260 --> 00:06:26,710 این می گوید مفسر PHP به نام پی اچ پی، برای اجرای کد های PHP در dynamic.php. 80 00:06:26,710 --> 00:06:30,250 اگر شما هر گونه خطا در فایل، مفسر را به شما بگویم! 81 00:06:30,250 --> 00:06:39,110 مترجم، این یکی دیگر از تفاوت های بزرگ بین PHP و C. 82 00:06:39,110 --> 00:06:48,200 در C شما باید چیزی به کامپایل و سپس آن فایل کامپایل شده را اجرا می کنید. 83 00:06:48,200 --> 00:06:50,490 شما هر چیزی را در PHP کامپایل هرگز. 84 00:06:50,490 --> 00:06:57,200 بنابراین مفسر PHP است که اساسا فقط خواندن این خط به خط. 85 00:06:57,200 --> 00:07:02,900 بازدید این ور = 7 سپس آن را بازدید printf و سپس آن را بازدید VAR و سپس آن بازدید printf و به همین ترتیب. 86 00:07:02,900 --> 00:07:10,910 است که کمی از کامپایل کردن آن می کند وجود دارد، و آن را کاشه (cach) 87 00:07:10,910 --> 00:07:15,510 بنابراین اگر شما برای اجرای اسکریپت بعد شما می توانید برخی از. 88 00:07:15,510 --> 00:07:19,280 اما اساسا آن را یک خط مرتب کردن بر اساس خط از چیزی است. 89 00:07:19,280 --> 00:07:25,280 این بدان معنی است که بسیاری از بهینه سازی است که ما در C، 90 00:07:25,280 --> 00:07:31,920 مانند تدوین، آن را فقط به طور کلی کامپایلر می تواند به بسیاری از ترفندهای برای شما انجام دهد. 91 00:07:31,920 --> 00:07:36,110 این می تواند متغیر استفاده نشده، می تواند تمام این چیزها را انجام دهد، 92 00:07:36,110 --> 00:07:38,660 آن می تواند بازگشت دم را انجام دهید. 93 00:07:38,660 --> 00:07:42,550 در PHP شما نمی خواهید که برای دریافت استفاده 94 00:07:42,550 --> 00:07:45,690 به دلیل آن را فقط برای شروع اجرای خط به خط به خط، 95 00:07:45,690 --> 00:07:49,950 و آن را واقعا نمی رسمیت شناختن این چیزها را به راحتی 96 00:07:49,950 --> 00:07:54,440 از آن 1 پاس تلفیقی بزرگ بیش از چیزی و سپس اعدام نیست؛ 97 00:07:54,440 --> 00:07:56,860 این فقط خط به خط. 98 00:08:00,730 --> 00:08:02,750 به طوری که مترجم است. 99 00:08:02,750 --> 00:08:06,840 >> برگشت به تایپ پویا ما: بسیار سرد، سوگند ملایمی؟ 100 00:08:06,840 --> 00:08:08,640 شما قطعا می تواند در C را انجام ندهید! 101 00:08:08,640 --> 00:08:11,860 در حال حاضر، اگر شما می توانید از نوع هر یک از مقادیر زیر است. 102 00:08:11,860 --> 00:08:14,760 این کار را برای مرجع. 103 00:08:14,760 --> 00:08:19,420 بنابراین 3.50. چه نوع آیا شما فکر می کنم که رفتن به؟ 104 00:08:24,480 --> 00:08:26,370 در اینجا انواع که ما داریم. 105 00:08:26,370 --> 00:08:30,430 ما bools، اعداد صحیح، نقاط شناور، رشته ها، آرایه ها، اشیاء، 106 00:08:30,430 --> 00:08:38,370 و پس از آن منابع، که نوع مبهم است. 107 00:08:38,370 --> 00:08:41,010 من فکر می کنم در واقع وجود دارد به عنوان مثال در اینجا. 108 00:08:41,010 --> 00:08:43,740 سپس NULL وجود دارد. NULL نوع خاصی است. 109 00:08:43,740 --> 00:08:47,140 بر خلاف C که در آن NULL فقط یک اشاره گر با آدرس 0، 110 00:08:47,140 --> 00:08:54,930 در PHP، NULL نوع خاص خود را دارد که در آن تنها چیزی معتبر است که نوع NULL است. 111 00:08:57,560 --> 00:09:00,670 این است که بسیار مفید برای چک کردن خطا. 112 00:09:00,670 --> 00:09:04,310 در C جایی که ما تا به حال این موضوع که اگر شما بازگشت NULL، 113 00:09:04,310 --> 00:09:08,660 آیا این معنی است که شما در حال بازگشت یک اشاره گر NULL و یا با استفاده از NULL به معنی خطا 114 00:09:08,660 --> 00:09:12,380 یا همه از این سردرگمی ما در یک نقطه بود. 115 00:09:12,380 --> 00:09:18,440 در اینجا، بازگشت NULL به طور کلی به معنی خطا. 116 00:09:20,860 --> 00:09:27,300 بسیاری از مسائل را برای خطا نیز نادرست بازگشت. 117 00:09:27,300 --> 00:09:33,140 اما نکته این است که نوع NULL، تنها چیزی که از نوع NULL NULL است. 118 00:09:33,140 --> 00:09:40,090 سپس پاسخ به تماس است که شما می توانید از برخی از توابع بی نام را تعریف کنیم. 119 00:09:40,090 --> 00:09:46,420 شما لازم نیست که تابع را به یک نام، اما شما نمی خواهد که برای مقابله با آن در اینجا. 120 00:09:46,420 --> 00:09:53,940 نگاهی به انواع که آنها از ما انتظار می دانم، 121 00:09:53,940 --> 00:09:59,000 چه چیزی به شما فکر می کنم نوع از 3.50؟ >> [دانشجو] شناور. 122 00:09:59,000 --> 00:10:00,370 آره. 123 00:10:00,370 --> 00:10:06,290 بنابراین پس در اینجا، چه چیزی شما فکر می کنم نوع از این است؟ >> [دانشجو] آرایه. 124 00:10:06,290 --> 00:10:09,890 آره. یکی از اولین شناور بود، یک دوم، یک آرایه است. 125 00:10:09,890 --> 00:10:14,500 توجه داشته باشید که این آرایه مانند یک آرایه C 126 00:10:14,500 --> 00:10:19,610 که در آن شما باید اندیس 0 تا به برخی از ارزش، شاخص 1 تا برخی از ارزش است. 127 00:10:19,610 --> 00:10:26,320 شاخص های A، B، و C و ارزش ها 1، 2، و 3. 128 00:10:26,320 --> 00:10:33,980 در PHP است تفاوت بین یک آرایه انجمنی و فقط یک آرایه منظم وجود دارد 129 00:10:33,980 --> 00:10:36,740 شما می توانید از آن در C. فکر می کنم 130 00:10:36,740 --> 00:10:43,040 فقط این وجود دارد، و در زیر هود یک آرایه منظم است فقط یک آرایه انجمنی 131 00:10:43,040 --> 00:10:50,000 که در آن 0 نقشه برخی از ارزش همان راه نقشه ها به برخی از ارزش است. 132 00:10:50,000 --> 00:11:00,410 به همین دلیل، PHP می تواند خیلی بد کد / تعیین معیار همه چیز واقعا سریع 133 00:11:00,410 --> 00:11:07,930 از آنجا که در C زمانی که شما با استفاده از یک آرایه شما می دانید که دسترسی به زمان ثابت است. 134 00:11:07,930 --> 00:11:11,860 در PHP دسترسی به یک عضو است که می داند که چقدر زمان؟ 135 00:11:11,860 --> 00:11:18,970 احتمالا اگر آن را به رشته هش را به درستی ثابت. 136 00:11:18,970 --> 00:11:21,620 چه کسی می داند آنچه در آن واقعا در زیر هود انجام؟ 137 00:11:21,620 --> 00:11:25,600 شما واقعا نیاز در پیاده سازی نگاه کنید تا ببینید که چگونه آن را برای مقابله با آن. 138 00:11:25,600 --> 00:11:28,550 پس fopen. 139 00:11:28,550 --> 00:11:36,420 من فکر می کنم در اینجا اجازه دهید فقط PHP کتابچه راهنمای کاربر fopen نگاهی به نوع بازگشت. 140 00:11:36,420 --> 00:11:41,260 ما می بینیم که در اینجا شما می توانید نگاه کردن تقریبا هر تابع در PHP کتابچه راهنمای کاربر 141 00:11:41,260 --> 00:11:47,540 و این نوع از صفحه مرد از PHP است. 142 00:11:47,540 --> 00:11:51,060 نوع بازگشت است به منابع. 143 00:11:51,060 --> 00:11:56,050 به همین دلیل است که من آن را نگاه کردن، چون ما واقعا نمی تعریف منابع است. 144 00:11:56,050 --> 00:12:04,110 این ایده از منابع، در C شما نوع فایل یا هر چیز دیگری؛ 145 00:12:04,110 --> 00:12:07,200 در پی اچ پی منبع فایل شما است. 146 00:12:07,200 --> 00:12:10,360 این چیزی است که شما در حال رفتن به خواندن از آن چیزی است که شما در حال رفتن به نوشتن. 147 00:12:10,360 --> 00:12:20,710 معمولا خارجی است، پس از آن منابع شما می توانید همه چیز را از کشیدن و انداختن همه چیز را به. 148 00:12:20,710 --> 00:12:26,520 و در نهایت، NULL چه نوع است؟ >> [دانشجو] NULL. 149 00:12:26,520 --> 00:12:30,650 آره. بنابراین تنها چیزی است که NULL NULL است. 150 00:12:30,650 --> 00:12:33,480 NULL NULL است. 151 00:12:35,490 --> 00:12:41,170 >> یکی از ویژگی های سیستم نوع PHP (برای بهتر شدن یا بدتر شدن)، توانایی خود را به حقه بازی انواع است. 152 00:12:41,170 --> 00:12:44,390 هنگامی که شما در نوشتن یک خط از کد PHP است که ترکیبی از مقادیر از انواع مختلف، 153 00:12:44,390 --> 00:12:46,670 PHP سعی خواهد کرد که چیز معقول برای انجام. 154 00:12:46,670 --> 00:12:48,920 سعی کنید از هر یک از خطوط زیر را از کد PHP است. چه چاپ شده است؟ 155 00:12:48,920 --> 00:12:51,000 آن چیزی است که شما انتظار می رود؟ چرا یا چرا که نه؟ 156 00:12:51,000 --> 00:12:58,600 این واقعیت در مورد پی اچ پی همان چیزی است که آن را می سازد چیزی است که ما ضعیف تایپ. 157 00:12:58,600 --> 00:13:04,610 ضعیف تایپ شده و به شدت تایپ، 158 00:13:04,610 --> 00:13:06,840 استفاده های مختلف برای آن دسته از قوانین و مقررات وجود دارد، 159 00:13:06,840 --> 00:13:12,020 اما بسیاری از افراد از ضعیف تایپ شده و به شدت تایپ به معنی این نوع از چیزی 160 00:13:12,020 --> 00:13:15,920 که در آن ("1" + 2)، که با این نسخهها کار. 161 00:13:15,920 --> 00:13:18,290 در C است که نمی خواهد کار کند. 162 00:13:18,290 --> 00:13:22,490 شما می توانید تصور کنید که این کار نمی کند. 163 00:13:22,490 --> 00:13:29,200 بسیاری از مردم مخلوط کردن تایپ پویا و تایپ ضعیف و نوع دهی استاتیک و تایپ قوی است. 164 00:13:29,200 --> 00:13:34,050 پایتون یکی دیگر از نمونه ای از یک زبان که به صورت پویا تایپ است. 165 00:13:34,050 --> 00:13:41,770 شما می توانید در اطراف انواع در متغیرهای پرتاب و آن را در زمان اجرا تعیین 166 00:13:41,770 --> 00:13:44,680 هر checkings خطا. 167 00:13:44,680 --> 00:13:50,740 در پایتون برای اجرای این و آن را به ("1" + 2)؛ 168 00:13:50,740 --> 00:13:55,920 و این با شکست مواجه خواهد شد چرا که در آن می گوید: شما می توانید یک رشته و یک عدد صحیح را اضافه نمی کند. 169 00:13:55,920 --> 00:14:00,860 در PHP، است که فقط به صورت پویا تایپ، این با شکست مواجه خواهد شد. 170 00:14:00,860 --> 00:14:04,220 تایپ ضعیف به این واقعیت است که آن چیز با انواع 171 00:14:04,220 --> 00:14:07,800 که واقعا ایجاد حس لزوما. 172 00:14:07,800 --> 00:14:17,420 بنابراین ("1" + 2)، می توانید تصور کنید که 12 رشته، من می توانم آن را تصور کنید که رشته 3، 173 00:14:17,420 --> 00:14:20,710 من می توانم آن را تصور کنید که در 3 صحیح است. 174 00:14:20,710 --> 00:14:24,530 این لزوما به خوبی تعریف نشده است، و ما احتمالا رفتن به اینجا را ببینید 175 00:14:24,530 --> 00:14:29,140 که هنگامی که ما چاپ ("1" + 2)، آن را احتمالا برای پایان دادن به متفاوت بودن 176 00:14:29,140 --> 00:14:32,320 از چاپ (1 + "2"). 177 00:14:32,320 --> 00:14:39,700 و این امر منجر می شود، به نظر من، بدتر است. 178 00:14:39,700 --> 00:14:44,240 در اینجا ما می توانیم این را امتحان کنید. 179 00:14:44,240 --> 00:14:48,740 یکی دیگر از ترفند کوچک در مورد PHP است که شما لازم نیست به فایل در واقع نوشتن است. 180 00:14:48,740 --> 00:14:52,790 آن را ندارد این حالت دستور اجرا شده است. 181 00:14:52,790 --> 00:14:57,710 بنابراین php-R، پس ما می توانیم در دستور اینجا پرتاب: 182 00:14:57,710 --> 00:15:06,610 "چاپ ('1 '+ 2)" و من یک خط جدید پرتاب. 183 00:15:19,550 --> 00:15:23,970 این چاپ 3. 184 00:15:31,100 --> 00:15:35,330 به نظر می رسد مانند آن را چاپ 3 و این 3 عدد صحیح است. 185 00:15:35,330 --> 00:15:38,420 بنابراین در حال حاضر سعی کنید راه دیگری در اطراف. 186 00:15:38,420 --> 00:15:42,970 "چاپ (1 + '2 ')؛ 187 00:15:45,560 --> 00:15:50,490 ما باید 3 است، و آن را نیز به رفتن باشد عدد صحیح 3؟ من صادقانه هیچ نظری ندارم. 188 00:15:50,490 --> 00:15:54,030 به نظر می رسد مانند است که سازگار است. 189 00:15:54,030 --> 00:15:59,550 هر فرصتی از آن است که در 12 رشته و یا هر چیزی شبیه وجود دارد که هرگز 190 00:15:59,550 --> 00:16:08,080 زیرا PHP، بر خلاف جاوا اسکریپت و جاوا بیش از حد، 191 00:16:08,080 --> 00:16:11,670 عملگر جداگانه برای الحاق است. 192 00:16:11,670 --> 00:16:14,930 الحاق در PHP نقطه است. 193 00:16:14,930 --> 00:16:22,950 پس چاپ (1 '2 ')؛ است به ما بدهد 12. 194 00:16:25,790 --> 00:16:32,420 این تمایل منجر به سردرگمی که در آن مردم سعی می کنید برای انجام کاری مانند STR + = 195 00:16:32,420 --> 00:16:37,840 برخی از چیز دیگری که آنها می خواهند برای اضافه کردن به انتهای رشته خود، و آن رفتن به شکست است. 196 00:16:37,840 --> 00:16:40,770 شما نیاز به انجام STR = 197 00:16:42,000 --> 00:16:46,240 پس فراموش نکنید که نقطه الحاق در PHP است. 198 00:16:46,240 --> 00:16:52,100 چیزهای دیگر را امتحان کنید: چاپ ("CS" + 50)؛ 199 00:16:55,750 --> 00:17:03,610 من به شما گفته است که هیچ امیدی از این در نتیجه CS50 وجود دارد 200 00:17:03,610 --> 00:17:06,119 از زمان الحاق + نمی باشد. 201 00:17:06,119 --> 00:17:08,440 شما چه فکر میکنید این است که برای پایان دادن به بودن؟ 202 00:17:10,359 --> 00:17:13,460 من صادقانه به هیچ وجه ایده است. 203 00:17:14,250 --> 00:17:16,460 به نظر می رسد مانند آن را فقط 50. 204 00:17:16,460 --> 00:17:21,490 آن را می بیند رشته، و من شرط می بندم اگر ما را 123CS - 205 00:17:21,490 --> 00:17:29,640 رشته اول آن را می بیند، سعی می کند برای خواندن یک عدد صحیح از آن و یا یک شماره از آن است. 206 00:17:29,640 --> 00:17:31,710 در این حالت آن را می بیند 123CS. 207 00:17:31,710 --> 00:17:35,190 "این احساس به عنوان یک عدد صحیح را ندارد، بنابراین من فقط رفتن به از 123 فکر می کنم." 208 00:17:35,190 --> 00:17:38,580 بنابراین 123 + 50 رفتن به 173. 209 00:17:38,580 --> 00:17:40,740 و در اینجا از آن شروع به خواندن این کار را به عنوان یک عدد صحیح است. 210 00:17:40,740 --> 00:17:45,690 این هیچ چیزی رو نمی بینم، پس از آن فقط رفتار آن را با 0. بنابراین 0 + 50 رفتن به تواند 50. 211 00:17:45,690 --> 00:17:51,600 من فرض است که برای انجام کاری مشابه است. 212 00:17:51,600 --> 00:17:54,310 من فکر میکنم 99. 213 00:17:54,310 --> 00:17:57,580 آره، چرا که آن را به اول - 214 00:18:12,880 --> 00:18:15,730 بنابراین 99. 215 00:18:15,730 --> 00:18:21,970 (10/7)، در صورتی که این C بودند، چه که باز گردم؟ 216 00:18:23,700 --> 00:18:29,630 [دانشجو] 1. >> بله، آن خواهد بود. 1. چون 10/7 تقسیم 2 عدد صحیح. 217 00:18:29,630 --> 00:18:32,910 یک عدد صحیح تقسیم یک عدد صحیح است به بازگشت به یک عدد صحیح است. 218 00:18:32,910 --> 00:18:37,750 این می تواند نقطه 1 هر آنچه که خواهد بود بر نمی گرداند، پس از آن فقط رفتن به بازگشت 1. 219 00:18:37,750 --> 00:18:46,120 در اینجا چاپ (10/7)، رفتن به واقع تفسیر که. 220 00:18:46,120 --> 00:18:53,760 و این بدان معنی است که اگر شما واقعا می خواهید برای انجام گرد کردن عدد صحیح و چیزهای شبیه به آن، 221 00:18:53,760 --> 00:18:59,950 شما نیاز به انجام چاپ (کف (10/7))؛ 222 00:18:59,950 --> 00:19:08,460 در C از آن احتمالا عجیب و غریب است که شما را به طور منظم می تواند در کوتاه سازی صحیح تکیه می کنند، 223 00:19:08,460 --> 00:19:12,260 اما در PHP شما می توانید نه به این دلیل که آن را به طور خودکار آن را به یک شناور تبدیل شود. 224 00:19:13,430 --> 00:19:17,610 و پس از آن (7 + واقعی)، آنچه می توانم به شما فکر می کنم که رفتن به؟ 225 00:19:18,550 --> 00:19:23,640 من حدس می زنم 8 اگر آن را به تفسیر واقعی به عنوان 1. 226 00:19:23,640 --> 00:19:25,740 به نظر می رسد مانند آن 8. 227 00:19:25,740 --> 00:19:31,710 >> بنابراین هر چیزی که ما رو در 10 دقیقه گذشته شما مطلقا هرگز نباید انجام دهم انجام می شود. 228 00:19:31,710 --> 00:19:39,870 شما می توانید کد که این را ببینید. 229 00:19:39,870 --> 00:19:42,700 این را ندارد به عنوان سر راست به عنوان این. 230 00:19:42,700 --> 00:19:47,240 شما می توانید 2 متغیر، و 1 متغیر اتفاق می افتد به عنوان یک رشته 231 00:19:47,240 --> 00:19:51,310 و متغیر های دیگر اتفاق می افتد بین المللی، و سپس این متغیر شما اضافه کردن با هم. 232 00:19:51,310 --> 00:20:00,120 از آنجا که پی اچ پی است که به صورت پویا تایپ و آن را از هر گونه کنترل نوع را برای شما انجام نمی 233 00:20:00,120 --> 00:20:03,640 و از آن ضعیف تایپ شده و از آن فقط به طور خودکار پرتاب این چیزها را با هم 234 00:20:03,640 --> 00:20:11,490 و همه چیز را فقط کار خواهد کرد، این مشکل حتی می دانیم که این متغیر باید یک رشته در حال حاضر، 235 00:20:11,490 --> 00:20:14,930 بنابراین من باید آن را به این متغیر اضافه کردن نیست، که یک عدد صحیح است. 236 00:20:18,780 --> 00:20:24,560 بهترین عمل است اگر یک متغیر رشته ای است، آن را نگه دارید به عنوان یک رشته برای همیشه لطفا برای. 237 00:20:24,560 --> 00:20:26,980 اگر یک متغیر از نوع int است، آن را نگه دارید به عنوان یک نوع int برای همیشه لطفا برای. 238 00:20:26,980 --> 00:20:30,770 اگر شما می خواهید برای مقابله با اعداد صحیح و رشته ها، 239 00:20:30,770 --> 00:20:36,970 شما می توانید varsint استفاده - که جاوا اسکریپت می باشد. 240 00:20:36,970 --> 00:20:42,520 Intval. من این کار را در همه زمان ها است. PHP و JavaScript من مخلوط کردن همه چیز. 241 00:20:42,520 --> 00:20:47,600 بنابراین intval رفتن به بازگشت به مقدار عدد صحیح یک متغیر است. 242 00:20:47,600 --> 00:20:56,550 اگر ما در "چاپ (intval ('123 ')) منتقل می کند، شما می توانید 123. 243 00:21:06,820 --> 00:21:15,850 Intval خود را به انجام چک برای ما است که آن را منحصرا یک عدد صحیح است. 244 00:21:15,850 --> 00:21:20,460 کتابچه راهنمای PHP، بسیاری از توابع وجود دارد، 245 00:21:20,460 --> 00:21:26,560 بنابراین در اینجا من فکر می کنم آنچه که من می خواهم با استفاده از is_numeric 1. 246 00:21:26,560 --> 00:21:32,590 من حدس می زنم که بازگشت غلط است. 247 00:21:32,590 --> 00:21:35,780 این یکی دیگر از چیزهایی است که ما باید به بیش از ===. 248 00:21:37,850 --> 00:21:44,020 بنابراین is_numeric ('123df)، شما نمی خواهد فکر می کنم که به عنوان is_numeric. 249 00:21:44,020 --> 00:21:46,720 در C شما را مجبور به تکرار بیش از همه شخصیت های 250 00:21:46,720 --> 00:21:50,410 و چک کنید تا ببینید که آیا هر یک از شخصیت رقمی یا هر چیز دیگری. 251 00:21:50,410 --> 00:21:53,850 در اینجا is_numeric رفتن برای انجام این کار برای ما، 252 00:21:53,850 --> 00:21:56,520 و آن را بازگشت نادرست است. 253 00:21:56,520 --> 00:22:02,120 بنابراین، هنگامی که من چاپ شده است که، آن را چاپ هیچ چیز، بنابراین در اینجا من مقایسه آن را به 254 00:22:02,120 --> 00:22:05,490 آیا شما اتفاق می افتد که کاذب باشد؟ و بنابراین در حال حاضر آن را چاپ 1. 255 00:22:05,490 --> 00:22:10,060 ظاهرا آن را چاپ 1 عدد را به عنوان واقعی به جای چاپ به عنوان حقیقت درست است. 256 00:22:10,060 --> 00:22:15,790 من تعجب می کنم اگر من print_r. نه، آن را هنوز هم می کند 1. 257 00:22:15,790 --> 00:22:26,760 >> بازگشت به =، == هنوز هم وجود دارد، 258 00:22:26,760 --> 00:22:32,260 و اگر شما به تامی صحبت او می گویند == کاملا خوب است. 259 00:22:32,260 --> 00:22:37,700 من قصد دارم بگویم که == وحشتناک است و شما باید از == استفاده نمی. 260 00:22:37,700 --> 00:22:44,870 تفاوت این است که == مقایسه همه چیز 261 00:22:44,870 --> 00:22:48,450 که در آن می توان آن را حتی اگر آنها از همان نوع، 262 00:22:48,450 --> 00:22:53,810 در حالی === مقایسه همه چیز و برای اولین بار آن را چک می کنند از همان نوع است؟ 263 00:22:53,810 --> 00:22:58,010 بله. خوب، حالا من قصد دارم تا ببینید که آیا آنها در واقع نسبت به برابر است. 264 00:22:58,010 --> 00:23:08,890 شما دریافت می کنید چیزهای عجیب و غریب مانند 10 برابر - اجازه دهید ببینیم که چه چیزی است که می گوید. 265 00:23:08,890 --> 00:23:15,570 ('10 '== '1 E1')؛ 266 00:23:15,570 --> 00:23:17,980 این درست برمی گرداند. 267 00:23:17,980 --> 00:23:21,420 آیا هر کسی هر گونه حدس بزند که چرا این مقدار true برگرداند؟ 268 00:23:25,180 --> 00:23:27,120 این فقط در مورد آن نیست. شاید این یک اشاره است. 269 00:23:27,120 --> 00:23:33,170 اما اگر من تغییر آن به F - لعنتی! من را با استفاده از کوتیشن. 270 00:23:33,170 --> 00:23:38,780 به این دلیل به نقل از دو فریاد به من است چون من این کار را در کوتیشن قرار داده شده است. 271 00:23:38,780 --> 00:23:43,850 بنابراین من می توانم نقل قول دوگانه در اینجا، فرار نقل قول تنها آن را آسان تر است. 272 00:23:43,850 --> 00:23:49,120 ('10 '== '1 F1')؛ درست چاپ نمی. ('10 '== '1 E1')؛ چاپ درست است. 273 00:23:49,120 --> 00:23:56,330 [دانشجو] آیا این سحر و جادو است؟ >> این سحر و جادو نیست، اما آن را نزدیک است که آن را مانند - 274 00:23:56,330 --> 00:24:01,060 1e1، نماد گذاری علمی است. 275 00:24:01,060 --> 00:24:07,950 این به رسمیت می شناسد 1e1 به عنوان 1 * 10 ^ 1 و یا هر چیز دیگری. 276 00:24:07,950 --> 00:24:11,510 کسانی که عدد صحیح مساوی هستند. 277 00:24:11,510 --> 00:24:15,930 اگر ما === و سپس آن را به صورت نادرست است. 278 00:24:15,930 --> 00:24:28,490 در واقع من هیچ نظری ندارم که اگر ما == آنچه که در مورد (10 و '10abc ')؛ بسیار خوب. به طوری که درست است. 279 00:24:28,490 --> 00:24:35,940 پس فقط زمانی که شما (10 + ''10abc) مثل و آن خواهد بود 20. 280 00:24:35,940 --> 00:24:38,800 در اینجا (10 == ''10abc)؛ درست است. 281 00:24:38,800 --> 00:24:45,350 حتی بدتر از چیزهایی مانند (نادرست == NULL)؛ درست است 282 00:24:45,350 --> 00:24:52,210 یا (غلط == 0) درست است (کاذب == [])؛ 283 00:24:52,210 --> 00:25:00,970 موارد عجیب و غریب وجود دارد - که یکی از آن موارد عجیب و غریب است. 284 00:25:00,970 --> 00:25:08,110 توجه داشته باشید که (غلط == [])؛ واقعی است. 285 00:25:08,110 --> 00:25:11,950 ('0 '== کاذب) درست است. 286 00:25:11,950 --> 00:25:16,090 ('0 '== [])؛ غلط است. 287 00:25:16,090 --> 00:25:19,090 بنابراین == به هیچ وجه متعدی است. 288 00:25:19,090 --> 00:25:26,830 می تواند به B برابر است و می تواند برابر با C، 289 00:25:26,830 --> 00:25:29,340 اما نه ب ممکن است برابر با C است. 290 00:25:29,340 --> 00:25:35,580 این عمل شنیع به من است، و شما همیشه باید از آن استفاده =. 291 00:25:35,580 --> 00:25:38,590 [دانشجو] آیا می توانیم انجام دهید! == نیز؟ >> [Bowden] بله. 292 00:25:38,590 --> 00:25:44,600 معادل خواهد بود =! == 293 00:25:44,600 --> 00:25:48,230 این است که در واقع در تنظیمات pset آورده 294 00:25:48,230 --> 00:25:52,000 که در آن بسیاری از بازگشت از توابع - 295 00:25:52,000 --> 00:25:53,890 کتابچه راهنمای PHP در این مورد خوب است. 296 00:25:53,890 --> 00:25:59,140 آن را در یک جعبه بزرگ قرمز قرار می دهد، "باز خواهد گشت نادرست اگر یک خطا وجود دارد." 297 00:25:59,140 --> 00:26:03,940 اما بازگشت 0 چیزی که کاملا معقول و منطقی به بازگشت است. 298 00:26:03,940 --> 00:26:08,250 فکر می کنم در مورد هر تابع است که انتظار می رود برای بازگشت به یک عدد صحیح است. 299 00:26:11,250 --> 00:26:17,880 بیایید می گویند که این تابع قرار است برای شمارش تعداد خطوط در یک فایل و یا چیزی. 300 00:26:17,880 --> 00:26:23,490 تحت شرایط عادی، شما این تابع یک فایل 301 00:26:23,490 --> 00:26:27,120 و آن را به بازگشت به یک عدد صحیح است که نشان دهنده تعداد خطوط. 302 00:26:27,120 --> 00:26:30,820 بنابراین: 0 تعداد کاملا معقول است اگر این فایل فقط خالی است. 303 00:26:30,820 --> 00:26:36,810 اما چه می شود اگر شما تصویب آن یک فایل نامعتبر است و تابع اتفاق می افتد، به بازگشت به غلط 304 00:26:36,810 --> 00:26:38,860 اگر شما آن فایل نامعتبر است منتقل می کند؟ 305 00:26:38,860 --> 00:26:46,500 اگر شما فقط == شما مورد تفاوت بین فایل های نامعتبر و فایل خالی نیست. 306 00:26:48,870 --> 00:26:51,350 همیشه = استفاده کنید. 307 00:26:55,690 --> 00:26:58,000 که همه از آن. 308 00:26:58,000 --> 00:27:01,660 >> نوع آرایه در PHP، متفاوت است از آنچه که شما به در C. 309 00:27:01,660 --> 00:27:06,650 در واقع، شما ممکن است در حال حاضر متوجه این فوق هنگامی که شما را دیدم این است که از آرایه از نوع. 310 00:27:06,650 --> 00:27:15,640 نحو براکت جدید همانطور که از PHP 5.4، است که جدیدترین نسخه از PHP است. 311 00:27:15,640 --> 00:27:36,960 قبل از این که شما همیشه مجبور به نوشتن آرایه ('A' -> 1، 'B' -> 2. 312 00:27:36,960 --> 00:27:41,160 که سازنده برای یک آرایه بود. 313 00:27:41,160 --> 00:27:45,950 در حال حاضر PHP در نهایت به اطراف می آیند، به نحو خوبی از تنها براکت 314 00:27:45,950 --> 00:27:50,900 که خیلی خیلی بهتر از آرایه. 315 00:27:50,900 --> 00:27:54,480 اما با توجه به PHP 5.4 جدیدترین نسخه است. 316 00:27:54,480 --> 00:27:59,090 شما ممکن است در جاهایی که حتی نمی PHP 5.3 روبرو می شوند. 317 00:27:59,090 --> 00:28:08,220 در طول تابستان ما را به این موضوع زد که در آن PHP 5.3 چیزی بود که ما در دستگاه بود، 318 00:28:08,220 --> 00:28:14,480 اما این سرور که ما مستقر کتاب کلاس ما و ارائه و تمام چیزهای که به 319 00:28:14,480 --> 00:28:16,750 PHP 5.4 بود. 320 00:28:16,750 --> 00:28:23,060 نمی دانستند این کار، ما در 5.3 توسعه یافته، تحت فشار قرار دادند به 5.4، 321 00:28:23,060 --> 00:28:25,660 و در حال حاضر همه هیچ کدام ناگهانی از کد ما کار می کند 322 00:28:25,660 --> 00:28:28,680 به این دلیل اتفاق افتاده است که به تغییرات بین 5.3 و 5.4 وجود دارد 323 00:28:28,680 --> 00:28:31,030 که به عقب سازگار نیست، 324 00:28:31,030 --> 00:28:35,770 و ما باید به بروید و تعمیر همه چیز ما است که برای PHP 5.4 کار نمی کند. 325 00:28:39,210 --> 00:28:42,320 برای این کلاس از دستگاه PHP 5.4، 326 00:28:42,320 --> 00:28:45,490 آن را کاملا خوب به استفاده از براکت مربع است. 327 00:28:47,240 --> 00:28:50,440 اما اگر شما به دنبال چیز در اینترنت، 328 00:28:50,440 --> 00:28:54,880 اگر شما به دنبال برخی از نوع آرایه ای از مسائل، به احتمال زیاد شما در حال رفتن به 329 00:28:54,880 --> 00:29:02,020 طلسم خارج نحو سازنده آرایه از آنجا که از PHP بوده است متولد شد 330 00:29:02,020 --> 00:29:07,340 و نحو براکت در حدود دو ماه گذشته بوده است 331 00:29:07,340 --> 00:29:10,020 یا هر زمان 5.4 آمد در اطراف. 332 00:29:10,020 --> 00:29:12,710 این که چگونه شما شاخص است. 333 00:29:12,710 --> 00:29:30,610 فقط می خواهم در C چگونه می خواهید شاخص توسط براکت مثل آرایه [0]، $ آرایه [1]، $ آرایه [2]، 334 00:29:30,610 --> 00:29:36,320 شما اول راه همان اگر شما اتفاق می افتد به شاخص های خود را رشته است. 335 00:29:36,320 --> 00:29:40,440 بنابراین آرایه ی $ [''] و $ آرایه ['B']. 336 00:29:40,440 --> 00:29:47,410 $ آرایه [B]. چرا که این اشتباه است؟ 337 00:29:52,490 --> 00:29:59,870 احتمالا یک هشدار است اما تولید و هنوز هم کار می کنند. PHP تمایل به انجام این کار است. 338 00:29:59,870 --> 00:30:04,890 این فقط به "من قصد دارم تا شما را در این مورد هشدار می دهند تمایل دارد، اما من فقط رفتن به رفتن ادامه دهید 339 00:30:04,890 --> 00:30:07,550 "و انجام هر کاری که من می توانم." 340 00:30:07,550 --> 00:30:11,500 احتمالا این به یک رشته ترجمه، 341 00:30:11,500 --> 00:30:15,000 اما این امکان وجود دارد که در برخی از نقطه در کسی گذشته گفت: 342 00:30:15,000 --> 00:30:20,180 تعریف B به "HELLO WORLD". 343 00:30:20,180 --> 00:30:28,740 بنابراین در حال حاضر B می تواند یک آرایه ثابت و $ [B] واقع خواهد شد را انجام خواهد داد "HELLO WORLD". 344 00:30:28,740 --> 00:30:32,380 من فکر می کنم در این نقطه، یا حداقل تنظیمات PHP، 345 00:30:32,380 --> 00:30:37,870 اگر شما به صفحه اول را به یک آرایه را امتحان کنید و این کلید وجود ندارد، آن را با شکست مواجه خواهد شد. 346 00:30:37,870 --> 00:30:40,150 من فکر نمی کنم آن را فقط به شما هشدار می دهند. 347 00:30:40,150 --> 00:30:44,560 یا حداقل شما می توانید آن را به طوری که آن را نه تنها به شما هشدار می دهد تنظیم کنید، آن را فقط راست بالا می افتد. 348 00:30:44,560 --> 00:30:49,290 >> راه شما چک کنید در صورتی که در واقع وجود دارد از جمله شاخص isset است. 349 00:30:49,290 --> 00:30:54,690 بنابراین isset ($ آرایه [«HELLO WORLD ']) باز خواهد گشت نادرست است. 350 00:30:54,690 --> 00:30:59,160 isset ($ آرایه ['ب']) باز خواهد گشت درست است. 351 00:31:06,830 --> 00:31:09,880 شما می توانید از این گرامرهای مخلوط. 352 00:31:15,060 --> 00:31:22,440 من کاملا مطمئنم که این آرایه را تا پایان بودن است - ما می توانیم آن را تست. 353 00:31:43,290 --> 00:31:45,700 آه، من باید PHPWord. 354 00:31:53,960 --> 00:32:00,260 این مخلوط نحو که در آن مشخص می کنید مهم این است که 355 00:32:00,260 --> 00:32:03,330 و شما مشخص نیست چه کلیدی است. 356 00:32:03,330 --> 00:32:05,520 SO 3 حق در اینجا یک مقدار است. 357 00:32:05,520 --> 00:32:08,080 شما نه به صراحت گفت که کلید آن است برای رفتن به. 358 00:32:08,080 --> 00:32:11,670 شما چه فکر میکنید کلیدی آن است که برای رفتن به؟ 359 00:32:11,670 --> 00:32:21,410 [دانشجو] 0. >> من حدس می زنم 0 فقط به این دلیل آن را یکی از اول ما مشخص نشده است. 360 00:32:21,410 --> 00:32:23,500 ما در واقع می تواند یک زن و شوهر از این موارد را انجام دهید. 361 00:32:23,500 --> 00:32:28,030 بنابراین print_r چاپ بازگشتی. کل آرایه را چاپ کند. 362 00:32:28,030 --> 00:32:32,700 این امر می subarrays از آرایه اگر هر گونه نسخه قابل چاپ. 363 00:32:32,700 --> 00:32:36,630 بنابراین print_r (آرایه)؛ php.test.php. 364 00:32:36,630 --> 00:32:38,810 این کار شبیه به آن را 0. 365 00:32:38,810 --> 00:32:43,530 در واقع چیزی است که به خاطر داشته باشید در اینجا وجود دارد، اما ما را به عقب بر گردیم به آن را در یک ثانیه است. 366 00:32:43,530 --> 00:32:45,850 اما چه می شود اگر من اتفاق می افتد را به این شاخص 1؟ 367 00:32:45,850 --> 00:32:51,170 PHP بین شاخص های رشته ای و شاخص های صحیح افتراق نیست، 368 00:32:51,170 --> 00:33:00,280 در این مرحله من فقط تعریف شاخص 1 و من می توانم هر دو آرایه $ [1] و $ آرایه ['1 '] انجام 369 00:33:00,280 --> 00:33:06,250 و از آن خواهد بود که شاخص مشابه و همان کلید است. 370 00:33:06,250 --> 00:33:13,000 بنابراین در حال حاضر چه چیزی به شما فکر می کنم 3 رفتن به؟ >> [دانشجو] 2. >> [Bowden] من حدس می زنم 2. 371 00:33:16,000 --> 00:33:18,690 آره. IT 2. 372 00:33:18,690 --> 00:33:24,790 چه می شود اگر ما این است 10، این 4 است؟ شما چه فکر میکنید شاخص از 3 رفتن به؟ 373 00:33:27,360 --> 00:33:29,110 من فکر میکنم 11. 374 00:33:29,110 --> 00:33:33,060 حدس می زنم من به عنوان به آنچه که PHP می کند - و من فکر می کنم که من دیده ام قبل از این - 375 00:33:33,060 --> 00:33:39,760 آن است که تنها نگه می دارد ردیابی از بالاترین شاخص عددی است که آن را تا کنون استفاده شده است. 376 00:33:39,760 --> 00:33:44,230 این هرگز به تعیین شاخص رشته تا 3. این همیشه یک شاخص عددی باشد. 377 00:33:44,230 --> 00:33:47,690 بنابراین آن را نگه می دارد آهنگ از بالاترین به آن اختصاص داده شده تا کنون، که اتفاق می افتد به 10، 378 00:33:47,690 --> 00:33:52,540 و آن را به 11 تا 3. 379 00:33:52,540 --> 00:34:02,110 آنچه قبل از من گفت، توجه به راه از آن است که چاپ این آرایه است. 380 00:34:02,110 --> 00:34:06,850 چاپ این 10 کلید، کلید 4، کلید 11، کلید D. 381 00:34:06,850 --> 00:34:09,790 و یا حتی اجازه - 382 00:34:15,760 --> 00:34:22,489 من حدس می زنم من یک 0 قرار داده است، اما آن را چاپ 1، 2، 3، 4 است. 383 00:34:22,489 --> 00:34:29,330 چه می شود اگر من در اینجا تغییر دهید؟ یا اجازه دهید در واقع تغییر این 2. 384 00:34:29,330 --> 00:34:31,940 در حال حاضر آن را چاپ 2، 1، 3، 4. 385 00:34:31,940 --> 00:34:41,270 آرایه های PHP درست مانند خود را در جدول به طور منظم مخلوط نمی شوند. 386 00:34:41,270 --> 00:34:45,570 این کاملا معقول و منطقی به آنها فکر می کنم که به عنوان جداول مخلوط 99٪ از زمان. 387 00:34:45,570 --> 00:34:53,790 اما در جداول هش شما هیچ حس از نظم است که در آن همه چیز قرار گرفت وجود دارد. 388 00:34:53,790 --> 00:34:56,639 بنابراین به محض این که شما آن را وارد به جدول هش را، 389 00:34:56,639 --> 00:35:00,590 فرض هیچ لیست پیوندی وجود دارد و شما می تواند در یک لیست پیوندی قضاوت 390 00:35:00,590 --> 00:35:03,980 که برای اولین بار قرار داده شد. 391 00:35:03,980 --> 00:35:10,060 اما در اینجا ما درج شده است 2 نخست آن را می داند و هنگامی که آن را چاپ کردن این آرایه که 2 می آید برای اولین بار. 392 00:35:10,060 --> 00:35:13,090 آن را چاپ می کند نه فقط در هر سفارش. 393 00:35:13,090 --> 00:35:17,550 ساختار داده ها فنی است که آن را با استفاده از نقشه منظم است، 394 00:35:17,550 --> 00:35:24,690 پس از آن به نقشه کلید به ارزش ها و آن به خاطر نظم است که در آن، کسانی که کلید قرار گرفت. 395 00:35:24,690 --> 00:35:31,600 در واقع آن را به برخی از عوارض که در آن به واقع آزار دهنده است - 396 00:35:31,600 --> 00:35:34,510 بیایید می گویند شما باید یک آرایه 0، 1، 2، 3، 4، 5 397 00:35:34,510 --> 00:35:37,700 و شما می خواهید را از اول 2. 398 00:35:37,700 --> 00:35:47,750 یکی از راه های انجام آن، اجازه دهید ببینیم که چه چیزی است که به نظر می رسد. 399 00:35:47,750 --> 00:35:50,410 0، 2، 1، 3، 4. 400 00:35:50,410 --> 00:35:54,880 لغو تنظیم اتفاق می افتد به هر دو متغیرها و شاخص های آرایه ثابت نشده است. 401 00:35:54,880 --> 00:35:58,630 بنابراین ثابت نشده ($ آرایه ای [2])؛ 402 00:35:58,630 --> 00:36:03,430 در حال حاضر آنچه در این شبیه؟ 2 است فقط رفته، به طوری که کاملا خوب است. 403 00:36:03,430 --> 00:36:11,670 بیشتر آزار دهنده است اگر شما می خواهید همه چیز را به واقع مانند یک آرایه باشد. 404 00:36:11,670 --> 00:36:14,910 من اعداد تصادفی قرار داده است. 405 00:36:14,910 --> 00:36:20,400 در حال حاضر شاخص من اطلاع می دهد. 406 00:36:20,400 --> 00:36:26,860 من می خواهم آن را به درست مثل یک آرایه C باشد که در آن از 0 به طول می رود - 1 407 00:36:26,860 --> 00:36:30,810 و من می توانم بیش از آن را به عنوان از جمله تکرار. 408 00:36:30,810 --> 00:36:38,520 اما به محض این که من ثابت نشده شاخص دوم، چه در شاخص 3 در حال حاضر نه به تبدیل اول 2. 409 00:36:38,520 --> 00:36:44,790 در عوض آن را فقط به حذف آن شاخص و در حال حاضر شما به 0، 1، 3، 4. 410 00:36:44,790 --> 00:36:48,740 این کاملا معقول است. 411 00:36:48,740 --> 00:36:53,950 این فقط آزار دهنده است و شما را مجبور به انجام کارهایی مانند اتصال آرایه. آره. 412 00:36:53,950 --> 00:36:57,200 >> [دانشجو] چه اتفاقی می افتد اگر شما یک حلقه بود 413 00:36:57,200 --> 00:36:59,630 و به شما می خواستم بیش از همه عناصر؟ 414 00:36:59,630 --> 00:37:02,290 وقتی که آن آمار 2، آن را عملکرد تا کنون؟ 415 00:37:02,290 --> 00:37:10,150 تکرار بیش از یک آرایه است. 2 راه وجود دارد که شما می توانید آن را انجام دهد. 416 00:37:10,150 --> 00:37:12,770 شما می توانید به طور منظم برای حلقه استفاده کنید. 417 00:37:12,770 --> 00:37:22,000 این یکی دیگر از ریزه کاری PHP است. 418 00:37:22,000 --> 00:37:27,420 بسیاری از زبان ها، من می گفت، برخی از مرتب کردن بر اساس طول و یا لن یا چیزی 419 00:37:27,420 --> 00:37:30,470 طول آرایه را نشان می دهد. 420 00:37:30,470 --> 00:37:32,820 در PHP آن تعداد است. 421 00:37:32,820 --> 00:37:36,160 بنابراین تعداد (آرایه)؛ $ من + +) 422 00:37:36,160 --> 00:37:42,950 اجازه دهید فقط چاپ (آرایه [من])؛ 423 00:37:45,920 --> 00:37:48,820 توجه: تعریفنشده جبران: 2. 424 00:37:48,820 --> 00:37:51,610 این فقط به شکست است. 425 00:37:51,610 --> 00:38:03,020 این به این دلیل است که، در اکثر موارد، شما هرگز نیاز به تکرار بیش از مجموعه ای شبیه به این است. 426 00:38:03,020 --> 00:38:07,110 این ممکن است اغراق آمیز است، اما شما هرگز نیاز به تکرار بیش از مجموعه ای شبیه به این 427 00:38:07,110 --> 00:38:19,410 چرا که PHP حلقه foreach نحو خود را که در آن حلقه foreach ($ آرایه به عنوان آیتم) را فراهم می کند. 428 00:38:19,410 --> 00:38:31,830 حالا اگر ما چاپ (آیتم) - we'll بحث در مورد آن در یک ثانیه - کار می کند که کاملا خوب است. 429 00:38:31,830 --> 00:38:38,960 که حلقه foreach در حال کار است، بحث اول این است که آرایه ای است که شما در حال تکرار بیش از. 430 00:38:38,960 --> 00:38:44,060 و آرگومان دوم، مورد، از طریق هر یک از عبور از حلقه for 431 00:38:44,060 --> 00:38:52,690 آن را بر روی چیزی که بعد از در آرایه. بنابراین آرایه منظور به یاد داشته باشید. 432 00:38:52,690 --> 00:38:55,690 اولین بار از طریق حلقه for، مورد رفتن به 123 433 00:38:55,690 --> 00:38:59,540 سپس آن را به 12 و سپس به آن خواهد بود 13 و سپس آن خواهد بود 23 و سپس از آن خواهد شد 213. 434 00:38:59,540 --> 00:39:04,670 همه چیز واقعا عجیب و غریب هنگامی که شما چیزی شبیه به حلقه foreach. 435 00:39:04,670 --> 00:39:07,480 بیایید ببینیم که چه چیزی اتفاق می افتد چرا که شما باید این کار را انجام دهند هرگز. 436 00:39:07,480 --> 00:39:13,320 چه می شود اگر ما ثابت نشده ($ آرایه ای [1])؛ 437 00:39:20,410 --> 00:39:26,030 که احتمالا انتظار می رفت. 438 00:39:26,030 --> 00:39:30,950 شما در حال تکرار بیش از این آرایه، و هر زمانی که شما در حال unsetting شاخص اول است. 439 00:39:30,950 --> 00:39:39,720 بنابراین شاخص 0، اولین چیزی که، مورد، مقدار 0 را بر عهده می گیرد، پس از آن خواهد بود 123. 440 00:39:39,720 --> 00:39:44,630 اما در داخل حلقه برای ما ثابت نشده اول 1، به طوری که به معنی 12 رفته است. 441 00:39:44,630 --> 00:39:57,480 بنابراین نسخه قابل چاپ. PHP_EOL. 442 00:39:57,480 --> 00:40:03,580 PHP_EOL فقط خط جدید است، اما آن را از لحاظ فنی قابل حمل 443 00:40:03,580 --> 00:40:08,890 از آنجا که خطوط در ویندوز متفاوت است از خطوط در مک و یونیکس است. 444 00:40:08,890 --> 00:40:18,040 در ویندوز خط جدید \ r \ n و، در حالی که در همه جا دیگری تمایل دارد فقط به \ N. 445 00:40:18,040 --> 00:40:25,150 PHP_EOL پیکربندی شده است به طوری که از آن استفاده می کند هر آنچه را که خط جدید از سیستم شما می باشد. 446 00:40:25,150 --> 00:40:29,310 به طوری که چاپ. بیایید print_r (آرایه) در پایان. 447 00:40:32,830 --> 00:40:37,390 من تا به حال هیچ ایده که رفتار خواهد بود. 448 00:40:41,740 --> 00:40:48,960 عدد هنوز هم بر ارزش 12 طول می کشد حتی اگر ما ثابت نشده 12 قبل از ما تا کنون به آن از آرایه می باشد. 449 00:40:52,770 --> 00:40:58,840 آیا سخن من در این نیست، اما به نظر می رسد مثل حلقه foreach ایجاد یک کپی از آرایه 450 00:40:58,840 --> 00:41:02,160 و پس از آن مورد طول می کشد بر تمام ارزش های که کپی. 451 00:41:02,160 --> 00:41:07,760 بنابراین حتی اگر مجموعه ای در داخل حلقه for را تغییر دهید، 452 00:41:07,760 --> 00:41:17,240 مراقبت از آن را نمی خواهد. تعداد آیتم ها در ارزش های اصلی را انجام دهید. 453 00:41:17,240 --> 00:41:19,240 بیایید سعی کنید unsetting آن. 454 00:41:19,240 --> 00:41:24,460 در صورتی که این دلار است آرایه [1] = "خوش آمدید"؛ 455 00:41:24,460 --> 00:41:31,770 حتی اگر ما "خوش آمدید" را در آرایه قرار داده است، مورد در آن مقدار طول می کشد هرگز. 456 00:41:31,770 --> 00:41:37,430 نحو دیگری به حلقه foreach حلقه وجود دارد 457 00:41:37,430 --> 00:41:45,900 2 متغیر از هم جدا شده توسط یک پیکان را در جایی که شما قرار داده است. 458 00:41:45,900 --> 00:41:49,680 این متغیر اولین بار است به کلید که ارزش، 459 00:41:49,680 --> 00:41:53,050 و این متغیر دوم است برای رفتن به آیتم یکسان است. 460 00:41:53,050 --> 00:42:01,610 این مورد علاقه در اینجا، اما اگر ما به عقب به صورت اصلی ما از 'A' -> 1، 461 00:42:01,610 --> 00:42:06,090 'B' -> 1، 462 00:42:06,090 --> 00:42:14,470 در اینجا اگر ما برای هر یک از آرایه به عنوان آیتم تکرار، مورد خواهد بود 1 در هر زمان تنها. 463 00:42:14,470 --> 00:42:18,170 اما اگر ما همچنین می خواهم به دانستن کلید در ارتباط با آن مورد 464 00:42:18,170 --> 00:42:25,230 پس از آن ما را به عنوان کلید -> $ آیتم. 465 00:42:25,230 --> 00:42:31,980 : "بنابراین در حال حاضر ما می توانیم چاپ ($ کلید انجام دهید. 466 00:42:31,980 --> 00:42:39,380 در حال حاضر آن را تکرار و بیش از چاپ هر کلید و مقدار مرتبط با آن است. 467 00:42:39,380 --> 00:42:47,030 >> چیز دیگری که ما می توانیم در حلقه foreach حلقه انجام است که شما ممکن است به این نحو را ببینید. 468 00:42:47,030 --> 00:42:54,770 Ampersands قبل از نام متغیر تمایل به پی اچ پی نشانی مراجع. 469 00:42:54,770 --> 00:43:00,460 که در آن منابع بسیار شبیه به اشاره گر، 470 00:43:00,460 --> 00:43:04,820 شما اشاره گر ندارد، بنابراین شما با حافظه مقابله هرگز به طور مستقیم. 471 00:43:04,820 --> 00:43:12,620 اما شما اشاره دارند که در آن 1 متغیر اشاره به همان چیزی که به عنوان یکی دیگر متغیر است. 472 00:43:12,620 --> 00:43:21,450 در داخل از اینجا اجازه دهید $ آیتم. بازگشت به 1، 10. 473 00:43:21,450 --> 00:43:28,800 اجازه دهید $ آیتم + +؛ که هنوز در PHP وجود دارد. شما هنوز هم می تواند + + انجام دهد. 474 00:43:28,800 --> 00:43:38,260 php.test.php. من باید آن را چاپ کنید. print_r (آرایه)؛ 475 00:43:38,260 --> 00:43:42,730 ما چاپ 2، 11. 476 00:43:42,730 --> 00:43:49,560 اگر من فقط انجام داده بود، حلقه foreach ($ آرایه دلار آیتم) و سپس آیتم مقدار 1 خواهد بود 477 00:43:49,560 --> 00:43:54,190 اولین بار از طریق حلقه. این خواهد شد 1 تا 2 افزایش و پس از آن ما در حال انجام است. 478 00:43:54,190 --> 00:43:57,260 بنابراین پس از آن از طریق عبور از حلقه و که در مورد 10 است. 479 00:43:57,260 --> 00:44:01,570 این آیتم افزایش تا 11، و پس از آن است که فقط دور انداخته شده است. 480 00:44:01,570 --> 00:44:06,670 سپس ما print_r (آرایه) و اجازه دهید که این فقط 1، 10. 481 00:44:06,670 --> 00:44:09,070 بنابراین افزایش ما کردیم این بود از دست داده است. 482 00:44:09,070 --> 00:44:13,410 اما حلقه foreach ($ آرایه به عنوان و دلار آیتم) 483 00:44:13,410 --> 00:44:21,910 در حال حاضر این مورد همان قلم دوم از اقلام این حق در اینجا است. این همان چیزی است. 484 00:44:21,910 --> 00:44:26,820 بنابراین $ آیتم + + اصلاح آرایه 0. 485 00:44:29,330 --> 00:44:41,850 در واقع، شما نیز می توانید انجام دهید $ K -> $ آیتم و شما می توانید انجام آرایه [$ K] + +؛ 486 00:44:41,850 --> 00:44:48,650 >> بنابراین یکی دیگر از راه انجام این کار، ما به تغییر آیتم، 487 00:44:48,650 --> 00:44:54,070 اما این آرایه اصلی را تغییر دهید. 488 00:44:54,070 --> 00:44:59,720 اما اگر ما با استفاده از K، است که کلید ما، پس ما می توانیم تنها شاخص به آرایه با استفاده از این کلید 489 00:44:59,720 --> 00:45:01,530 و افزایش آن است. 490 00:45:01,530 --> 00:45:05,410 این امر به طور مستقیم تغییر آرایه اصلی ما است. 491 00:45:05,410 --> 00:45:10,690 شما حتی می توانید که اگر به هر دلیلی به شما می خواستم توانایی تغییر - 492 00:45:10,690 --> 00:45:13,510 در واقع، این کاملا معقول است. 493 00:45:13,510 --> 00:45:16,020 شما نمی خواست به نوشتن آرایه [$ K] + +، 494 00:45:16,020 --> 00:45:27,890 شما فقط می خواستم برای نوشتن آیتم + + اما شما هنوز هم می خواستم بگم اگر ($ K = 'A') 495 00:45:27,890 --> 00:45:30,620 سپس آیتم و افزایش و سپس چاپ آرایه. 496 00:45:30,620 --> 00:45:36,290 بنابراین در حال حاضر آنچه که ما انتظار داریم print_r به انجام؟ چه ارزش باید چاپ شود؟ 497 00:45:36,290 --> 00:45:43,770 [دانشجو] 2 و 10. >> [Bowden] فقط در صورتی که کلید "آیا ما در واقع چاپ آن است. 498 00:45:51,940 --> 00:45:55,670 >> شما احتمالا خیلی به ندرت، اگر نگوییم هرگز، خواهد شد نیاز به تعریف توابع در PHP، 499 00:45:55,670 --> 00:46:03,370 اما شما ممکن است چیزی مشابه آن که در آن یک تابع مانند هر چیز دیگری تابع تعریف می کنید را ببینید. 500 00:46:03,370 --> 00:46:09,900 معمولا شما می گویند (صنایع غذایی، دلار بار) و سپس تعریف از آن را به هر چیز دیگری. 501 00:46:09,900 --> 00:46:17,580 اما اگر من این کار را، پس از آن که بدان معنی است که هر چه می نامد، هر چه، 502 00:46:17,580 --> 00:46:25,110 هر چه می نامد، باز، پس آرگومان اول به تصویب رسید به باز را می توان تغییر داد. 503 00:46:25,110 --> 00:46:38,100 بیایید دلار صنایع غذایی + +؛ 504 00:46:38,100 --> 00:46:48,020 در داخل و در اینجا اجازه دهید باز (آیتم)؛ 505 00:46:48,020 --> 00:46:52,250 در حال حاضر ما در حال فراخوانی یک تابع است. 506 00:46:52,250 --> 00:46:56,780 استدلال این است با ارجاع صورت گرفته است، به این معنی که اگر ما آن را تغییر دهید 507 00:46:56,780 --> 00:47:00,390 ما در حال تغییر چیزی است که در آن به تصویب رسید 508 00:47:00,390 --> 00:47:04,420 و چاپ این ما انتظار داریم - مگر من messed تا نحو - ما 2، 11، 509 00:47:04,420 --> 00:47:06,300 پس از آن در واقع یک واحد اضافه شد. 510 00:47:06,300 --> 00:47:08,790 متوجه مراجع در 2 مکان ما نیاز داریم. 511 00:47:08,790 --> 00:47:13,050 چه می شود اگر من این؟ این به چه معنی؟ 512 00:47:13,050 --> 00:47:15,810 [دانشجو] آن تغییر خواهد کرد. >> آره. 513 00:47:15,810 --> 00:47:18,290 مورد فقط یک کپی از مقدار موجود در آرایه. 514 00:47:18,290 --> 00:47:26,670 بنابراین بند به 2 تغییر دهید، اما آرایه ['A'] هنوز هم می شود 1. 515 00:47:26,670 --> 00:47:32,560 یا چه می شود اگر من این کار را؟ 516 00:47:32,560 --> 00:47:39,260 در حال حاضر مورد به عنوان یک کپی برای باز فرستاده شده است. 517 00:47:39,260 --> 00:47:46,330 بنابراین کپی از استدلال خواهد شد تا 2 واحد اضافه شده است، 518 00:47:46,330 --> 00:47:49,240 اما قلم دوم از اقلام خود را به 2 افزایش مییابد. 519 00:47:49,240 --> 00:47:52,880 و مورد چیزی که همین کار را به عنوان براکت آرایه هر چه است، 520 00:47:52,880 --> 00:47:55,380 به طوری که آرایه یک واحد اضافه شد هرگز. 521 00:47:55,380 --> 00:47:57,960 پس هر دو آن مکان به آن نیاز دارند. 522 00:47:57,960 --> 00:48:03,830 >> PHP است که معمولا در این مورد خیلی هوشمند است. 523 00:48:03,830 --> 00:48:06,570 شما ممکن است فکر می کنم من می خواهم به صورت by reference - 524 00:48:06,570 --> 00:48:09,560 این در واقع یک سوال در مورد یکی از psets. 525 00:48:09,560 --> 00:48:14,480 این یک چیز questions.txt بود که در آن گفت، 526 00:48:14,480 --> 00:48:19,280 چرا ممکن است شما بخواهید این ساختار به مرجع منتقل می کند؟ 527 00:48:19,280 --> 00:48:21,250 پاسخ به این چه بود؟ 528 00:48:21,250 --> 00:48:25,100 [دانشجوی] بنابراین شما لازم نیست که چیزی بزرگ برای کپی. >> آره. 529 00:48:25,100 --> 00:48:32,920 یک ساختار را می توان فردی را خودسرانه بزرگ، و زمانی که شما تصویب ساختار را به عنوان آرگومان 530 00:48:32,920 --> 00:48:36,800 به آن نیاز دارد را کپی کنید که ساختار کل آن عبور کند به تابع، 531 00:48:36,800 --> 00:48:40,410 در حالی که اگر شما فقط ساختار مرجع تصویب 532 00:48:40,410 --> 00:48:46,530 سپس آن را فقط به نیاز به کپی کردن یک آدرس به عنوان آرگومان به تابع 4 بایت است. 533 00:48:48,520 --> 00:48:52,320 PHP یک کمی باهوش تر از آن است. 534 00:48:52,320 --> 00:49:00,650 اگر من به برخی از عملکرد و من به آن منتقل می شود، مجموعه ای از 1،000 چیز، 535 00:49:00,650 --> 00:49:03,990 می کند که به معنی آن را به زودی برای کپی کردن تمام 1،000، از آن چیزهایی است 536 00:49:03,990 --> 00:49:10,450 آن عبور کند به تابع؟ آن را لازم نیست برای انجام این کار بلافاصله. 537 00:49:10,450 --> 00:49:15,940 اگر در داخل این تابع در واقع هرگز تغییر صنایع غذایی، 538 00:49:15,940 --> 00:49:22,660 بنابراین اگر واقعی (دلار صنایع غذایی = 'سلام') بازگشت. 539 00:49:22,660 --> 00:49:26,460 توجه داشته باشید که ما در واقع هرگز اصلاح داخل آرگومان این تابع، 540 00:49:26,460 --> 00:49:30,010 که بدان معنی است که هر آنچه تصویب شد به عنوان نیاز صنایع غذایی هرگز نمی توان کپی 541 00:49:30,010 --> 00:49:32,100 به دلیل آن تغییر نیست. 542 00:49:32,100 --> 00:49:39,240 بنابراین PHP آثار استدلال همیشه توسط مرجع تصویب 543 00:49:39,240 --> 00:49:42,170 در واقع تا زمانی که شما سعی کنید آن را تغییر دهید. 544 00:49:42,170 --> 00:49:51,160 حالا اگر من می گویم دلار صنایع غذایی + +، آن را در حال حاضر یک کپی از صنایع غذایی اصلی و ایجاد تغییر کپی. 545 00:49:51,160 --> 00:49:53,090 این موجب صرفه جویی در برخی از زمان. 546 00:49:53,090 --> 00:49:58,210 اگر شما در حال لمس کردن هرگز این آرایه عظیم، شما در واقع هرگز آن را تغییر دهید، 547 00:49:58,210 --> 00:50:02,360 لازم نیست کپی به، 548 00:50:02,360 --> 00:50:06,640 در حالی که اگر ما فقط این علامت است که بدان معنی است که حتی آن را کپی کنید قرار داده است 549 00:50:06,640 --> 00:50:08,640 حتی اگر شما آن را تغییر دهید. 550 00:50:08,640 --> 00:50:10,680 این رفتار، به نام کپی در نوشتن است. 551 00:50:10,680 --> 00:50:17,380 شما آن را در مکان های دیگر را ببینید، به خصوص اگر شما را به سیستم عامل البته. 552 00:50:17,380 --> 00:50:23,880 کپی بر روی نوشتن یک الگوی بسیار معمول که در آن شما لازم نیست برای ایجاد یک کپی از چیزی است 553 00:50:23,880 --> 00:50:26,650 مگر اینکه آن را در واقع در حال تغییر است. آره. 554 00:50:26,650 --> 00:50:29,520 [دانشجوی] چه می شود اگر شما تا به حال افزایش در داخل آزمون، 555 00:50:29,520 --> 00:50:33,700 بنابراین تنها 1 عنصر خارج از 1،000 نیاز به تغییر دارند؟ 556 00:50:33,700 --> 00:50:38,770 مطمئن نیستم. 557 00:50:38,770 --> 00:50:51,250 من فکر می کنم آن را به کل چیزی را کپی کنید، اما این امکان وجود دارد آن را به اندازه کافی هوشمند است که - 558 00:50:51,250 --> 00:51:00,020 در واقع، آنچه من فکر تصور کنید ما تا به حال یک آرایه است که به نظر می رسد، مثل این: $ array2 = [ 559 00:51:00,020 --> 00:51:11,000 سپس اول 'A' است که مجموعه ای از [1 2 3 4]، و شاخص 'B' یک آرایه از هر چیز دیگری است. 560 00:51:11,000 --> 00:51:15,380 من نیاز به کاما بین همه کسانی. تصور کاما از هم وجود دارد. 561 00:51:15,380 --> 00:51:21,210 سپس 'C' 3 ارزش است. 562 00:51:24,210 --> 00:51:26,290 باشه. 563 00:51:26,290 --> 00:51:33,440 حالا می گویند که ما باز (array2 دلار) است؛ 564 00:51:33,440 --> 00:51:36,540 جایی که باز این کار را با مرجع را ندارد. 565 00:51:43,510 --> 00:51:47,370 بنابراین دلار صنایع غذایی ['ج'] + +؛ 566 00:51:47,370 --> 00:51:52,340 این یک مثال از آن جایی که ما در حال عبور از array2 به عنوان یک استدلال است 567 00:51:52,340 --> 00:51:57,010 و سپس آن را اصلاح یک شاخص خاص از آرایه با افزایش آن. 568 00:51:57,010 --> 00:52:01,090 من صادقانه هیچ ایده چه را که PHP به انجام. 569 00:52:01,090 --> 00:52:07,200 آن را به راحتی می توانید یک کپی از کل چیزی، اما اگر آن را هوشمند، 570 00:52:07,200 --> 00:52:15,030 یک کپی از این کلید جایی که این ارزش های متمایز خود را داشته باشند 571 00:52:15,030 --> 00:52:20,620 اما هنوز هم می تواند به همان آرایه 1،2،3،4 572 00:52:20,620 --> 00:52:22,320 و این هنوز هم می تواند به آرایه. 573 00:52:22,320 --> 00:52:24,170 من اپل آن. 574 00:52:28,900 --> 00:52:45,950 ما در این آرایه که در آن نقاط این مرد را به 3 منتقل می شود، این مرد [1،2،3،4] 575 00:52:45,950 --> 00:52:51,350 امتیاز به این مرد [34] 576 00:52:51,350 --> 00:52:58,590 اکنون که ما در حال عبور به باز، ما در حال اصلاح این است. 577 00:52:58,590 --> 00:53:03,550 اگر PHP هوشمند است، آن را فقط می توانید انجام دهید - 578 00:53:11,850 --> 00:53:18,230 ما هنوز هم تا به حال برای کپی کردن برخی از حافظه است، اما اگر این subarrays بزرگ تو در تو وجود دارد 579 00:53:18,230 --> 00:53:21,560 ما لازم نیست که برای کپی کردن کسانی که. 580 00:53:21,560 --> 00:53:27,530 من نمی دانم اگر این چیزی است که آن را نشانی از، اما من آن را انجام می دهند که می توانید تصور کنید. 581 00:53:29,050 --> 00:53:36,690 این هم یک مزیت بسیار بزرگ بیش از C PHP. 582 00:53:36,690 --> 00:53:40,320 >> PHP باعث می شود زندگی بسیار آسان تر برای بسیاری از چیزها، 583 00:53:40,320 --> 00:53:45,060 اما شما نوع مطلقا هیچ ایده چگونه آن را به خوبی انجام خواهد شد 584 00:53:45,060 --> 00:53:52,530 چرا که من هیچ ایده ای در زیر هود زمانی که ساخت این نسخه از همه چیز، 585 00:53:52,530 --> 00:53:55,170 آه، این است که برای رفتن به یک نسخه ثابت زمانی، 586 00:53:55,170 --> 00:54:01,140 آن را فقط برای تغییر 1 اشاره گر است، رفتن به یک نسخه خطی مسخره دشوار است؟ 587 00:54:01,140 --> 00:54:03,000 چه می شود اگر آن را می تواند فضا را پیدا کند؟ 588 00:54:03,000 --> 00:54:06,760 آیا آن را پس از جمع آوری زباله به اجرا فضای برخی بیشتر برای به دست آوردن نیاز دارند؟ 589 00:54:06,760 --> 00:54:11,210 و جمع آوری زباله می تواند خودسرانه طولانی. 590 00:54:11,210 --> 00:54:13,600 در C شما لازم نیست که به نگرانی در مورد این چیزها. 591 00:54:13,600 --> 00:54:19,780 هر خط شما ارسال می تواند دلیل بسیار زیادی در مورد چگونگی آن را به انجام است. 592 00:54:26,800 --> 00:54:29,150 >> اجازه دهید نگاهی به این. 593 00:54:35,400 --> 00:54:37,520 چه خوب است که شما لازم نیست که برای مقابله با توابع هش، 594 00:54:37,520 --> 00:54:39,010 مرتبط با لیست ها، یا هر چیزی شبیه به آن است؟ 595 00:54:39,010 --> 00:54:41,980 از آنجا که کار با جداول هش بسیار آسان در حال حاضر، در اینجا یک پازل سرگرم کننده است به کار بر روی. 596 00:54:41,980 --> 00:54:45,920 باز کردن یک فایل به نام unique.php و در آن نوشتن یک برنامه پی اچ پی 597 00:54:45,920 --> 00:54:48,330 (همچنین به عنوان "اسکریپت" شناخته می شود). 598 00:54:48,330 --> 00:54:55,700 ما معمولا به آنها را اسکریپتهای اگر آنها همه چیز کوتاه است که شما را در خط فرمان اجرا کنید. 599 00:54:55,700 --> 00:55:02,950 در واقع، هر زبان که شما کامپایل نیست، اما شما در حال رفتن به اداره اجرایی 600 00:55:02,950 --> 00:55:05,920 در خط فرمان، شما می توانید که فیلمنامه اجرایی تماس بگیرید. 601 00:55:05,920 --> 00:55:08,510 من فقط به عنوان به خوبی می تواند نوشتن یک برنامه C که این، 602 00:55:08,510 --> 00:55:12,300 اما من می توانم این اسکریپت از آنجایی که من برای اولین بار آن را تدوین و پس از آن اجرا دودویی. 603 00:55:12,300 --> 00:55:15,480 اما این برنامه PHP ما قصد داریم یک اسکریپت تماس بگیرید. 604 00:55:15,480 --> 00:55:23,830 یا اگر ما آن را در پایتون یا پرل یا Node.js و یا هر یک از آن چیزهایی نوشت، 605 00:55:23,830 --> 00:55:26,500 ما می خواهم همه آنها را اسکریپتهای چون شما آنها را در خط فرمان اجرا کنید 606 00:55:26,500 --> 00:55:30,040 اما ما آنها را کامپایل کند. 607 00:55:30,860 --> 00:55:33,400 ما می توانیم این را خیلی سریع انجام دهید. 608 00:55:36,960 --> 00:55:41,480 ما می رویم به استفاده ی argv. بیایید فقط از طریق این ضربه. 609 00:55:41,480 --> 00:55:45,730 آن منحصر به فرد، نوشتن یک برنامه است. 610 00:55:45,730 --> 00:55:49,400 شما می توانید فرض کنید که ورودی یک کلمه در هر خط را داشته باشد. 611 00:55:49,400 --> 00:55:52,020 در واقع، argv را خیلی پیش پا افتاده به استفاده از. 612 00:56:03,730 --> 00:56:06,720 unique.php. 613 00:56:08,550 --> 00:56:13,750 اولین چیزی که برای اولین بار، ما می خواهیم اگر ما به تصویب رسیده است 1 خط فرمان استدلال. 614 00:56:13,750 --> 00:56:20,900 همانطور که شما انتظار argc و argv را در C، ما هنوز هم کسانی که در PHP. 615 00:56:20,900 --> 00:56:33,900 بنابراین اگر ($ argc! == 2) پس از آن من نمی خواهد مقابله با چاپ یک پیام و یا هر چیز. 616 00:56:33,900 --> 00:56:37,340 من فقط، خروج کد خطا، از مجموع 1. 617 00:56:37,340 --> 00:56:41,340 من نیز می تواند 1 بازگشت. 618 00:56:41,340 --> 00:56:53,180 به ندرت در PHP شما در این حالت که در آن ما در آن هستیم - 619 00:56:53,180 --> 00:56:57,820 معمولا شما در یک تابع نامیده می شود توسط یک تابع نامیده می شود توسط یک تابع نامیده می شود توسط یک تابع هستیم. 620 00:56:57,820 --> 00:57:02,070 و اگر چیزی را اشتباه می رود و شما فقط می خواهید به خروج همه چیز را به طور کامل، 621 00:57:02,070 --> 00:57:05,680 خروج فقط به پایان می رسد این برنامه است. 622 00:57:05,680 --> 00:57:08,160 این نیز در C. وجود دارد 623 00:57:08,160 --> 00:57:10,700 اگر شما در یک تابع در یک تابع در یک تابع در تابع 624 00:57:10,700 --> 00:57:17,540 و شما می خواهید برای کشتن برنامه، شما می توانید خروجی و تماس آن خارج خواهد شد. 625 00:57:17,540 --> 00:57:23,120 اما در PHP آن را حتی بیشتر نادر است که ما را در این سطح بالا هستند. 626 00:57:23,120 --> 00:57:26,090 معمولا ما در داخل برخی از مرتب کردن بر اساس عملکرد هستید، بنابراین ما تماس خروج 627 00:57:26,090 --> 00:57:29,650 به طوری که ما مجبور به بازگشت به تا 1 چیزی که پس از آن متوجه خطا وجود دارد 628 00:57:29,650 --> 00:57:32,270 به طوری که می گرداند تا در صورتی که به رسمیت می شناسد خطا وجود دارد. 629 00:57:32,270 --> 00:57:35,270 ما نمی خواهیم برای مقابله با آن، به طوری که خروج (1)؛ 630 00:57:35,270 --> 00:57:38,240 بازگشت (1)، در این مورد می تواند معادل آن. 631 00:57:38,240 --> 00:57:44,000 >> پس آنچه که ما می خواهیم برای باز کردن ما به fopen می خواهم. 632 00:57:44,000 --> 00:57:46,760 استدلال در حال رفتن به نگاه بسیار مشابه است. 633 00:57:46,760 --> 00:57:51,600 ما به fopen (ی argv دلار [1]، و ما می خواهیم آن را برای خواندن باز کردن. می خواهم 634 00:57:51,600 --> 00:57:55,720 این یک منبع است که ما قصد داریم به تماس F را بر می گرداند. 635 00:57:55,720 --> 00:58:02,180 این به نظر می رسد بسیار شبیه به C آن به جز ما لازم نیست که فایل برای گفتن دارد. 636 00:58:02,180 --> 00:58:06,170 در عوض ما فقط می گویند $ F. باشه. 637 00:58:06,170 --> 00:58:17,190 در واقع، من فکر می کنم این را حتی اشاره به عنوان تابع PHP به نام فایل را به ما می دهد. فایل PHP. 638 00:58:17,190 --> 00:58:23,990 این است که رفتن به خواندن کل یک فایل را به یک آرایه. 639 00:58:23,990 --> 00:58:29,770 شما حتی نمی نیاز به fopen آن. رفتن به انجام این کار برای شما. 640 00:58:37,450 --> 00:58:43,700 بنابراین دلار خطوط = فایل (ی argv [1])؛ 641 00:58:43,700 --> 00:58:49,680 در حال حاضر تمام خطوط از فایل در خط هستند. در حال حاضر ما می خواهیم برای مرتب کردن خطوط. 642 00:58:49,680 --> 00:58:52,180 چگونه می توانید خطوط مرتب سازی بر اساس؟ 643 00:58:52,180 --> 00:58:54,920 مرتب سازی بر اساس خطوط ما. 644 00:58:54,920 --> 00:58:58,080 و در حال حاضر ما می توانیم آنها را یا هر چیز دیگری را چاپ کنید. 645 00:58:58,080 --> 00:59:05,580 شاید ساده ترین راه حلقه foreach ($ خطوط به عنوان خط) اکو $ خط است؛ 646 00:59:05,580 --> 00:59:10,960 [دانشجو] آیا ما و نه حتی خطوط با ارجاع چیزی به مرتب کردن بر اساس عبور؟ 647 00:59:10,960 --> 00:59:28,850 این جایی است که مرتب سازی بر اساس عنوان مرتب سازی بر اساس تابع (دلار آرایه) تعریف شده است. 648 00:59:28,850 --> 00:59:32,650 هنگامی که شما با تابع شما آن را به مرجع تصویب نیست. 649 00:59:32,650 --> 00:59:36,900 این تابع که آن را در تعریف خود از مصرف آن را به عنوان مرجع است. 650 00:59:36,900 --> 00:59:40,900 این است که در واقع دقیقا همان چیزی را اشتباه رفت 651 00:59:40,900 --> 00:59:46,220 هنگامی که ما همه چیز را به سرورهای ما هنگامی که ما از 5.3 به 5.4 رفت. 652 00:59:46,220 --> 00:59:53,800 تا 5.4، این کاملا معقول است. 653 00:59:53,800 --> 00:59:58,740 تابع انتظار نیست که آن را به عنوان مرجع، اما شما می توانید آن را به عنوان مرجع تصویب 654 00:59:58,740 --> 01:00:02,860 بنابراین اگر تابع اتفاق می افتد به آن را تغییر دهید، آن را هنوز تغییر یافتهاست. 655 01:00:02,860 --> 01:00:05,850 5.4، شما قرار نیست برای انجام این کار است. 656 01:00:05,850 --> 01:00:11,740 بنابراین در حال حاضر تنها راه عبور توسط مرجع است اگر تابع به صراحت آن را ندارد. 657 01:00:11,740 --> 01:00:19,840 اگر شما نمی خواهید آن را به آن را تغییر دهید، و سپس شما نیاز به انجام کپی = $ خطوط و کپی عبور. 658 01:00:19,840 --> 01:00:24,820 بنابراین در حال حاضر خط حفظ خواهد شد و کپی خواهد شد. 659 01:00:27,670 --> 01:00:31,460 php.unique.php. من ممکن است خراب چیزی. 660 01:00:31,460 --> 01:00:33,190 غیر منتظره 'مرتب سازی بر اساس. 661 01:00:38,320 --> 01:00:43,850 رفتن وجود دارد به چیزی است که این کار را برای ما است. 662 01:00:43,850 --> 01:00:45,820 حتی از این هم وجود ندارد. 663 01:00:45,820 --> 01:00:52,140 توجه داشته باشید که زمانی که شما خواندن کتابچه راهنمای کاربر است که انتظار می رود اولین آرگومان به یک آرایه 664 01:00:52,140 --> 01:00:56,490 و آن را با ارجاع گرفته شده است. 665 01:00:58,160 --> 01:01:03,540 چرا این شکایت به من؟ از آنجا که من تابع این نوع هنوز هم در اینجا است که من نمی خواهم. 666 01:01:03,540 --> 01:01:09,210 خوب، php.unique.php. من عبور از آن بحث نمی کند چرا که من می توانم یک فایل را ندارد. 667 01:01:09,210 --> 01:01:13,560 این php.unique.php در test.php. 668 01:01:13,560 --> 01:01:19,080 در اینجا test.php همه در یک نظم خوب طبقه بندی شده اند چاپ شده است. 669 01:01:19,080 --> 01:01:24,600 توجه داشته باشید که طبقه بندی شده اند سفارش شده است از نوع عجیب و غریب برای یک فایل کد 670 01:01:24,600 --> 01:01:27,460 چرا که همه از یک خط خالی ما در حال رفتن به اول 671 01:01:27,460 --> 01:01:30,190 پس از آن در حال رفتن به می آید همه از سطح دندانه ما 1 672 01:01:30,190 --> 01:01:33,360 پس از آن همه از تورفتگی بدون ما آمده است. 673 01:01:33,360 --> 01:01:38,620 آره. >> [دانشجو] بنابراین برای کد منبع آن مرجع به تصویب رسید؟ 674 01:01:38,620 --> 01:01:42,240 این است که به طور کلی با مقدار منتقل می شود؟ 675 01:01:42,240 --> 01:01:50,240 [Bowden] هنگامی که شما به یک تابع، هرگز آن را تعیین اینکه آیا آن توسط مرجع تصویب شد. 676 01:01:50,240 --> 01:01:53,960 این تعریف تابع است که تعیین می کند که آیا آن توسط مرجع تصویب شد. 677 01:01:53,960 --> 01:01:59,450 و به دنبال در تعریف تابع مرتب کردن بر اساس و یا فقط به دنبال این، 678 01:01:59,450 --> 01:02:02,820 آرگومان با ارجاع آن طول می کشد. 679 01:02:02,820 --> 01:02:07,160 بنابراین صرف نظر از این که آیا شما می خواهید آن را به آن مرجع را، آن را نشانی از آن را با مرجع. 680 01:02:07,160 --> 01:02:10,200 این تغییر آرایه در محل. 681 01:02:10,200 --> 01:02:17,400 این فقط مجاز نمی باشد. شما مجاز به انجام این کار شده است. >> [دانشجو] اوه، درست است. 682 01:02:17,400 --> 01:02:22,410 [Bowden] این، مرتب در حال رفتن به خط توسط مرجع و آن را تغییر دهد. 683 01:02:22,410 --> 01:02:26,850 و دوباره، اگر شما می خواهید آن را به انجام این کار، شما می توانید یک کپی از مرتب کردن است. 684 01:02:26,850 --> 01:02:35,850 حتی در این مورد، کپی است که در واقع یک کپی از خطوط است. 685 01:02:35,850 --> 01:02:40,620 آن را فقط به همان چیزی که اشاره تا زمانی که برای اولین بار می شود اصلاح، 686 01:02:40,620 --> 01:02:44,430 که در آن برای اولین بار در تابع مرتب سازی بر اساس تغییر، 687 01:02:44,430 --> 01:02:50,940 که در آن، به دلیل آن را کپی در نوشتن، در حال حاضر یک کپی از کپی می شود ساخته شده است. 688 01:02:57,500 --> 01:03:04,250 شما همچنین می توانید این کار را انجام دهند. که جای دیگری شما می توانید از علامت "را ببینید. 689 01:03:04,250 --> 01:03:07,190 شما آن را در حلقه حلقه foreach، آن را به شما را به در اظهارات تابع، 690 01:03:07,190 --> 01:03:10,040 و شما آن را زمانی که فقط اختصاص متغیر است. 691 01:03:10,040 --> 01:03:12,350 در حال حاضر ما هیچ چیز با انجام این کار انجام 692 01:03:12,350 --> 01:03:15,600 به دلیل کپی و خطوط به معنای واقعی کلمه همان چیزی است. 693 01:03:15,600 --> 01:03:19,940 شما می توانید خطوط و استفاده از کپی قابل معاوضه. 694 01:03:19,940 --> 01:03:25,430 شما می توانید تنظیم نشده باشد (کپی) را انجام دهد؛ و این بدان خط ثابت نشده، 695 01:03:25,430 --> 01:03:29,120 شما فقط مرجع خود را به همان چیزی که از دست بدهند. 696 01:03:29,120 --> 01:03:33,440 بنابراین همانطور که از این نقطه، در حال حاضر خطوط تنها راهی است که شما می توانید خطوط دسترسی است. 697 01:03:36,450 --> 01:03:38,770 >> پرسش و پاسخ؟ 698 01:03:41,000 --> 01:03:42,460 آره. 699 01:03:42,460 --> 01:03:45,880 [دانشجو] به طور کامل خاموش موضوع، اما شما لازم نیست که برای بستن PHP - >> شما نمی. 700 01:03:45,880 --> 01:03:47,730 باشه. 701 01:03:47,730 --> 01:03:53,790 [Bowden] من می خواهم تا آنجا که می گویند این عمل بد را به آنها نزدیک است. 702 01:03:53,790 --> 01:03:57,580 که احتمالا اغراق آمیز، به ویژه در یک اسکریپت، 703 01:03:57,580 --> 01:04:03,740 اما اجازه دهید ببینیم که چه اتفاقی می افتد اگر من این کار را. 704 01:04:03,740 --> 01:04:08,890 که آیا هیچ چیز نیست. چه می شود اگر من می خواستم - [آه] 705 01:04:13,870 --> 01:04:16,960 من نیاز به پاس کردن یک آرگومان. 706 01:04:19,000 --> 01:04:22,050 شلیک کنید. من آن را به نام اشتباه. 707 01:04:24,340 --> 01:04:28,310 بنابراین php.unique.php با استدلال. 708 01:04:28,310 --> 01:04:30,980 در حال حاضر من حتی نمی نیاز به این. 709 01:04:34,520 --> 01:04:37,740 من آن را یک استدلال معتبر است منتقل می کند. 710 01:04:37,740 --> 01:04:42,050 این چاپ هر آنچه در آن چاپ شده است. 711 01:04:45,260 --> 01:04:50,080 من چاپ کپی و کپی وجود ندارد. بنابراین خطوط. 712 01:04:53,650 --> 01:04:58,270 همه چیز، آن را چاپ و پس از آن متوجه این همه آشغال را در اینجا، 713 01:04:58,270 --> 01:05:06,690 چرا که در هر چیزی PHP است که در خارج از تگ های PHP 714 01:05:06,690 --> 01:05:09,520 فقط رفتن است که باید چاپ شود به معنای واقعی کلمه. 715 01:05:09,520 --> 01:05:18,050 به همین دلیل HTML، خیلی خوب است که من می توانم DIV، اه، اه، اه، کلاس یا هر چیز دیگری را انجام دهید، 716 01:05:18,050 --> 01:05:25,140 ، اه، اه، اه، و پس از آن با انجام برخی از کد PHP و پس از آن انجام DIV پایان. 717 01:05:25,140 --> 01:05:36,460 و در حال حاضر چاپ این DIV خوب من تا بالا، همه چیز که PHP چاپی، DIV در پایین است. 718 01:05:36,460 --> 01:05:43,510 فاجعه زمانی که چیزی شبیه به این اتفاق می افتد، که بسیار رایج است، 719 01:05:43,510 --> 01:05:47,930 فقط یک ولگرد خط جدید را در انتهای فایل. 720 01:05:47,930 --> 01:05:50,940 شما نمی خواهد فکر می کنم از آن خواهد بود که از یک معامله بزرگ 721 01:05:50,940 --> 01:05:58,660 تا زمانی که شما در نظر این واقعیت است که با مرورگرهای - 722 01:05:58,660 --> 01:06:03,880 >> چگونه تغییرمسیر کار و یا اساسا هر کار هدر، 723 01:06:03,880 --> 01:06:07,980 هنگامی که شما ارتباط خود را به وب سایت آن را می فرستد و به این همه هدر و همه چیز 724 01:06:07,980 --> 01:06:12,020 مثل پاسخ 200 یا پاسخ هدایت یا هر چیز دیگری، 725 01:06:12,020 --> 01:06:18,230 هدر فقط معتبر هستند تا زمانی که اولین بایت از داده ها فرستاده شده است. 726 01:06:18,230 --> 01:06:23,140 شما می توانید هزاران بار، هدایت، اما به زودی به عنوان اولین بایت از داده ها فرستاده شده است 727 01:06:23,140 --> 01:06:26,120 شما قرار نیست دوباره به تغییر مسیر. 728 01:06:26,120 --> 01:06:31,860 >> اگر شما یک خط جدید ولگرد در پایین یک فایل 729 01:06:31,860 --> 01:06:37,260 و اجازه دهید بگویم که شما با استفاده از این تابع و پس از آن شما می خواهید برای - 730 01:06:41,580 --> 01:06:52,870 بیایید می گویند آن را به یک فایل دیگر که فایل index.php و شما چیزی require_once - 731 01:06:52,870 --> 01:06:56,920 من نمی توانم فکر می کنم از یک مثال خوبی از آن است. 732 01:06:56,920 --> 01:07:04,740 این مسئله زمانی اتفاق می افتد که این خط در پایین تکرار می شود. 733 01:07:04,740 --> 01:07:08,660 شما هیچ چیز تکرار شده اند در عین حال نمی خواهیم. 734 01:07:10,820 --> 01:07:15,700 حتی اگر شما بر روی چیزی تکرار قصد ندارم، چیزی تکرار بود 735 01:07:15,700 --> 01:07:17,990 و بنابراین در حال حاضر شما در حال قرار نیست برای ارسال هدر هر 736 01:07:17,990 --> 01:07:20,030 و شما در حال رفتن به شکایات. 737 01:07:22,170 --> 01:07:24,420 شما فقط نیاز به آن برچسب پایانی ندارد. 738 01:07:24,420 --> 01:07:27,420 اگر شما در انجام کاری با HTML طرح - 739 01:07:27,420 --> 01:07:30,490 و آن را کاملا معقول و منطقی برای انجام این کار را در اینجا دیو هر چه 740 01:07:30,490 --> 01:07:39,450 و سپس در این مرحله شما می توانید و یا شما می توانید آنها را شامل نمی شود. 741 01:07:39,450 --> 01:07:41,590 این کار واقعا مهم نیست. 742 01:07:41,590 --> 01:07:45,450 اما در اسکریپت های PHP به ندرت به آن نزدیک است. 743 01:07:45,450 --> 01:07:50,400 وقتی که همه چیز PHP، مطلقا همه چیز، 744 01:07:50,400 --> 01:07:55,460 شما واقعا نیاز نیست به آن نزدیک است / شما باید آن را ببندید. 745 01:08:02,030 --> 01:08:05,720 >> برخورد با رشته است که بسیار بهتر از در C. 746 01:08:05,720 --> 01:08:09,470 در PHP شما می توانید با نقل قول یک یا دو رشته را مشخص کنید. 747 01:08:09,470 --> 01:08:12,820 شما می توانید با نقل قول تکی "فرار" توالی استفاده نمی کنند. 748 01:08:12,820 --> 01:08:17,640 به طور مداوم، فرار، اه، اه، اه. 749 01:08:19,920 --> 01:08:24,010 printf است بسیار نادر در PHP. 750 01:08:24,010 --> 01:08:32,290 من حدس می زنم من printf استفاده کنم اگر من می خواستم برای انجام یک نوع از چیزی - در pset 5 شما با استفاده از sprintf یا هر چیز دیگری. 751 01:08:32,290 --> 01:08:36,060 اما شما می خواهید به انجام 001.jpg 002.jpg. 752 01:08:36,060 --> 01:08:40,300 بنابراین برای این نوع از چیزی که من در واقع می خواهید به فرمت متن من printf استفاده کنید. 753 01:08:40,300 --> 01:08:44,689 اما در غیر این صورت من فقط می الحاق رشته ها استفاده کنید. 754 01:08:44,689 --> 01:08:47,000 من واقعا هرگز استفاده از printf است. 755 01:08:49,229 --> 01:09:00,170 ما فقط افتراق جزئیات بین نقل قول و نقل قول تنها دو. 756 01:09:00,170 --> 01:09:07,490 بزرگترین تفاوت این است که نقل قول تکی، چاپ شود به معنای واقعی کلمه است. 757 01:09:07,490 --> 01:09:15,390 هیچ نوع داده کاراکتر در PHP وجود دارد، بر خلاف C، بنابراین این معادل این است. 758 01:09:15,390 --> 01:09:17,970 آنها هر دو رشته. 759 01:09:17,970 --> 01:09:29,180 چیز خوب در مورد رشته نقل قول تنها این است که من می توانم بگویم "سلام جهان!" ، اه، اه، اه، 760 01:09:29,180 --> 01:09:33,340 $ $ wooo. 761 01:09:33,340 --> 01:09:38,260 چه اتفاقی می افتد زمانی که من نسخه قابل چاپ این است که آن را به معنای واقعی کلمه چاپ می باشد. 762 01:09:38,260 --> 01:09:40,680 بیایید از شر همه از مسائل ما است. 763 01:09:40,680 --> 01:09:44,700 بنابراین $ str1 اکو؛ 764 01:09:48,569 --> 01:09:56,570 آن را به معنای واقعی کلمه چاپ شده است همه از آن چیزهایی است: علائم دلار، 765 01:09:56,570 --> 01:09:58,770 N اسلش، جایی که شما فکر می کنم خواهد بود خطوط - 766 01:09:58,770 --> 01:10:01,500 تمام کسانی که همه چیز آن را چاپ به معنای واقعی کلمه است. 767 01:10:01,500 --> 01:10:05,650 تنها چیزی که شما نیاز به فرار از نقل قول تکی 768 01:10:05,650 --> 01:10:09,470 زیرا در غیر این صورت آن را فکر می کنم آن را به بستن تک به نقل از. 769 01:10:09,470 --> 01:10:15,050 نقل قول دوگانه، کاملا متفاوت است. 770 01:10:20,300 --> 01:10:25,870 ما در حال حاضر به نحو برجسته با ما cluing به آن چه که در مورد رفتن سخت در اشتباه است. 771 01:10:25,870 --> 01:10:36,190 php.unique. تعریفنشده متغیر: wooo به دلیل این است که به عنوان یک متغیر به نام wooo تفسیر شده است. 772 01:10:36,190 --> 01:10:42,400 نقل قول دوتایی اجازه متغیر قرار دادن شما را به - 773 01:10:42,400 --> 01:10:52,730 بیایید می گویند متغیر $ name = "راب"؛ 774 01:10:52,730 --> 01:10:58,020 بنابراین اکو "سلام، نام من است نام و نام خانوادگی!"؛ 775 01:10:58,020 --> 01:11:09,260 این به رسمیت می شناسد این را به عنوان یک متغیر است. 776 01:11:09,260 --> 01:11:21,210 وقتی که من اجرای آن - و من یک خط جدید وارد - سلام، نام من راب است! و سلام جهان! 777 01:11:21,210 --> 01:11:24,910 دلیل این است که من چاپ wooo بالا حذف هرگز. 778 01:11:24,910 --> 01:11:30,020 1 قدم بیشتر شما می توانید انجام دهید وجود دارد. 779 01:11:30,020 --> 01:11:39,250 $ آرایه = [1، 2، 3]؛ 780 01:11:39,250 --> 01:11:43,270 چه می شود اگر من می خواهم به چاپ شاخص برای اولین بار از آرایه؟ 781 01:11:43,270 --> 01:11:45,150 شما $ آرایه [0]. 782 01:11:45,150 --> 01:11:49,280 نحو برجسته سرنخ است. چه کاری انجام دهید؟ 783 01:11:52,320 --> 01:11:54,510 php.unique. 784 01:11:54,510 --> 01:11:59,860 سلام، اسم من 1 است! که آن چیزی نیست که من می خواستم. 785 01:11:59,860 --> 01:12:05,050 نحو برجسته به من دروغ گفته است. 786 01:12:05,050 --> 01:12:13,020 بیایید "-> 1، 'B' -> 2. 787 01:12:18,450 --> 01:12:21,440 این که چگونه من را مجبور به نوشتن آن است. 788 01:12:26,350 --> 01:12:32,160 نقل قول غیر مترقبه T_ENCAPSED، اه، اه، اه، اه، اه،. 789 01:12:32,160 --> 01:12:41,780 ایده این است که آن را به عنوان بخشی از آرایه شناخت. 790 01:12:41,780 --> 01:12:46,620 این را به عنوان آرایه نمایه شده توسط نامه به رسمیت شناختن نیست. 791 01:12:46,620 --> 01:12:49,870 شما می خواهید برای انجام این کار احاطه شده توسط آکولاد، 792 01:12:49,870 --> 01:12:54,730 و در حال حاضر آنچه در این زانوبند فرفری خواهد شد درون یابی، 793 01:12:54,730 --> 01:13:00,340 که در آن کلمه جادویی برای قرار دادن این متغیرها را به مکان های مناسب استفاده کنید. 794 01:13:00,340 --> 01:13:04,280 در حال حاضر انجام این کار، php.unique، و سلام، نام من است 1! همانطور که انتظار می رفت 795 01:13:04,280 --> 01:13:07,720 یا سلام، نام من راب است! 796 01:13:14,110 --> 01:13:23,130 یکی از چیزهایی است که نوع خوب در مورد نقل قول تکی است که - 797 01:13:23,130 --> 01:13:28,480 برخی از هزینه به interpolating وجود دارد. 798 01:13:30,520 --> 01:13:35,100 اگر شما استفاده از نقل قول ها دو مترجم برای رفتن به این رشته، 799 01:13:35,100 --> 01:13:41,500 مطمئن شوید که "آه، در اینجا یک متغیر است. حالا من نیاز به آن متغیر را دریافت کنید و آن را در اینجا وارد است." 800 01:13:41,500 --> 01:13:48,930 حتی اگر شما هیچ کدام از متغیرهای استفاده نمی کند، 801 01:13:48,930 --> 01:13:52,220 هیچ چیز در داخل از این نقل قول ها دو باید به درون یابی، 802 01:13:52,220 --> 01:13:56,800 اما آن را هنوز هم آهسته تر می شود، زیرا به آن نیاز دارد به بیش از کوتیشن 803 01:13:56,800 --> 01:14:00,130 به دنبال چیزهایی است که باید درون یابی. 804 01:14:00,130 --> 01:14:05,360 بنابراین تنها نقل قول می تواند یک کمی سریعتر اگر چیزی نیاز به درون یابی، 805 01:14:05,360 --> 01:14:15,650 و من تمایل به نقل قول تنها برای استفاده حتی "سلام، نام من است. آرایه ی $ [''] به هر حال. 806 01:14:15,650 --> 01:14:20,430 که معادل آنچه که ما تا به حال قبل از رفتن به. 807 01:14:24,840 --> 01:14:28,440 اما این موضوع از اولویت. 808 01:14:28,440 --> 01:14:34,750 اگر شما با استفاده از PHP، شما احتمالا در مورد تفاوت سرعت برام مهم نیست. 809 01:14:34,750 --> 01:14:39,480 کافی است به آنها استدلال برای شروع وجود ندارد. 810 01:14:39,480 --> 01:14:43,030 >> هر گونه سوالات نهایی؟ 811 01:14:47,430 --> 01:14:51,710 >> ما در واقع از طریق همه آن را حتی نمی کنید، اما این مسائل خسته کننده بود. 812 01:14:51,710 --> 01:14:59,080 آخرین چیزی که نوع خوب در PHP این است که زمانی که شما در حال برخورد با HTML، 813 01:14:59,080 --> 01:15:06,450 شما این بیت، به طوری که نحو میانبر خوب برای چاپ یک متغیر استفاده کنید. 814 01:15:32,400 --> 01:15:36,730 بدون قرار دادن PHP در اینجا، این است که به نام برچسب ها کوتاه است. 815 01:15:36,730 --> 01:15:44,330 رسما به عنوان از PHP 5.4، این است که منسوخ شده است. 816 01:15:44,330 --> 01:15:48,640 به شما توصیه می شود برای قرار دادن پی اچ پی. 817 01:15:48,640 --> 01:15:55,770 این است که هنوز پشتیبانی، برچسب ها آنقدر کوتاه با <؟ = هنوز هم کاملا خوب است. 818 01:15:55,770 --> 01:16:02,480 آن را به طور پیش فرض پشتیبانی می باشد، به طوری که شما می توانید این کار را به عنوان شما می خواهید استفاده کنید، و آنها بسیار راحت است. 819 01:16:02,480 --> 01:16:05,700 >> هر گونه سؤال؟ 820 01:16:07,780 --> 01:16:09,270 بسیار خوب. 821 01:16:10,840 --> 01:16:13,800 >> اقامت درجه یک، سن دیگو. 822 01:16:13,800 --> 01:16:16,070 [chuckles] 823 01:16:18,620 --> 01:16:22,660 خداحافظ. [می خندد] 824 01:16:24,350 --> 01:16:28,470 [تشویق حضار] [می خندد] 825 01:22:46,460 --> 01:22:49,460 >> [CS50.TV]