1 00:00:00,000 --> 00:00:05,340 2 00:00:05,340 --> 00:00:07,370 >> DOUG لويد: لذلك قمنا فعلت الكثير من العمل في 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 واللثغة. 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 مستوحى بشكل كبير من قبل لغة دعا اللثغة، التي هي لغة قديمة. 30 00:01:32,070 --> 00:01:34,220 >> لذلك السبب نعلمه PHP في CS50 هو أنه، 31 00:01:34,220 --> 00:01:37,730 من خلال معرفة C كما في الأساس كما كنت تفعل في هذه المرحلة، 32 00:01:37,730 --> 00:01:41,280 التقاط PHP، والتي تعطيك القدرة على فعل الأشياء مستوى أعلى من ذلك بكثير 33 00:01:41,280 --> 00:01:44,710 من C لا، ليس أن الكثير من العقبة، 34 00:01:44,710 --> 00:01:48,230 لأن لديك بالفعل الفكرة الأساسية لبناء الجملة. 35 00:01:48,230 --> 00:01:50,590 لقد C حول ما يقرب من 45 سنوات في هذه المرحلة. 36 00:01:50,590 --> 00:01:52,780 لقد PHP حول لنحو 20 عاما. 37 00:01:52,780 --> 00:01:57,080 وفي ذلك 25 عاما بين والمبرمجين 38 00:01:57,080 --> 00:02:01,540 قرر أن لو كانوا كثيرا بدلا ديهم قدرات عالية المستوى، 39 00:02:01,540 --> 00:02:04,970 وأخطاء وصراعات من 20 عاما بين 40 00:02:04,970 --> 00:02:08,210 أدى إلى PHP وغيرها من اللغات الحديثة. 41 00:02:08,210 --> 00:02:11,039 >> PHP في خيار كبير من لغة البرمجيات 42 00:02:11,039 --> 00:02:14,042 أن allow-- ل برنامج هكذا- يضرب أين أنت 43 00:02:14,042 --> 00:02:16,250 تحتاج إلى فعل الأشياء التي في C هي في الواقع معقدة. 44 00:02:16,250 --> 00:02:18,480 هكذا على سبيل المثال، العمل مع السلاسل في C 45 00:02:18,480 --> 00:02:21,709 غير معقدة للغاية، ل كما نعلم، السلاسل في C 46 00:02:21,709 --> 00:02:23,250 هي في الحقيقة مجرد مصفوفات من الحروف. 47 00:02:23,250 --> 00:02:25,230 انها ليست نوع البيانات المضمنة. 48 00:02:25,230 --> 00:02:28,220 أو ربما أكثر جوهرية، شيء نحن لا تغطي حتى في C، 49 00:02:28,220 --> 00:02:30,360 ماذا لو ما عليك القيام به بعض شبكات الكمبيوتر؟ 50 00:02:30,360 --> 00:02:30,860 حسنا؟ 51 00:02:30,860 --> 00:02:34,920 >> C لديه القدرة على القيام بذلك، ولكن من ذلك غامضة وصعبة جدا القيام به في الواقع. 52 00:02:34,920 --> 00:02:37,580 لن يكون ذلك جميلا إذا كان كانت اللغة، وسيلة المدمج في سهلة 53 00:02:37,580 --> 00:02:38,910 لتنفيذ الشبكات؟ 54 00:02:38,910 --> 00:02:43,420 وPHP هي لغة التي تجعل من ذلك، أو تسهل ذلك، لا بأس به أكثر من ذلك. 55 00:02:43,420 --> 00:02:47,740 كما قلت، PHP جدا مستوحى بشكل كبير بواسطة 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 لذلك قمنا تسمية الملف لدينا مع فب التمديد، ولكن بعد ذلك أيضا مع PHP، 65 00:03:18,430 --> 00:03:23,310 كل رمز PHP نكتب في ذلك الملف يجب أن يكون مغلق في هذه PHP 66 00:03:23,310 --> 00:03:25,190 المحددات التي نراها هنا على الشاشة. 67 00:03:25,190 --> 00:03:27,910 قوس الزاوية؟ فب لبدء. 68 00:03:27,910 --> 00:03:30,860 ثم نكتب كل PHP لدينا التعليمات البرمجية التي نريد بينهما. 69 00:03:30,860 --> 00:03:32,260 وثم ؟ 70 00:03:32,260 --> 00:03:34,710 قوس الزاوية لإغلاق. 71 00:03:34,710 --> 00:03:37,170 >> إذا لم نفعل ذلك، ثم ماذا سيحدث؟ 72 00:03:37,170 --> 00:03:38,170 انها لن تحطم الطائرة. 73 00:03:38,170 --> 00:03:39,410 انها ليست الذهاب الى الخراب حقا برنامجنا. 74 00:03:39,410 --> 00:03:41,440 لكنه لن يكون لها التأثير الذي نريده. 75 00:03:41,440 --> 00:03:44,540 ما الذي سيحدث، حقا، هو أننا عندما نحاول وتشغيل هذا البرنامج، 76 00:03:44,540 --> 00:03:50,330 كل شيء ليس بين تلك المحددات سوف يتم طباعتها حرفيا. 77 00:03:50,330 --> 00:03:52,210 انها ليست الذهاب الى في الواقع تنفيذ التعليمات البرمجية، 78 00:03:52,210 --> 00:03:56,010 انها سوف فقط طباعته حرفيا. 79 00:03:56,010 --> 00:03:57,320 >> الآن لماذا هو كذلك؟ 80 00:03:57,320 --> 00:04:00,416 هكذا C هو ما يعرف كلغة المترجمة. 81 00:04:00,416 --> 00:04:03,040 وربما كنت على دراية الخطوة جعل البرامج الخاصة بك، 82 00:04:03,040 --> 00:04:07,820 تحويل ملفات .C والملفات .H في احد قابل للتنفيذ مع make، 83 00:04:07,820 --> 00:04:11,130 على وجه الخصوص باستخدام رنة كما مترجم لدينا. 84 00:04:11,130 --> 00:04:13,030 PHP، على الرغم من لا يكون هذا ما يعادلها. 85 00:04:13,030 --> 00:04:15,600 PHP هو ما يسمى اللغة تفسيرها. 86 00:04:15,600 --> 00:04:16,760 وماذا يعني ذلك؟ 87 00:04:16,760 --> 00:04:20,680 >> حسنا، هذا يعني أننا لم يكن لديك لتحويل كود مصدرنا إلى أصفار ومنها 88 00:04:20,680 --> 00:04:21,470 مسبقا. 89 00:04:21,470 --> 00:04:23,900 بدلا من ذلك، هناك برنامج، وهو ما يسمى أيضا 90 00:04:23,900 --> 00:04:29,771 PHP، أن يفهم PHP و يمكن نوع من جعله على الطاير. 91 00:04:29,771 --> 00:04:32,520 هذا ليس حقا دقيقة بالضبط، ولكن هذا التشبيه جيدة 92 00:04:32,520 --> 00:04:33,760 ما يحدث. 93 00:04:33,760 --> 00:04:37,230 انها تفسير تلك أصفار ومنها على الطاير. 94 00:04:37,230 --> 00:04:40,160 وحتى إذا كان لا يعرف كيفية معالجة شيء، 95 00:04:40,160 --> 00:04:42,800 إذا لم تكن تعرف كيفية عملية PHP، وربما كنت 96 00:04:42,800 --> 00:04:44,680 أردت أن أنقل هذا النص هناك، أليس كذلك؟ 97 00:04:44,680 --> 00:04:48,960 >> ربما كنت تريد أن تضع التعليمات البرمجية في هناك، حتى لو أنها ليست بين PHP-- 98 00:04:48,960 --> 00:04:50,035 المحددات PHP. 99 00:04:50,035 --> 00:04:51,910 But-- لذلك لن لحذف لانها لكم، 100 00:04:51,910 --> 00:04:53,576 انها مجرد الذهاب إلى تجاهل الأساس هو. 101 00:04:53,576 --> 00:04:55,550 لذلك سيكون لطباعة بها إلى الشاشة. 102 00:04:55,550 --> 00:04:57,150 >> هذا يبدو وكأنه انها سيئة الشيء، ولكن في الواقع انها 103 00:04:57,150 --> 00:04:58,220 ستكون حقا شيء جيد، وسنقوم 104 00:04:58,220 --> 00:05:00,390 ترى عندما نتحدث عن تطوير الشبكة PHP، 105 00:05:00,390 --> 00:05:04,010 لأنه يعني ما في وسعنا بعثر PHP و HTML. 106 00:05:04,010 --> 00:05:06,640 يمكننا استخدامها معا ل إنشاء صفحة على شبكة الإنترنت أكثر ديناميكية. 107 00:05:06,640 --> 00:05:10,650 ولكن أكثر على ذلك في الفيديو على الشبكة العالمية للتنمية PHP. 108 00:05:10,650 --> 00:05:12,021 >> فما هو بناء جملة PHP؟ 109 00:05:12,021 --> 00:05:13,520 هذا ما هو هذا الفيديو هو كل شيء. 110 00:05:13,520 --> 00:05:14,850 دعونا نتحدث عن ذلك. 111 00:05:14,850 --> 00:05:16,490 >> حتى أن تبدأ، والمتغيرات. 112 00:05:16,490 --> 00:05:18,030 توجد متغيرات PHP. 113 00:05:18,030 --> 00:05:20,067 هناك اثنين فقط كبيرة الاختلافات من C. 114 00:05:20,067 --> 00:05:21,900 الأول هو أن هناك لا يوجد نوع محدد. 115 00:05:21,900 --> 00:05:24,245 نحن لا يجب أن أقول الباحث، شار، تطفو، كل هذه الأشياء. 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 ليس لدينا للقيام بذلك بعد الآن في PHP. 128 00:05:48,550 --> 00:05:52,540 يمكننا أن نقول فقط $ س = 54. 129 00:05:52,540 --> 00:05:55,920 ويمكننا القول، على سبيل المثال، في C، إذا كنا قد شملت رطل من .H CS50 130 00:05:55,920 --> 00:06:00,314 ملف الرأس، يمكننا القول سلسلة عبارة = "هذا هو CS50". 131 00:06:00,314 --> 00:06:01,980 نحن لا يجب أن نفعل ذلك في PHP، وإن كان. 132 00:06:01,980 --> 00:06:04,865 يمكننا أن نقول فقط $ العبارة = "هذا هو CS50". 133 00:06:04,865 --> 00:06:08,760 وفي الواقع، سلسلة الآن نوع البيانات المضمنة في PHP، 134 00:06:08,760 --> 00:06:10,950 أو بالأحرى تفهم PHP ما هي السلسلة. 135 00:06:10,950 --> 00:06:15,612 انها منفصلة عن مجموعة من الحروف كما هي في C. 136 00:06:15,612 --> 00:06:17,570 جميع المفضلة لديك عبارات شرطية من C 137 00:06:17,570 --> 00:06:19,520 لا تزال متاحة لتتمكن من استخدامها. 138 00:06:19,520 --> 00:06:21,140 لذلك لا تمر بمرحلة انتقالية كبيرة هناك. 139 00:06:21,140 --> 00:06:23,400 يمكننا say-- أننا يمكن أن يكون إذا كانت تصريحات من هذا القبيل. 140 00:06:23,400 --> 00:06:28,210 إذا $ ص 43، أو $ ض = 15. 141 00:06:28,210 --> 00:06:29,690 ذلك أن واضحة جدا. 142 00:06:29,690 --> 00:06:31,980 فإننا يمكن أن يكون إذا وآخر. 143 00:06:31,980 --> 00:06:34,210 فإننا يمكن أن يكون إذا وآخر إذا. 144 00:06:34,210 --> 00:06:36,430 >> وتلاحظ شيئا لطيفة جدا هنا، وهذا 145 00:06:36,430 --> 00:06:39,620 هو نوع واحد من تلك مزايا PHP مقابل C، لاحظ 146 00:06:39,620 --> 00:06:41,510 ما وظيفة نحن لا تستخدم هنا؟ 147 00:06:41,510 --> 00:06:47,737 نستخدمه == لمقارنة متغير، اسم $، إلى سلسلة. 148 00:06:47,737 --> 00:06:49,070 ونحن لا يمكن ان نفعل ذلك في C، أليس كذلك؟ 149 00:06:49,070 --> 00:06:53,200 كان علينا أن استخدام دالة يسمى StrComp أو StrEndComp أو أي 150 00:06:53,200 --> 00:06:54,840 من أبناء المرتبطة بها. 151 00:06:54,840 --> 00:06:56,980 >> وهكذا بالفعل نرى هذه المزايا. 152 00:06:56,980 --> 00:07:00,930 نحن لا يجب أن نفعل شيئا سخيفة أو ربما unintuitive 153 00:07:00,930 --> 00:07:03,540 كما استدعاء دالة يسمى StrComp إذا أريد فقط لاختبار 154 00:07:03,540 --> 00:07:05,237 ما إذا كانت قيمة تساوي سلسلة. 155 00:07:05,237 --> 00:07:07,820 أنا يمكن أن تستخدم فقط يساوي متساوين، كما يمكن أن أفعل أي شيء آخر. 156 00:07:07,820 --> 00:07:09,560 لذلك هناك ميزة. 157 00:07:09,560 --> 00:07:13,350 >> في بعض الأحيان، بالمناسبة، كنت قد رؤية آخر كلمة إذا واحد، ELSEIF. 158 00:07:13,350 --> 00:07:14,910 وهذا موافق في PHP كذلك. 159 00:07:14,910 --> 00:07:17,020 حتى في بعض الأحيان قد ترى ذلك. 160 00:07:17,020 --> 00:07:17,790 انها ليست خطأ مطبعي. 161 00:07:17,790 --> 00:07:21,830 PHP يفهم الواقع ELSEIF. 162 00:07:21,830 --> 00:07:23,980 أنا لا أعرف لماذا قررت لتنفيذ ذلك، 163 00:07:23,980 --> 00:07:28,220 ولكن كما رأينا عدة مرات في جميع أنحاء لدينا أشرطة الفيديو حتى الآن، 164 00:07:28,220 --> 00:07:30,460 نحن المبرمجين الحب إذا يمكننا أن نفعل الأشياء بسرعة، 165 00:07:30,460 --> 00:07:33,660 حتى التخلص من هذه المساحة على ما يبدو ميزة كبيرة. 166 00:07:33,660 --> 00:07:34,800 >> ولهذا إذا وELSEIF. 167 00:07:34,800 --> 00:07:37,540 لدينا أيضا المشغل الثلاثي، استدعاء علامة استفهام القولون، 168 00:07:37,540 --> 00:07:43,262 لشكل قصيرة حقا إذا آخر أو مشروطة المتفرعة. 169 00:07:43,262 --> 00:07:45,470 وعلى ما يبدو، في هذا، ما نحاول القيام به هنا 170 00:07:45,470 --> 00:07:49,720 تم تعيين متغير $ إلكتروني إما صحيحة أو خاطئة، 171 00:07:49,720 --> 00:07:54,110 اعتمادا على ما إذا فار $ هو حرف أبجدي. 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 لذلك كل هذا سيكون هو، إذا $ فار هو بريد إلكتروني، $ إلكتروني صحيح. 177 00:08:08,560 --> 00:08:13,820 إذا $ فار ليس إلكتروني، $ إلكتروني غير صحيح. 178 00:08:13,820 --> 00:08:15,820 >> لدينا أيضا البيانات التبديل لا يزال. 179 00:08:15,820 --> 00:08:17,870 ونذكر هؤلاء من C كذلك. 180 00:08:17,870 --> 00:08:22,480 في أعلى جدا هناك، وهذا ما نقوم به شيء من هذا القبيل الحصول على الباحث أو الحصول على السلسلة. 181 00:08:22,480 --> 00:08:23,845 لذلك PHP له أن بنيت فيها 182 00:08:23,845 --> 00:08:25,470 نحن لسنا بحاجة المكتبة CS50 بعد الآن. 183 00:08:25,470 --> 00:08:27,237 يمكننا فقط استخدام وظيفة يقوم readline. 184 00:08:27,237 --> 00:08:29,820 ما الذي يجري القيام به هو طباعة من الرسالة، "دولتكم، 185 00:08:29,820 --> 00:08:33,820 من فضلك "، ثم امض موجه انتظار المستخدم لإدخال 186 00:08:33,820 --> 00:08:34,739 بعض المعلومات. 187 00:08:34,739 --> 00:08:36,530 لاحظ الآن ماذا يمكننا القيام به مع التبديل. 188 00:08:36,530 --> 00:08:39,105 إذا كنت قد استخدمت من قبل، تذكرون أن التبديل 189 00:08:39,105 --> 00:08:44,960 يقتصر إلى حد كبير إلى أعداد صحيحة و حرفا، ولكن الآن يمكننا استخدام السلاسل. 190 00:08:44,960 --> 00:08:50,190 في واقع الأمر، وبيان التبديل في PHP هو أكثر قليلا جدا مرنة 191 00:08:50,190 --> 00:08:54,880 من ابن عم لها من 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 ولكن في PHP، المصفوفات هي ليست ثابتة في الحجم بعد الآن. 212 00:09:41,590 --> 00:09:43,240 ويمكن أن تنمو وأنها يمكن أن يتقلص. 213 00:09:43,240 --> 00:09:46,660 ذلك مرة أخرى، هذه السنوات ال 20 التي كانت موجودة بين الإصدار الأول من C 214 00:09:46,660 --> 00:09:49,440 وأول إصدار PHP، قررنا ذلك، كما تعلمون، 215 00:09:49,440 --> 00:09:51,670 سيكون أمرا رائعا حقا إذا كان لنا أن نفعل ذلك. 216 00:09:51,670 --> 00:09:54,100 وهكذا نفذنا هذا. 217 00:09:54,100 --> 00:09:58,040 >> لذلك ليست ثابتة المصفوفات PHP في حجم، ولأن PHP لا حقا 218 00:09:58,040 --> 00:10:03,090 لدينا مبرمج الجبهة التي تواجه مفاهيم أنواع، 219 00:10:03,090 --> 00:10:05,110 لا يمكننا خلط أنواع البيانات في المصفوفات لدينا أيضا. 220 00:10:05,110 --> 00:10:08,100 لذلك ليس لدينا حتى لاستخدام كل أعداد صحيحة أو جميع النقاط العائمة، 221 00:10:08,100 --> 00:10:12,826 فإننا يمكن أن يكون مزيجا من جميع أنواع مختلفة في مجموعة واحدة. 222 00:10:12,826 --> 00:10:14,700 تعلن مجموعة غير جميلة واضحة. 223 00:10:14,700 --> 00:10:16,116 انها تماما مثل أي متغير آخر. 224 00:10:16,116 --> 00:10:20,020 $ NUMS = مجموعة (1، 2، 3، 4)، مجموعة كونها وظيفة 225 00:10:20,020 --> 00:10:22,760 المضمن في PHP التي وإنشاء صفيف بالنسبة لك. 226 00:10:22,760 --> 00:10:28,315 وهذا يخلق مجموعة من أربع قيم، الأرقام في هذه الحالة، ودعا $ NUMS. 227 00:10:28,315 --> 00:10:29,940 وهناك أكثر من طريقة للقيام بذلك. 228 00:10:29,940 --> 00:10:32,420 ونحن في طريقنا ل نرى هذا كثيرا في PHP. 229 00:10:32,420 --> 00:10:36,380 وقد تم تطوير PHP من قبل العديد من مختلف الناس وتنمو وتنمو وتنمو. 230 00:10:36,380 --> 00:10:40,050 هناك عادة لا اثنين فقط أو ثلاث طرق لفعل شيء في PHP، 231 00:10:40,050 --> 00:10:42,170 هناك عادة مثل 10 أو 20. 232 00:10:42,170 --> 00:10:45,300 هنا مجرد شائعة طريقة تعريف صفيف. 233 00:10:45,300 --> 00:10:48,310 $ NUMS = مربع قوس 1، 2، 3، 4. 234 00:10:48,310 --> 00:10:53,170 لذلك هذا هو نوع من مشابهة لزاوية C ل br-- تدوين متعرج، إلى حد ما. $ - 235 00:10:53,170 --> 00:10:58,525 أو أنه سيكون NUMS الباحث مربع بين قوسين يساوي متعرج 1، 2، 3، 4. 236 00:10:58,525 --> 00:11:02,710 في PHP انها $ NUMS = مربع بين قوسين 1، 2، 3، 4. 237 00:11:02,710 --> 00:11:08,920 ولكن كلا من هذه الأمثلة هنا تعطيني مجموعة من أربعة في هذه الحالة صحيحة. 238 00:11:08,920 --> 00:11:10,920 >> ماذا لو أريد أن تك شيئا الآن؟ 239 00:11:10,920 --> 00:11:14,760 حسنا يمكنني أن أقول فقط $ NUMS 4، التي مرة أخرى، نحن لا نزال العد من 0 هنا 240 00:11:14,760 --> 00:11:17,800 في PHP، سيكون خامس عنصر من عناصر المصفوفة. 241 00:11:17,800 --> 00:11:18,990 يمكنني أن أقول ذلك. 242 00:11:18,990 --> 00:11:22,860 أنا لا أريد أن يعاني ثوانى خطأ، لأن مجموعة بلدي هي فقط 243 00:11:22,860 --> 00:11:24,337 الذهاب إلى النمو لاستيعاب ذلك. 244 00:11:24,337 --> 00:11:25,420 هذا لطيف جدا، أليس كذلك؟ 245 00:11:25,420 --> 00:11:28,400 في واقع الأمر، أنا لا تحتاج حتى ل تحديد المكان الذي تريد وضعه. 246 00:11:28,400 --> 00:11:31,220 يمكنني أن أقول هذا وفقط تك ذلك الحق حتى النهاية، 247 00:11:31,220 --> 00:11:34,099 أو أستطع حتى مجرد يقول $ NUMS 20 أو 1000. 248 00:11:34,099 --> 00:11:35,140 لا يهم حقا. 249 00:11:35,140 --> 00:11:38,330 انها لا تزال مجرد الذهاب الى تك ذلك الحق حتى النهاية. 250 00:11:38,330 --> 00:11:41,490 >> لذلك أنا يمكن أن تنمو، وas-- نحن لن تغطية ذلك هنا، 251 00:11:41,490 --> 00:11:45,360 ولكن يمكنني أن لصق أو الشريط عناصر من مجموعة وكذلك، 252 00:11:45,360 --> 00:11:50,064 ومجموعة سينكمش لاستيعاب أن الآن في عداد المفقودين أو فارغة الفضاء. 253 00:11:50,064 --> 00:11:52,230 هناك طريقة أخرى لتك شيء على صفيف، 254 00:11:52,230 --> 00:11:54,330 وهي وظيفة تسمى array_push. 255 00:11:54,330 --> 00:11:57,860 ذلك مرة أخرى، لمجرد هذه الفكرة من كونها قادرة على فعل الأشياء بطرق مختلفة عديدة. 256 00:11:57,860 --> 00:12:01,950 لذلك رأينا ثلاث طرق مختلفة الآن لتك عنصر آخر على صفيف. 257 00:12:01,950 --> 00:12:06,900 ولذلك فإن هذا يضيف عنصرا آخر إلى نهاية المصفوفة $ NUMS. 258 00:12:06,900 --> 00:12:08,340 ويمكننا خلط أنواع البيانات المتوفرة لدينا. 259 00:12:08,340 --> 00:12:13,110 لذلك يمكن أن يكون لديك مجموعة من لا 1، 2، 3، 4، ولكن 1، صحيح، 3، 4، 260 00:12:13,110 --> 00:12:16,420 حيث الصحيح هو قيمة منطقية، ومن ثم إذا كنت تريد أن تك على عنصر آخر 261 00:12:16,420 --> 00:12:20,860 إلى ذلك مجموعة، ربما سلسلة، السلسلة "خمسة" أنا يمكن أن تفعل ذلك. 262 00:12:20,860 --> 00:12:26,110 والآن سوف مجموعة بلدي تكون 1، صحيح، 3، 4، خمسة. 263 00:12:26,110 --> 00:12:28,640 كلمة خمسة، وليس صحيحا 5. 264 00:12:28,640 --> 00:12:31,270 لذلك الكثير من المرونة هناك. 265 00:12:31,270 --> 00:12:33,290 >> يحصل على المرونة حتى أفضل، على الرغم من 266 00:12:33,290 --> 00:12:37,530 لأن PHP يحظى بدعم لشيء تسمى مجموعة النقابي. 267 00:12:37,530 --> 00:12:40,660 ونحن نوع من تحدث غامضة صفائف حول النقابي في C 268 00:12:40,660 --> 00:12:44,740 في سياق الجداول التجزئة، ل ما صفائف النقابي حقا كلها 269 00:12:44,740 --> 00:12:48,950 حول نحرز المفتاح تعيينات زوج قيمة. 270 00:12:48,950 --> 00:12:53,410 وفي هذه الحالة، إذا keys-- نحن على دراية صفائف من C، 271 00:12:53,410 --> 00:12:55,440 مفاتيح أرقام مؤشر. 272 00:12:55,440 --> 00:12:57,530 0، 1، 2، 3. 273 00:12:57,530 --> 00:13:03,070 والقيم هي ما نجد أن مجموعة 0، مجموعة 1، مجموعة 2، وهلم جرا. 274 00:13:03,070 --> 00:13:06,310 وبالتالي فإن مفاتيح الأرقام القياسية، والقيم 275 00:13:06,310 --> 00:13:10,060 ما هو موجود في هذا الموقع مجموعة، التي يحددها هذا الفهرس. 276 00:13:10,060 --> 00:13:15,130 >> ولكن في PHP، ونحن لم يكن لديك للقيام بذلك فكرة مجموعة 0، مجموعة 1، مجموعة 2 277 00:13:15,130 --> 00:13:15,830 أي أكثر من ذلك. 278 00:13:15,830 --> 00:13:21,025 يمكننا الآن استخدام الكلمات الفعلية لتعيين مفاتيح القيم. 279 00:13:21,025 --> 00:13:22,650 وهكذا أستطيع أن أقول شيئا من هذا القبيل. 280 00:13:22,650 --> 00:13:26,710 أنا يمكن أن تخلق مجموعة باستخدام مربع تركيب شريحة النحو التالي. 281 00:13:26,710 --> 00:13:30,685 $ البيتزا = قوس مربع "الجبن"، ومن ثم 282 00:13:30,685 --> 00:13:37,210 هذا النوع من التدوين سهم مزدوج، 8.99 "، ببروني،" السهم 10.99-- 9.99، 283 00:13:37,210 --> 00:13:37,880 وهلم جرا. 284 00:13:37,880 --> 00:13:39,060 وهكذا ما الذي يحدث هنا؟ 285 00:13:39,060 --> 00:13:41,040 ماذا أفعل في الواقع؟ 286 00:13:41,040 --> 00:13:43,990 أنا خلق الرئيسية تعيينات زوج قيمة. 287 00:13:43,990 --> 00:13:49,060 وذلك بدلا من أن تقول، على سبيل المثال، البيتزا 0، وقطع 1، 2 البيتزا، 288 00:13:49,060 --> 00:13:52,350 يمكنني الآن القول البيتزا الجبن والبيتزا ببروني، 289 00:13:52,350 --> 00:13:55,120 والرجوع إلى القيم المرتبطة بها. 290 00:13:55,120 --> 00:13:56,970 >> حتى هنا لدينا مفاتيح باللون الأخضر. 291 00:13:56,970 --> 00:13:59,870 الجبن، ببروني، الخضار والجاموس الدجاج. 292 00:13:59,870 --> 00:14:04,200 هنا هو السهم الذي يجعل هذا التعيين زوج قيمة المفتاح. 293 00:14:04,200 --> 00:14:07,420 ثم هنا هي القيم في هذا الموقع مجموعة. 294 00:14:07,420 --> 00:14:10,330 لذلك فمن مثل قوله مجموعة 0 يساوي 8.99. 295 00:14:10,330 --> 00:14:11,720 والمفتاح هو 0. 296 00:14:11,720 --> 00:14:13,600 القيمة هي 8،99. 297 00:14:13,600 --> 00:14:19,370 يمكنني الآن القول الجبن مجموعة، أو في هذه جبن البيتزا حالة والجبن هو مفتاح، 298 00:14:19,370 --> 00:14:23,340 وما أجد في جبن البيتزا هو 8.99. 299 00:14:23,340 --> 00:14:25,540 هذا هو القيمة التي أجد هناك. 300 00:14:25,540 --> 00:14:28,124 >> لذلك أستطيع أن أقول أشياء مثل. $ البيتزا الجبن = 7.99. 301 00:14:28,124 --> 00:14:29,040 يقول أواجه بيع. 302 00:14:29,040 --> 00:14:31,750 أريد dis-- أريد أن إسقاط سعر البيتزا الجبن. 303 00:14:31,750 --> 00:14:35,620 أو أنا يمكن استخدام الخضار البيتزا كجزء من شرط، 304 00:14:35,620 --> 00:14:39,990 أو أنا يمكن أن تضيف عنصرا جديدا إلى بلدي مجموعة، تماما مثل ما يمكن القيام به في وقت سابق. 305 00:14:39,990 --> 00:14:44,680 ويمكنني أن أضيف عنصر جديد في هذا مجموعة النقابي مع "بيكون" الرئيسي 306 00:14:44,680 --> 00:14:49,250 وقيمة 13.49. 307 00:14:49,250 --> 00:14:53,820 >> ولكن هذا النوع من يدخل مشكلة، إذا كنت تفكر في ذلك لفترة ثانية. 308 00:14:53,820 --> 00:14:55,721 كيف يمكننا أن تكرار خلال هذه المجموعة؟ 309 00:14:55,721 --> 00:14:56,220 الصحيح؟ 310 00:14:56,220 --> 00:14:59,820 في C، سيكون لدينا فقط للحلقة، عادة، أن 311 00:14:59,820 --> 00:15:03,650 سيرشح نفسه من 0 إلى حجم المصفوفة ناقص 1. 312 00:15:03,650 --> 00:15:08,060 مجموعة لديها عناصر ن في في، ل المؤشرات الصحيحة هي من 0 إلى ن ناقص 1. 313 00:15:08,060 --> 00:15:11,530 حتى نتمكن من استخدام لحلقة ل خطوة من خلال كل عنصر واحد. 314 00:15:11,530 --> 00:15:13,530 >> ولكن هذا ليس حقا وكذلك بعد الآن، أليس كذلك؟ 315 00:15:13,530 --> 00:15:17,360 الآن حيث لدينا زوج قيمة المفتاح تعيينات حيث المفاتيح هي الكلمات، 316 00:15:17,360 --> 00:15:19,970 كيف يمكننا تكرار عبر كل من الكلمات؟ 317 00:15:19,970 --> 00:15:22,420 حسنا، لحسن الحظ، PHP لديها وسيلة للتعامل مع هذا أيضا، 318 00:15:22,420 --> 00:15:24,580 ولذا فإننا سوف القفز مرة أخرى لحلقات لثانية واحدة 319 00:15:24,580 --> 00:15:30,780 لإدخال نوع الرابع من حلقة موجود في PHP دعا حلقة foreach. 320 00:15:30,780 --> 00:15:34,430 وما يفعله هو حلقة foreach انها في الاساس نفس الفكرة. 321 00:15:34,430 --> 00:15:36,060 يمكنك استخدامها لأي نوع من مجموعة. 322 00:15:36,060 --> 00:15:38,100 ولكنه في الاساس نفس الفكرة باعتبارها لحلقة، 323 00:15:38,100 --> 00:15:40,750 باستثناء بدلا من استخدام الأرقام القياسية، أنت فقط 324 00:15:40,750 --> 00:15:45,830 يكون بناء الجملة هذا غريب حيث استدعاء كل عنصر واحد 325 00:15:45,830 --> 00:15:47,550 اسم لأغراض هذه الحلقة. 326 00:15:47,550 --> 00:15:49,258 >> حتى في هذه الحالة، foreach ($ مجموعة كما $ مفتاح). 327 00:15:49,258 --> 00:15:52,900 328 00:15:52,900 --> 00:15:56,450 في الأساس، كما أن الملاحظات تعليق، داخل ذلك حلقة Foreach، 329 00:15:56,450 --> 00:16:00,466 انها سوف تذهب على كل واحد عنصر $ مجموعة، وهو عادة 330 00:16:00,466 --> 00:16:03,340 ستكون مجموعة النقابي، ولكن يمكن أن يكون حقا أي نوع من مجموعة 331 00:16:03,340 --> 00:16:05,419 التي تريدها في PHP. 332 00:16:05,419 --> 00:16:07,210 وفي كل مرة أنه في حلقة 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 $ ط = 3. 347 00:17:06,089 --> 00:17:09,780 إذا لم يكن لدينا أزواج قيمة المفتاح هنا، وهذا سيكون العنصر 0، 1، 2، 3، 348 00:17:09,780 --> 00:17:16,390 وسوف نستخدم لحلقة للذهاب $ 0 البيتزا، البيتزا $ 1، البيتزا $ 2، 349 00:17:16,390 --> 00:17:17,750 $ البيتزا 3. 350 00:17:17,750 --> 00:17:23,130 وحتى الآن $ فقط البيتزا وتستبدل هذا المفتاح الفردية. 351 00:17:23,130 --> 00:17:25,630 >> ذلك ما يتم هذا الانتقال لطباعة؟ 352 00:17:25,630 --> 00:17:29,030 أنا طبع $ البيتزا. 353 00:17:29,030 --> 00:17:35,270 ما أنا ذاهب للعثور على at-- إذا كنت تطبع $ البيتزا، $ أنا؟ 354 00:17:35,270 --> 00:17:35,770 الصحيح؟ 355 00:17:35,770 --> 00:17:38,680 إذا أنا ذاهب للطباعة العنصر إيث من البيتزا، 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 >> "A كله" - وهذا هو الكثير من طباعة مستمرة here-- "ككل" 386 00:19:10,170 --> 00:19:17,300 تتصدر "البيتزا تكاليف $" السعر، ومن ثم I طباعة فترة ومائل ن. 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 "بيتزا جبن كامل تكاليف 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 كان لدينا هؤلاء الخمسة عبارات الطباعة منفصلة، 416 00:20:48,000 --> 00:20:50,330 لأن ذلك كان فقط طريقة أنا حقا أعرف في ذلك الوقت 417 00:20:50,330 --> 00:20:52,450 كيفية طباعة الرسائل. 418 00:20:52,450 --> 00:20:59,560 لم أكن أعرف كيفية دمج $ متغير تحتل المرتبة الاولى في قانون بلدي PHP. 419 00:20:59,560 --> 00:21:03,700 حسنا، إذا كنت أخذت مجرد تخمين البرية، printf، فإنه في الواقع قد عملت. 420 00:21:03,700 --> 00:21:08,980 printf هي وظيفة التي يمكن استخدامها في PHP، تماما كما كنت ويمكن استخدامه في C. 421 00:21:08,980 --> 00:21:11,880 >> ولذا فإن شيئا من هذا القبيل، printf، مرة أخرى، نحن على دراية بذلك. 422 00:21:11,880 --> 00:21:16,420 يتم استبدال الأول٪ الصورة مع قيمة $ تحتل المرتبة الاولى. 423 00:21:16,420 --> 00:21:19,700 يتم استبدال الثاني ق٪ مع قيمة $ سعر. 424 00:21:19,700 --> 00:21:22,630 وحتى أنا استجواب، الذي هو مجرد وسيلة الهوى 425 00:21:22,630 --> 00:21:25,400 من يقول أنا إصرارها على المتغيرات في هذا الموقع. 426 00:21:25,400 --> 00:21:31,000 لذلك أنا توصيل $ تحتل المرتبة الاولى حيث أحمر٪ s غير و$ السعر حيث الزرقاء٪ الصورة 427 00:21:31,000 --> 00:21:36,060 هو، ثم أود أن أحصل على الرسالة، "بيتزا جبن كامل تكاليف 8،99 $." 428 00:21:36,060 --> 00:21:37,750 >> ليس الطريقة الوحيدة التي يمكنني القيام بذلك، وإن كان. 429 00:21:37,750 --> 00:21:39,760 ربما كنت ترغب في استخدام هذا الأسلوب. 430 00:21:39,760 --> 00:21:44,890 هذا هو في الواقع ما هو الأكثر شيوعا دعا استجواب متغير. 431 00:21:44,890 --> 00:21:45,690 يمكنني استخدام الصدى. 432 00:21:45,690 --> 00:21:47,737 أنا يمكن استخدام الطباعة أيضا، كما سنرى. 433 00:21:47,737 --> 00:21:48,820 ولكن ما يحدث هنا؟ 434 00:21:48,820 --> 00:21:51,520 >> أولا وقبل كل شيء، لا بد لي من الهروب من الدولار. 435 00:21:51,520 --> 00:21:55,140 لأن تذكر، عندما كنا في الواقع طبع أسعار البيتزا، 436 00:21:55,140 --> 00:21:59,370 كنت في الواقع تهيئة لهم كما الأرقام النقدية مع علامة الدولار. 437 00:21:59,370 --> 00:22:05,635 لكننا باستخدام علامات الدولار أيضا لتمثيل أسماء المتغيرات في PHP، 438 00:22:05,635 --> 00:22:08,010 وعلى وجه الخصوص عندما أكون باستخدام هذا الأسلوب من مجعد 439 00:22:08,010 --> 00:22:10,040 متغير هدفين طريقة الاستجواب، ولست بحاجة 440 00:22:10,040 --> 00:22:13,490 للهروب علامة لي الدولار لذلك لا أعتقد أنني أتحدث عن متغير. 441 00:22:13,490 --> 00:22:16,920 انها تسير فعلا، حرفيا طباعة علامة الدولار. 442 00:22:16,920 --> 00:22:19,530 >> ذلك النوع من مقايسة ل ما تراه في النهاية هناك. 443 00:22:19,530 --> 00:22:22,832 لم يحدث ذلك فعلا طباعة مائل ن، أليس كذلك؟ 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 >> ولكن لاحظ أنني لا تفعل أي نوع من التبديلات٪ الصورة، 450 00:22:37,080 --> 00:22:40,050 أنا مجرد توصيل حرفيا في هذه المتغيرات. 451 00:22:40,050 --> 00:22:45,110 وذلك في this-- ما سيحدث هنا غير أن قيمة $ topping-- مرة أخرى، 452 00:22:45,110 --> 00:22:48,390 فقط تمشيا مع ما كنا سوف نتحدث عن الجبن far-- حتى الحصول على 453 00:22:48,390 --> 00:22:49,720 في الوتر هناك. 454 00:22:49,720 --> 00:22:54,780 و$ السعر سيكون أي قيمة غير في البيتزا، بين قوسين معقوفين، الجبن، 455 00:22:54,780 --> 00:22:56,270 الذي كان 8.99. 456 00:22:56,270 --> 00:23:01,860 وحتى هذا من شأنه أيضا طباعة خارج "بيتزا جبن كامل تكاليف 8،99 $." 457 00:23:01,860 --> 00:23:05,160 وكما قلت، وأنا يمكن أن تستخدم طباعة هنا بدلا من الصدى، 458 00:23:05,160 --> 00:23:08,040 وظائف تكون بالضبط نفس الشيء. 459 00:23:08,040 --> 00:23:09,660 فإنه طباعة الشيء نفسه. 460 00:23:09,660 --> 00:23:12,680 >> هناك طريقة أخرى للقيام بذلك، وهذا هو ميزة أخرى 461 00:23:12,680 --> 00:23:14,710 من PHP تعمل مع السلاسل. 462 00:23:14,710 --> 00:23:17,130 يمكننا أن نفعل سلسلة سلسلة. 463 00:23:17,130 --> 00:23:19,660 يمكننا أن نفعل هذا في C، أيضا، باستخدام وظيفة تسمى strcat، 464 00:23:19,660 --> 00:23:21,180 ولكن مرة أخرى، وكان لأننا استدعاء وظائف منفصلة. 465 00:23:21,180 --> 00:23:22,640 وكان هذا كله فوضى القيام به. 466 00:23:22,640 --> 00:23:24,590 كان علينا أن الجنيه تشمل string.h. 467 00:23:24,590 --> 00:23:25,780 وكان الإنتاج، أليس كذلك؟ 468 00:23:25,780 --> 00:23:30,070 ولكن الآن أستطيع أن مجرد استخدام هذا المشغل نقطة لسلسلة السلاسل معا. 469 00:23:30,070 --> 00:23:34,910 >> لذلك أنا وصل "ككل" و ثم مهما كانت قيمة $ تحتل المرتبة الاولى هو، 470 00:23:34,910 --> 00:23:38,860 ثم آخر سلسلة "تكاليف البيتزا $" 471 00:23:38,860 --> 00:23:42,340 ووصل بعد ذلك أيا كان قيمة $ السعر هو، 472 00:23:42,340 --> 00:23:45,670 ثم في النهاية أنا تغير اتجاهها في الفترة مائل ن. 473 00:23:45,670 --> 00:23:47,926 وحتى هذا من شأنه أيضا طباعة "ككل" - مرة أخرى، 474 00:23:47,926 --> 00:23:50,550 إذا كنا نتحدث عن أول عنصر من عناصر هذا array-- البيتزا 475 00:23:50,550 --> 00:23:54,710 "بيتزا جبن كامل تكاليف 8،99 $." 476 00:23:54,710 --> 00:24:01,260 الفترة، مائل ن، مرة أخرى، مع تتصدر $ و $ سعر أمازيغ 477 00:24:01,260 --> 00:24:06,580 لما كنا قد المحددة في foreach لدينا حلقة كما التعيين زوج قيمة المفتاح. 478 00:24:06,580 --> 00:24:08,050 >> PHP يمكن التعامل مع الوظائف. 479 00:24:08,050 --> 00:24:11,250 وكانت وظائف النوع من جزءا لا يتجزأ من C، كما رأينا. 480 00:24:11,250 --> 00:24:14,870 مثل المتغيرات، نحن لسنا بحاجة ل تحديد نوع عودة وظيفة، 481 00:24:14,870 --> 00:24:16,350 لأنه لا يهم حقا. 482 00:24:16,350 --> 00:24:18,660 ونحن لم تحدد أنواع البيانات من أية معلمات، 483 00:24:18,660 --> 00:24:21,410 لأنهم لا حقا المسألة، كما رأيناه في PHP. 484 00:24:21,410 --> 00:24:24,510 وقدم كل وظيفة مع وظيفة الكلمة. 485 00:24:24,510 --> 00:24:27,920 هذه هي الطريقة التي تشير إلى أن PHP ما نتحدث عنه هو وظيفة. 486 00:24:27,920 --> 00:24:29,720 >> ونحن لم يكن لديك ل التعامل مع الرئيسي في كل شيء، 487 00:24:29,720 --> 00:24:33,690 لأن المترجم، وPHP مترجم، يعمل من أعلى إلى أسفل، 488 00:24:33,690 --> 00:24:34,190 بصرف النظر. 489 00:24:34,190 --> 00:24:35,640 إذا كان يرى أن تتمكن من إجراء استدعاء دالة، وأنها سوف 490 00:24:35,640 --> 00:24:37,850 تذهب تجد استدعاء دالة، حتى لو جاء ذلك في وقت لاحق. 491 00:24:37,850 --> 00:24:40,360 لكنه سيحتاج إلى قراءة من أعلى إلى أسفل، لذلك نحن لا تحتاج إلى تحديد، 492 00:24:40,360 --> 00:24:41,500 هنا حيث تبدأ. 493 00:24:41,500 --> 00:24:46,700 البدء في السطر 1 الخاص بك PHP والعمل من هناك. 494 00:24:46,700 --> 00:24:49,690 >> حتى هنا هو كيف يمكننا أن خلق دعت وظيفة hard_square. 495 00:24:49,690 --> 00:24:54,100 يبدو أنه يأخذ واحدة المعلمة التي ادعو $ س. 496 00:24:54,100 --> 00:24:58,424 وهذه المهمة معقدة فقط لتوضيح أشياء مختلفة. 497 00:24:58,424 --> 00:24:59,590 لا يزال لدينا قيم الإرجاع. 498 00:24:59,590 --> 00:25:00,870 أنا باستخدام لحلقة هنا. 499 00:25:00,870 --> 00:25:04,970 ولكنه في الأساس فقط، وهذا ما يرقى إلى مجرد $ س $ الأوقات السينية. 500 00:25:04,970 --> 00:25:10,520 ما أفعله هو في الواقع مجرد إضافة س 0 س مرات أو س $ إلى الصفر مرة $ س. 501 00:25:10,520 --> 00:25:15,850 لكنه فعال تماما نفس بضرب مرات $ س $ س. 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 بين تلك كلها من وPHP التي أريد أن أكتب. 509 00:25:35,180 --> 00:25:37,840 لذلك أنا على ما يبدو سوف get-- انا ذاهب الى مطالبة المستخدم 510 00:25:37,840 --> 00:25:41,550 أن تعطيني رقم، المخزن الذي متغير، مخزن في هذا المتغير $ س، 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 باستثناء بدلا من أن تقول فقط $ س هناك كمعلمة لhard_square، 521 00:26:08,400 --> 00:26:11,730 أقوله $ س = 10. 522 00:26:11,730 --> 00:26:14,330 لذلك هذا هو مثال لل برمجة دفاعية، 523 00:26:14,330 --> 00:26:17,070 حراسة البرامج الخاصة بك ضد مستخدمين ضارين. 524 00:26:17,070 --> 00:26:20,020 >> هذه هي طريقة واحدة للقيام ببعض خطأ التحقق من أننا لم أكن 525 00:26:20,020 --> 00:26:24,670 لدينا كخيار في C. نحن لا يمكن أبدا تحديد القيمة الافتراضية لشيء ما. 526 00:26:24,670 --> 00:26:27,010 كان لدينا دائما للتحقق إذا كانت، على سبيل المثال، 527 00:26:27,010 --> 00:26:30,820 إذا كان لنا أن إجراء مكالمة إلى GetString، كان عليه الأكثر مناسبة إذا فورا بعد أن 528 00:26:30,820 --> 00:26:33,300 فحص ذلك، ونحن فحص ما إذا كانت السلسلة 529 00:26:33,300 --> 00:26:35,504 أن المستخدم أعطانا لا يساوي قيمة خالية، 530 00:26:35,504 --> 00:26:37,920 لأننا لا نريد أن نبدأ العمل مع سلسلة فارغة. 531 00:26:37,920 --> 00:26:39,670 >> هنا، وهذا هو وسيلة لحراسة ضد ذلك. 532 00:26:39,670 --> 00:26:43,480 إذا كان المستخدم لا تقدم لنا شيئا بطريقة أو بأخرى، ماذا نحن فاعلون؟ 533 00:26:43,480 --> 00:26:46,080 حسنا، نحن سوف نقول فقط مهما كانت أنها لم تقدم لنا، 534 00:26:46,080 --> 00:26:47,705 نحن ذاهبون لمجرد سد العجز في 10 بدلا من ذلك. 535 00:26:47,705 --> 00:26:52,030 حتى إذا لم تعطينا القيمة، مجرد استخدام 10 افتراضيا. وحتى هنا، 536 00:26:52,030 --> 00:26:53,940 لاحظت أن أنا صنع دعوة لhard_square، 537 00:26:53,940 --> 00:26:55,980 ولكن ليس هناك موجه للمستخدم، أليس كذلك؟ 538 00:26:55,980 --> 00:26:57,540 أنا مجرد إجراء مكالمة فارغة. 539 00:26:57,540 --> 00:27:00,860 >> ولكن وظيفتي hard_square تتوقع المعلمة. 540 00:27:00,860 --> 00:27:02,222 ما يتم هذا الانتقال لطباعة؟ 541 00:27:02,222 --> 00:27:03,680 انه سيكون لطباعة 100، أليس كذلك؟ 542 00:27:03,680 --> 00:27:05,720 لأن المستخدم لم يكن تعطيني أي شيء. 543 00:27:05,720 --> 00:27:08,970 وهكذا أنا فقط ذاهب لنفترض أن 10-- 10 هي القيمة الافتراضية. 544 00:27:08,970 --> 00:27:13,760 وحتى هذا من شأنه أن طباعة من 100 على السطر الخاص به. 545 00:27:13,760 --> 00:27:16,390 >> ملفات PHP لا يجب أن يكون مجرد ملف واحد. 546 00:27:16,390 --> 00:27:19,480 يمكنك الجمع بين ملفات متعددة معا، تماما مثل يمكنك في C. الطريق 547 00:27:19,480 --> 00:27:24,330 فعلنا ذلك في C كان عادة للقيام تتضمن # للحصول على الملفات رأس انسحبت في. 548 00:27:24,330 --> 00:27:26,180 نحن لا نفعل ذلك في PHP. 549 00:27:26,180 --> 00:27:29,110 ونحن نفعل ما يسمى require_once. 550 00:27:29,110 --> 00:27:33,360 ثم هناك هذا كله شيء، ما هو هذا __dir__؟ 551 00:27:33,360 --> 00:27:36,510 هذا مجرد الخاصة متغير أو ثابت خاص، 552 00:27:36,510 --> 00:27:39,030 حقا، أن يحدد ما الدليل الحالي الخاص بك هو. 553 00:27:39,030 --> 00:27:41,320 وهكذا أريد لها أن ننظر في الدليل الحالي 554 00:27:41,320 --> 00:27:44,900 لملف يسمى cs50.php في هذا المثال هنا، 555 00:27:44,900 --> 00:27:50,490 وانها تسير على التمسك هذا الملف في الجزء العلوي من برنامج PHP الخاصة بك، 556 00:27:50,490 --> 00:27:56,980 على افتراض أن كنت وضعت تتطلب مرة واحدة الخط في الجزء العلوي من ملف PHP الخاصة بك. 557 00:27:56,980 --> 00:28:01,474 >> لذلك يستخدم PHP في المقام الأول، ولكنها لا تستخدم حصرا، 558 00:28:01,474 --> 00:28:03,140 كلغة للبرمجة على شبكة الإنترنت. 559 00:28:03,140 --> 00:28:05,270 هذا هو حقا كيف جاء ليكون. 560 00:28:05,270 --> 00:28:06,980 وإنما هو كامل لغة، كما رأينا. 561 00:28:06,980 --> 00:28:10,105 لقد رأينا الكثير جدا كل الأشياء أنها يمكن أن تفعل التي تشبه C، 562 00:28:10,105 --> 00:28:13,290 ويمكن القيام به من هيك أكثر من ذلك بكثير. 563 00:28:13,290 --> 00:28:16,950 >> ولكن لانها لغة كاملة، ونحن يمكن القيام البرمجة سطر الأوامر في ذلك. 564 00:28:16,950 --> 00:28:18,630 يمكننا تشغيل البرامج سطر الأوامر. 565 00:28:18,630 --> 00:28:22,580 كل ما هو مطلوب لتشغيل أمر برنامج الخط الذي هو مكتوب في PHP 566 00:28:22,580 --> 00:28:24,260 غير أن لديك مترجم PHP. 567 00:28:24,260 --> 00:28:27,460 لذلك نوع من مشابهة ل وجود مترجم على النظام الخاص بك 568 00:28:27,460 --> 00:28:31,100 إذا كنت ترغب في ترجمة التعليمات البرمجية C بك لتحويلها إلى ملفات قابلة للتنفيذ. 569 00:28:31,100 --> 00:28:33,810 تحتاج إلى أن يكون مترجم PHP موجود على جهازك 570 00:28:33,810 --> 00:28:37,330 بحيث يمكنك تفسير ملفات PHP. 571 00:28:37,330 --> 00:28:40,370 >> على افتراض انك لا، وعادة وهذا ما يسمى مترجم PHP، 572 00:28:40,370 --> 00:28:44,300 وانها عادة واحدة مع أكثر التنزيلات أو المنشآت من PHP 573 00:28:44,300 --> 00:28:47,430 التي يمكنك الحصول عليها عبر الإنترنت، وبالتأكيد اسم المترجم PHP 574 00:28:47,430 --> 00:28:49,550 لدينا في CS50، IDE. 575 00:28:49,550 --> 00:28:51,819 كل ما عليك القيام به هو نوع ملف بي. 576 00:28:51,819 --> 00:28:53,610 وما برنامجك تنوي القيام به هو انها 577 00:28:53,610 --> 00:28:55,360 الذهاب لتشغيل من خلال مترجم، انها 578 00:28:55,360 --> 00:28:58,040 الذهاب إلى تجاهل كل ما هو ليس في المسألة بين mark-- 579 00:28:58,040 --> 00:29:03,160 أو، زاوية قوس علامة استفهام بي، المحددات PHP، وطباعته، 580 00:29:03,160 --> 00:29:07,660 وسوف تفسير وتنفيذ التعليمات البرمجية داخل المحددات PHP الخاصة بك. 581 00:29:07,660 --> 00:29:12,850 >> لذلك دعونا البوب ​​إلى IDE CS50 و إلقاء نظرة على زوجين من ملفات PHP، 582 00:29:12,850 --> 00:29:19,850 تشغيل بضعة ملفات PHP، في واجهة سطر الأوامر من IDE CS50. 583 00:29:19,850 --> 00:29:22,100 لذلك نحن هنا في IDE CS50، ولقد اتخذت الحرية 584 00:29:22,100 --> 00:29:25,800 فتح ملف يسمى hello1.php. 585 00:29:25,800 --> 00:29:29,920 وعلى ما يبدو، فإن محتويات هذا ملف ليست سوى المحددات PHP هناك، 586 00:29:29,920 --> 00:29:32,220 وبين، صدى ("مرحبا، العالم"). 587 00:29:32,220 --> 00:29:34,710 هذا هو برنامج PHP بسيط جدا. 588 00:29:34,710 --> 00:29:37,670 أنا مجرد الذهاب إلى التمرير لأسفل لنافذتي المحطة هنا، 589 00:29:37,670 --> 00:29:44,320 وانا ذاهب لكتابة PHP hello1.php، تصل إلى تدخل. 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 لذلك هذا هو مماثل لقوله، مرحبا، فاصلة،٪ الصورة إذا كنا باستخدام printf في C. 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 لدي شيء وهذا ليس بين المحددات PHP. 622 00:31:04,270 --> 00:31:07,760 أنا مجرد طباعة out-- أو I بكتابته الآن، "ما اسمك؟" 623 00:31:07,760 --> 00:31:12,060 عندما يرى مترجم PHP ذلك، لا يوجد لديه فكرة عن كيفية تفسير ذلك كما PHP، 624 00:31:12,060 --> 00:31:15,060 وذلك بدلا من الفشل، انها مجرد الذهاب الى يبصقون عليه. 625 00:31:15,060 --> 00:31:19,010 >> لذلك تلاحظ في السطر 3 الآن، دعوتي ل يقوم readline، وليس هناك موجه بعد الآن. 626 00:31:19,010 --> 00:31:21,750 أنا مجرد الذهاب في الواقع عندما to-- المترجم PHP يرى هذا، 627 00:31:21,750 --> 00:31:23,400 انها سوف طباعة "ما اسمك؟" 628 00:31:23,400 --> 00:31:25,941 فإنه يرى، أوه، حسنا، here's-- كل شيء آخر سيكون 629 00:31:25,941 --> 00:31:29,970 تفسر على أنها PHP، لذلك لهذا السبب يعمل هذا. 630 00:31:29,970 --> 00:31:34,990 ليس لدي للمطالبة بالضرورة وto-- المستخدم داخل يقوم readline، 631 00:31:34,990 --> 00:31:37,490 أنا يمكن أن يكون مجرد أنها خارج من المحددات PHP 632 00:31:37,490 --> 00:31:41,490 والسماح للمترجم لطباعته للتو بالنسبة لي. 633 00:31:41,490 --> 00:31:45,364 >> لذلك لم يكن في الواقع لا تملك إلا لدينا مجموعة واحدة من المحددات PHP 634 00:31:45,364 --> 00:31:46,030 في البرنامج. 635 00:31:46,030 --> 00:31:49,887 هل يمكن أن يكون في الواقع العديد منهم، فتح وإغلاق لهم حسب الحاجة. 636 00:31:49,887 --> 00:31:51,720 لذلك دعونا نلقي نظرة في بضعة برامج 637 00:31:51,720 --> 00:31:55,070 في IDE CS50 أين نحن توضيح هذه الفكرة وجود 638 00:31:55,070 --> 00:31:58,376 مجموعات متعددة من PHP محدد. 639 00:31:58,376 --> 00:32:02,010 >> حسنا، لقد فتحت ملف دعا هنا add1.php. 640 00:32:02,010 --> 00:32:03,390 وتلاحظ ما يحدث هنا. 641 00:32:03,390 --> 00:32:08,077 فقط كما كان من قبل، ولدي PHP واحد مجموعة من المحددات. 642 00:32:08,077 --> 00:32:10,660 انا ذاهب لطباعة رسالة "من فضلك أعطني عددا." 643 00:32:10,660 --> 00:32:13,394 ثم انا ذاهب الى قراءة سطر و تخزينه في $ num1 متغير. 644 00:32:13,394 --> 00:32:14,810 ثم انا ذاهب لطباعة مرة أخرى. 645 00:32:14,810 --> 00:32:16,310 أعطني الرقم الثاني. 646 00:32:16,310 --> 00:32:20,450 قراءة سطر من المستخدم، متجر كل ما كتبته في في $ num2. 647 00:32:20,450 --> 00:32:23,980 إضافة بعضهم البعض، وتخزين تلك يؤدي في متغير يسمى $ المبلغ، 648 00:32:23,980 --> 00:32:26,180 ومن ثم طباعتها، إن " مجموع هذين الرقمين 649 00:32:26,180 --> 00:32:29,254 هي "، ومن ثم استجواب هناك $ مبلغ متغير. 650 00:32:29,254 --> 00:32:31,170 لذلك دعونا فقط تشغيل هذا من خلال مترجم 651 00:32:31,170 --> 00:32:33,720 لتأكيد أن هذا هو ما نتوقعه. 652 00:32:33,720 --> 00:32:37,540 فب add1.php. 653 00:32:37,540 --> 00:32:38,665 من فضلك أعطني رقم، 3. 654 00:32:38,665 --> 00:32:40,410 من فضلك أعطني الرقم الثاني، 4. 655 00:32:40,410 --> 00:32:43,370 مجموع هذين الرقمين هو 7. 656 00:32:43,370 --> 00:32:45,030 هذا هو 3 و 4. 657 00:32:45,030 --> 00:32:45,530 موافق؟ 658 00:32:45,530 --> 00:32:47,770 لذلك لا شيء رهيب يتوهم هناك. 659 00:32:47,770 --> 00:32:51,080 >> والآن دعونا فتح add2.php. 660 00:32:51,080 --> 00:32:54,460 هنا، لقد حصلت على زوجين من PHP مجموعات محددة هناك، أليس كذلك؟ 661 00:32:54,460 --> 00:32:59,107 خطوط 1، 3-- خطوط 1 و 3 ليس لديهم المحددات PHP. 662 00:32:59,107 --> 00:33:00,940 وذلك عندما مترجم يراهم، انها مجرد 663 00:33:00,940 --> 00:33:03,220 الذهاب إلى بصق بالضبط ما كنت قد كتبته هناك. 664 00:33:03,220 --> 00:33:05,011 بحيث حيث أنا تفعل كل ما عندي من المطالبة. 665 00:33:05,011 --> 00:33:11,220 على خطوط 2 و 4، ونحن نرى جدا $ مألوفا؟ فب نوع من المحددات، 666 00:33:11,220 --> 00:33:15,210 حتى هذين الخطين هي الذهاب لتنفيذ كما PHP. 667 00:33:15,210 --> 00:33:18,270 ثم في السطر 5، ولدي هذا شيء غريب هنا، أليس كذلك؟ 668 00:33:18,270 --> 00:33:20,480 هذا قوس الزاوية علامة استفهام علامة المساواة. 669 00:33:20,480 --> 00:33:22,660 حتى أنا تكبير أكثر قليلا. 670 00:33:22,660 --> 00:33:29,270 يمكنك ان ترى هذا هو ما أنا نتحدث عن الحق هناك، وهذا $؟ =. 671 00:33:29,270 --> 00:33:33,420 >> اتضح انه شائع بحيث السبب في أن نفتح الباب على مجموعة من PHP 672 00:33:33,420 --> 00:33:36,055 المحددات هي لطباعة قيمة. 673 00:33:36,055 --> 00:33:37,430 وهذا كل ما كنت تنوي القيام به. 674 00:33:37,430 --> 00:33:39,220 ولكن هناك حتى الاختزال لذلك. 675 00:33:39,220 --> 00:33:46,490 $؟ = هو PHP الاختزال لقوله شيء من هذا القبيل $؟ PHP صدى المبلغ 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 "أنت توالت"، وانه سيكون ل حساب بعض الأرقام العشوائية، وزارة الدفاع 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 من كوخ إلى أعلى ملف PHP لدينا. 714 00:35:40,026 --> 00:35:41,400 وأنا أعلم أنه نوع من كلمة سخيفة. 715 00:35:41,400 --> 00:35:44,540 انها قصيرة للتجزئة الانفجار. 716 00:35:44,540 --> 00:35:46,300 هذا هو أول حرفين هناك. 717 00:35:46,300 --> 00:35:50,030 تذكر نسميه تعجب في كثير من الأحيان دويا في علوم الكمبيوتر. 718 00:35:50,030 --> 00:35:51,690 كما أنه قد يكون لفرقعة حادة. 719 00:35:51,690 --> 00:35:53,273 هناك بضعة طرق لتفسير ذلك. 720 00:35:53,273 --> 00:35:57,320 ولكنه في الأساس نوع خاص القيادة أن مترجم PHP 721 00:35:57,320 --> 00:36:00,160 كما يفهم، أوه، أنا أريد لك لتنفيذ هذا البرنامج، 722 00:36:00,160 --> 00:36:05,250 وهو على ما يبدو / المستخدم / بن / PHP، التي هو في الواقع حيث مترجم PHP 723 00:36:05,250 --> 00:36:08,590 يعيش تحديدا على نظامنا. 724 00:36:08,590 --> 00:36:12,530 حتى it's-- ما يحدث هنا هو يفهم مترجم، أوه، 725 00:36:12,530 --> 00:36:17,270 أنا على ما يبدو من المفترض أن استخدام في هذا البرنامج لتشغيل هذا الملف. 726 00:36:17,270 --> 00:36:20,010 وذلك لأنها تتيح لك لتخطي خطوة 727 00:36:20,010 --> 00:36:22,979 من الاضطرار إلى القول فب 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 استخدام الأمر شمود لتغيير أذونات الملف. 756 00:37:59,280 --> 00:38:03,845 >> كما اتضح، PHP العادية لا يمكن أن يكون مجرد أعدم الملفات. 757 00:38:03,845 --> 00:38:06,970 ويمكن تفسيرها، ولكن نحن القيام بشيء مختلف قليلا هنا. 758 00:38:06,970 --> 00:38:07,761 نحن تنفيذه. 759 00:38:07,761 --> 00:38:12,970 ولذا فإنني بحاجة إلى إضافة إذن التنفيذ، شمود + X لadd3. 760 00:38:12,970 --> 00:38:15,680 ثم أستطيع أن أقول ./ add3. 761 00:38:15,680 --> 00:38:16,860 من فضلك أعطني رقم. 762 00:38:16,860 --> 00:38:18,060 5، 6. 763 00:38:18,060 --> 00:38:20,490 مجموع هذين الرقمين هو 11. 764 00:38:20,490 --> 00:38:26,530 >> وبالمثل، لقد chmoded بالفعل dice2، حتى أستطيع أن اكتب فقط ./ dice2، 765 00:38:26,530 --> 00:38:31,260 كنت توالت 1 و 1، كنت توالت 5 و 4، وهلم جرا. 766 00:38:31,260 --> 00:38:33,680 >> ولهذا إلى حد كبير فكرة تركيب PHP، أليس كذلك؟ 767 00:38:33,680 --> 00:38:35,221 هناك الكثير من خلال الحصول على، وأنا أعلم. 768 00:38:35,221 --> 00:38:39,160 ولكن نأمل كنت قد رأيت الآن أن PHP ليس حقا أن تختلف عن C 769 00:38:39,160 --> 00:38:43,670 ويعطي حقا لنا القدرة لنأخذ الامور تصل درجة أو اثنين. 770 00:38:43,670 --> 00:38:48,230 ليس لدينا حقا ما يدعو للقلق كثيرا about-- لم نفعل ذلك حقا 771 00:38:48,230 --> 00:38:51,605 داعي للقلق كثيرا حول تفاصيل على مستوى منخفض نحن 772 00:38:51,605 --> 00:38:52,980 كان ما يدعو للقلق مع C، أليس كذلك؟ 773 00:38:52,980 --> 00:38:56,170 يمكننا أن نركز على أعلى الاشياء المستوى الذي PHP 774 00:38:56,170 --> 00:39:01,090 يسمح لنا أن نفعل، واتخاذ ل منح أنها ستعمل بالنسبة لنا. 775 00:39:01,090 --> 00:39:04,350 لذلك يعطينا القدرة الآن، الانتقال من C إلى PHP، 776 00:39:04,350 --> 00:39:08,280 لجعل البرامج التي هي أكثر كثيرا تعقيدا وربما الكثير أكثر قوة. 777 00:39:08,280 --> 00:39:13,070 >> لذلك آمل أن يكون لديك متعة العمل مع PHP، وأنا دوغ ويد. 778 00:39:13,070 --> 00:39:15,050 هذا هو CS50. 779 00:39:15,050 --> 00:39:17,637