DOUG لويد: لذلك قمنا فعلت الكثير من العمل في C، وC هو رائع حقا لغة لأنه يتيح لك القدرة على الغوص حقا مستوى منخفض في البرامج الخاصة بك. نحصل على فعل الأشياء كما دقيقة حقا كما التلاعب بايت من الذاكرة الفردية. يذكر أن مؤشرات حقا تسمح لنا أن المرونة. ولكن هل نحن بحاجة دائما أن يكون هذا المستوى غرامة الحبوب من التفاصيل في برامجنا؟ ربما لا، أليس كذلك؟ وإذا كنا في طريقنا لديك مفاضلة بين أن تكون قادرة على القيام حقا، حقا أشياء دقيقة وحقا، حقا أشياء كبيرة أننا لا يجب أن نفكر حول، ونحن لم يكن لديك لتنفيذ هذه الأفكار الكبيرة حقا إذا انهم بنيت بالفعل في بالنسبة لنا، عموما لبناء كبيرة برامج أو مشاريع كبيرة، نحن المحتمل أن يخطئ على الجانب من بعد المزيد من الأشياء اللغة التي بنيت في بالنسبة لنا، بدلا من الاضطرار الاشياء على مستوى منخفض. وهذا هو المكان الذي يأتي PHP حقا في. الآن، واحدة من الأسباب أن نعلمه PHP في CS50 هو أنه مستوحى بشكل كبير من قبل C. وفي الواقع، في رأيي، هناك حقا اثنين اللغات الاصلية التي شائعة جدا في هذه الأيام. C واللثغة. وانهم اللغات الاصلية لأن كل البرمجة الحديثة الأخرى اللغة التي طورت منذ ذلك الحين مستوحاة من جانب واحد أو نحويا الآخرين. PHP هي مشابهة جدا نحويا لC، في حين أن اللغات مثل مخطط، على سبيل المثال، والتي كنت قد سمعت من، مستوحى بشكل كبير من قبل لغة دعا اللثغة، التي هي لغة قديمة. لذلك السبب نعلمه PHP في CS50 هو أنه، من خلال معرفة C كما في الأساس كما كنت تفعل في هذه المرحلة، التقاط PHP، والتي تعطيك القدرة على فعل الأشياء مستوى أعلى من ذلك بكثير من C لا، ليس أن الكثير من العقبة، لأن لديك بالفعل الفكرة الأساسية لبناء الجملة. لقد C حول ما يقرب من 45 سنوات في هذه المرحلة. لقد PHP حول لنحو 20 عاما. وفي ذلك 25 عاما بين والمبرمجين قرر أن لو كانوا كثيرا بدلا ديهم قدرات عالية المستوى، وأخطاء وصراعات من 20 عاما بين أدى إلى PHP وغيرها من اللغات الحديثة. PHP في خيار كبير من لغة البرمجيات أن allow-- ل برنامج هكذا- يضرب أين أنت تحتاج إلى فعل الأشياء التي في C هي في الواقع معقدة. هكذا على سبيل المثال، العمل مع السلاسل في C غير معقدة للغاية، ل كما نعلم، السلاسل في C هي في الحقيقة مجرد مصفوفات من الحروف. انها ليست نوع البيانات المضمنة. أو ربما أكثر جوهرية، شيء نحن لا تغطي حتى في C، ماذا لو ما عليك القيام به بعض شبكات الكمبيوتر؟ حسنا؟ C لديه القدرة على القيام بذلك، ولكن من ذلك غامضة وصعبة جدا القيام به في الواقع. لن يكون ذلك جميلا إذا كان كانت اللغة، وسيلة المدمج في سهلة لتنفيذ الشبكات؟ وPHP هي لغة التي تجعل من ذلك، أو تسهل ذلك، لا بأس به أكثر من ذلك. كما قلت، PHP جدا مستوحى بشكل كبير بواسطة C. بناء الجملة هي مشابهة جدا. ولذا يجب أن نأمل جعل الانتقال من واحدة إلى أخرى ليونة قليلا من بعض قد تكون اللغات الأخرى. للبدء في كتابة PHP، مجرد فتح ملف بامتداد الملف فب. من الناحية الفنية وهذا ليس مطلوب في الواقع، ولكن إذا كنت تريد أشياء مثل تركيب تسليط الضوء في IDE، لذلك هذا النوع أسماء أو أسماء المتغيرات، وظائف، تعلمون، فإن كلمات اللغة وتبرز في لون محدد، أنت بوجه عام تريد تسمية الملفات مع ملحق ملف معين. لذلك قمنا تسمية الملف لدينا مع فب التمديد، ولكن بعد ذلك أيضا مع PHP، كل رمز PHP نكتب في ذلك الملف يجب أن يكون مغلق في هذه PHP المحددات التي نراها هنا على الشاشة. قوس الزاوية؟ فب لبدء. ثم نكتب كل PHP لدينا التعليمات البرمجية التي نريد بينهما. وثم ؟ قوس الزاوية لإغلاق. إذا لم نفعل ذلك، ثم ماذا سيحدث؟ انها لن تحطم الطائرة. انها ليست الذهاب الى الخراب حقا برنامجنا. لكنه لن يكون لها التأثير الذي نريده. ما الذي سيحدث، حقا، هو أننا عندما نحاول وتشغيل هذا البرنامج، كل شيء ليس بين تلك المحددات سوف يتم طباعتها حرفيا. انها ليست الذهاب الى في الواقع تنفيذ التعليمات البرمجية، انها سوف فقط طباعته حرفيا. الآن لماذا هو كذلك؟ هكذا C هو ما يعرف كلغة المترجمة. وربما كنت على دراية الخطوة جعل البرامج الخاصة بك، تحويل ملفات .C والملفات .H في احد قابل للتنفيذ مع make، على وجه الخصوص باستخدام رنة كما مترجم لدينا. PHP، على الرغم من لا يكون هذا ما يعادلها. PHP هو ما يسمى اللغة تفسيرها. وماذا يعني ذلك؟ حسنا، هذا يعني أننا لم يكن لديك لتحويل كود مصدرنا إلى أصفار ومنها مسبقا. بدلا من ذلك، هناك برنامج، وهو ما يسمى أيضا PHP، أن يفهم PHP و يمكن نوع من جعله على الطاير. هذا ليس حقا دقيقة بالضبط، ولكن هذا التشبيه جيدة ما يحدث. انها تفسير تلك أصفار ومنها على الطاير. وحتى إذا كان لا يعرف كيفية معالجة شيء، إذا لم تكن تعرف كيفية عملية PHP، وربما كنت أردت أن أنقل هذا النص هناك، أليس كذلك؟ ربما كنت تريد أن تضع التعليمات البرمجية في هناك، حتى لو أنها ليست بين PHP-- المحددات PHP. But-- لذلك لن لحذف لانها لكم، انها مجرد الذهاب إلى تجاهل الأساس هو. لذلك سيكون لطباعة بها إلى الشاشة. هذا يبدو وكأنه انها سيئة الشيء، ولكن في الواقع انها ستكون حقا شيء جيد، وسنقوم ترى عندما نتحدث عن تطوير الشبكة PHP، لأنه يعني ما في وسعنا بعثر PHP و HTML. يمكننا استخدامها معا ل إنشاء صفحة على شبكة الإنترنت أكثر ديناميكية. ولكن أكثر على ذلك في الفيديو على الشبكة العالمية للتنمية PHP. فما هو بناء جملة PHP؟ هذا ما هو هذا الفيديو هو كل شيء. دعونا نتحدث عن ذلك. حتى أن تبدأ، والمتغيرات. توجد متغيرات PHP. هناك اثنين فقط كبيرة الاختلافات من C. الأول هو أن هناك لا يوجد نوع محدد. نحن لا يجب أن أقول الباحث، شار، تطفو، كل هذه الأشياء. ليس لدينا للقيام بذلك بعد الآن. PHP هي لغة حديثة. فإنه يمكن معرفة ما كنت تحاول أن تفعل أو تقديم الأفضل اعتقد على ما كنت تحاول القيام به. ولهذا لطيف جدا. والشيء الآخر هو أن كل متغير أسماء يجب أن تبدأ مع علامة الدولار. هذا مجرد شيء لتعتاد على. انها غريبة بعض الشيء، ل انها بحيث يمكن أن نفهم PHP ما هو متغير وما هو ليس كذلك. لذلك كل اسم المتغير يبدأ بعلامة الدولار. حتى في C يمكن أن نقول شيئا مثل هذا، الباحث س = 54. ليس لدينا للقيام بذلك بعد الآن في PHP. يمكننا أن نقول فقط $ س = 54. ويمكننا القول، على سبيل المثال، في C، إذا كنا قد شملت رطل من .H CS50 ملف الرأس، يمكننا القول سلسلة عبارة = "هذا هو CS50". نحن لا يجب أن نفعل ذلك في PHP، وإن كان. يمكننا أن نقول فقط $ العبارة = "هذا هو CS50". وفي الواقع، سلسلة الآن نوع البيانات المضمنة في PHP، أو بالأحرى تفهم PHP ما هي السلسلة. انها منفصلة عن مجموعة من الحروف كما هي في C. جميع المفضلة لديك عبارات شرطية من C لا تزال متاحة لتتمكن من استخدامها. لذلك لا تمر بمرحلة انتقالية كبيرة هناك. يمكننا say-- أننا يمكن أن يكون إذا كانت تصريحات من هذا القبيل. إذا $ ص 43، أو $ ض = 15. ذلك أن واضحة جدا. فإننا يمكن أن يكون إذا وآخر. فإننا يمكن أن يكون إذا وآخر إذا. وتلاحظ شيئا لطيفة جدا هنا، وهذا هو نوع واحد من تلك مزايا PHP مقابل C، لاحظ ما وظيفة نحن لا تستخدم هنا؟ نستخدمه == لمقارنة متغير، اسم $، إلى سلسلة. ونحن لا يمكن ان نفعل ذلك في C، أليس كذلك؟ كان علينا أن استخدام دالة يسمى StrComp أو StrEndComp أو أي من أبناء المرتبطة بها. وهكذا بالفعل نرى هذه المزايا. نحن لا يجب أن نفعل شيئا سخيفة أو ربما unintuitive كما استدعاء دالة يسمى StrComp إذا أريد فقط لاختبار ما إذا كانت قيمة تساوي سلسلة. أنا يمكن أن تستخدم فقط يساوي متساوين، كما يمكن أن أفعل أي شيء آخر. لذلك هناك ميزة. في بعض الأحيان، بالمناسبة، كنت قد رؤية آخر كلمة إذا واحد، ELSEIF. وهذا موافق في PHP كذلك. حتى في بعض الأحيان قد ترى ذلك. انها ليست خطأ مطبعي. PHP يفهم الواقع ELSEIF. أنا لا أعرف لماذا قررت لتنفيذ ذلك، ولكن كما رأينا عدة مرات في جميع أنحاء لدينا أشرطة الفيديو حتى الآن، نحن المبرمجين الحب إذا يمكننا أن نفعل الأشياء بسرعة، حتى التخلص من هذه المساحة على ما يبدو ميزة كبيرة. ولهذا إذا وELSEIF. لدينا أيضا المشغل الثلاثي، استدعاء علامة استفهام القولون، لشكل قصيرة حقا إذا آخر أو مشروطة المتفرعة. وعلى ما يبدو، في هذا، ما نحاول القيام به هنا تم تعيين متغير $ إلكتروني إما صحيحة أو خاطئة، اعتمادا على ما إذا فار $ هو حرف أبجدي. لذلك هذا هو مماثل جدا لisalpha أننا على دراية من C. هذا هو نوع من ما يعادل في PHP. وظيفة على ما يبدو دعا ctype_alpha، ولكن هذه هي الطريقة التي نفعل ذلك في PHP. لذلك كل هذا سيكون هو، إذا $ فار هو بريد إلكتروني، $ إلكتروني صحيح. إذا $ فار ليس إلكتروني، $ إلكتروني غير صحيح. لدينا أيضا البيانات التبديل لا يزال. ونذكر هؤلاء من C كذلك. في أعلى جدا هناك، وهذا ما نقوم به شيء من هذا القبيل الحصول على الباحث أو الحصول على السلسلة. لذلك PHP له أن بنيت فيها نحن لسنا بحاجة المكتبة CS50 بعد الآن. يمكننا فقط استخدام وظيفة يقوم readline. ما الذي يجري القيام به هو طباعة من الرسالة، "دولتكم، من فضلك "، ثم امض موجه انتظار المستخدم لإدخال بعض المعلومات. لاحظ الآن ماذا يمكننا القيام به مع التبديل. إذا كنت قد استخدمت من قبل، تذكرون أن التبديل يقتصر إلى حد كبير إلى أعداد صحيحة و حرفا، ولكن الآن يمكننا استخدام السلاسل. في واقع الأمر، وبيان التبديل في PHP هو أكثر قليلا جدا مرنة من ابن عم لها من C. حلقات. تماما مثل الشرطية، كل من القديمة المفضلة الخاصة بك لا تزال هناك. لدينا في حين الحلقات التي تعول 1-100 في هذه الحالة. لقد القيام به أثناء الحلقات التي تعتمد 1-100، ونحن لدينا لحلقات التي تعتمد 1-100. لذلك لا قفزة كبيرة هناك. بناء الجملة هي جميلة بالضبط الشيء نفسه، إلا الآن نستخدمه الدولار علامة متغير بدلا إعلان المتغيرات عدد صحيح أو شيء من هذا القبيل لعدادات لدينا. هنا حيث الامور ل أفضل بكثير من C، وإن كان. المصفوفات. لذلك أذكر عندما كنا نتحدث عن C، من أجل بالنسبة لنا أن ينمو ويتقلص مجموعات من المعلومات، نحن بحاجة إلى نوع من التقصير لهذه الفكرة من قائمة مرتبطة، حيث أمكن إصلاح صفائف C في الحجم. ونحن لا يمكن تقليصها. ونحن لا يمكن أن تنمو لهم. كان علينا أن تخصيص الذاكرة وتفعل كل هذا الجنون أو استخدام القوائم المرتبطة، والتي تناول تماما مساحة أكثر قليلا. ولكن في PHP، المصفوفات هي ليست ثابتة في الحجم بعد الآن. ويمكن أن تنمو وأنها يمكن أن يتقلص. ذلك مرة أخرى، هذه السنوات ال 20 التي كانت موجودة بين الإصدار الأول من C وأول إصدار PHP، قررنا ذلك، كما تعلمون، سيكون أمرا رائعا حقا إذا كان لنا أن نفعل ذلك. وهكذا نفذنا هذا. لذلك ليست ثابتة المصفوفات PHP في حجم، ولأن PHP لا حقا لدينا مبرمج الجبهة التي تواجه مفاهيم أنواع، لا يمكننا خلط أنواع البيانات في المصفوفات لدينا أيضا. لذلك ليس لدينا حتى لاستخدام كل أعداد صحيحة أو جميع النقاط العائمة، فإننا يمكن أن يكون مزيجا من جميع أنواع مختلفة في مجموعة واحدة. تعلن مجموعة غير جميلة واضحة. انها تماما مثل أي متغير آخر. $ NUMS = مجموعة (1، 2، 3، 4)، مجموعة كونها وظيفة المضمن في PHP التي وإنشاء صفيف بالنسبة لك. وهذا يخلق مجموعة من أربع قيم، الأرقام في هذه الحالة، ودعا $ NUMS. وهناك أكثر من طريقة للقيام بذلك. ونحن في طريقنا ل نرى هذا كثيرا في PHP. وقد تم تطوير PHP من قبل العديد من مختلف الناس وتنمو وتنمو وتنمو. هناك عادة لا اثنين فقط أو ثلاث طرق لفعل شيء في PHP، هناك عادة مثل 10 أو 20. هنا مجرد شائعة طريقة تعريف صفيف. $ NUMS = مربع قوس 1، 2، 3، 4. لذلك هذا هو نوع من مشابهة لزاوية C ل br-- تدوين متعرج، إلى حد ما. $ - أو أنه سيكون NUMS الباحث مربع بين قوسين يساوي متعرج 1، 2، 3، 4. في PHP انها $ NUMS = مربع بين قوسين 1، 2، 3، 4. ولكن كلا من هذه الأمثلة هنا تعطيني مجموعة من أربعة في هذه الحالة صحيحة. ماذا لو أريد أن تك شيئا الآن؟ حسنا يمكنني أن أقول فقط $ NUMS 4، التي مرة أخرى، نحن لا نزال العد من 0 هنا في PHP، سيكون خامس عنصر من عناصر المصفوفة. يمكنني أن أقول ذلك. أنا لا أريد أن يعاني ثوانى خطأ، لأن مجموعة بلدي هي فقط الذهاب إلى النمو لاستيعاب ذلك. هذا لطيف جدا، أليس كذلك؟ في واقع الأمر، أنا لا تحتاج حتى ل تحديد المكان الذي تريد وضعه. يمكنني أن أقول هذا وفقط تك ذلك الحق حتى النهاية، أو أستطع حتى مجرد يقول $ NUMS 20 أو 1000. لا يهم حقا. انها لا تزال مجرد الذهاب الى تك ذلك الحق حتى النهاية. لذلك أنا يمكن أن تنمو، وas-- نحن لن تغطية ذلك هنا، ولكن يمكنني أن لصق أو الشريط عناصر من مجموعة وكذلك، ومجموعة سينكمش لاستيعاب أن الآن في عداد المفقودين أو فارغة الفضاء. هناك طريقة أخرى لتك شيء على صفيف، وهي وظيفة تسمى array_push. ذلك مرة أخرى، لمجرد هذه الفكرة من كونها قادرة على فعل الأشياء بطرق مختلفة عديدة. لذلك رأينا ثلاث طرق مختلفة الآن لتك عنصر آخر على صفيف. ولذلك فإن هذا يضيف عنصرا آخر إلى نهاية المصفوفة $ NUMS. ويمكننا خلط أنواع البيانات المتوفرة لدينا. لذلك يمكن أن يكون لديك مجموعة من لا 1، 2، 3، 4، ولكن 1، صحيح، 3، 4، حيث الصحيح هو قيمة منطقية، ومن ثم إذا كنت تريد أن تك على عنصر آخر إلى ذلك مجموعة، ربما سلسلة، السلسلة "خمسة" أنا يمكن أن تفعل ذلك. والآن سوف مجموعة بلدي تكون 1، صحيح، 3، 4، خمسة. كلمة خمسة، وليس صحيحا 5. لذلك الكثير من المرونة هناك. يحصل على المرونة حتى أفضل، على الرغم من لأن PHP يحظى بدعم لشيء تسمى مجموعة النقابي. ونحن نوع من تحدث غامضة صفائف حول النقابي في C في سياق الجداول التجزئة، ل ما صفائف النقابي حقا كلها حول نحرز المفتاح تعيينات زوج قيمة. وفي هذه الحالة، إذا keys-- نحن على دراية صفائف من C، مفاتيح أرقام مؤشر. 0، 1، 2، 3. والقيم هي ما نجد أن مجموعة 0، مجموعة 1، مجموعة 2، وهلم جرا. وبالتالي فإن مفاتيح الأرقام القياسية، والقيم ما هو موجود في هذا الموقع مجموعة، التي يحددها هذا الفهرس. ولكن في PHP، ونحن لم يكن لديك للقيام بذلك فكرة مجموعة 0، مجموعة 1، مجموعة 2 أي أكثر من ذلك. يمكننا الآن استخدام الكلمات الفعلية لتعيين مفاتيح القيم. وهكذا أستطيع أن أقول شيئا من هذا القبيل. أنا يمكن أن تخلق مجموعة باستخدام مربع تركيب شريحة النحو التالي. $ البيتزا = قوس مربع "الجبن"، ومن ثم هذا النوع من التدوين سهم مزدوج، 8.99 "، ببروني،" السهم 10.99-- 9.99، وهلم جرا. وهكذا ما الذي يحدث هنا؟ ماذا أفعل في الواقع؟ أنا خلق الرئيسية تعيينات زوج قيمة. وذلك بدلا من أن تقول، على سبيل المثال، البيتزا 0، وقطع 1، 2 البيتزا، يمكنني الآن القول البيتزا الجبن والبيتزا ببروني، والرجوع إلى القيم المرتبطة بها. حتى هنا لدينا مفاتيح باللون الأخضر. الجبن، ببروني، الخضار والجاموس الدجاج. هنا هو السهم الذي يجعل هذا التعيين زوج قيمة المفتاح. ثم هنا هي القيم في هذا الموقع مجموعة. لذلك فمن مثل قوله مجموعة 0 يساوي 8.99. والمفتاح هو 0. القيمة هي 8،99. يمكنني الآن القول الجبن مجموعة، أو في هذه جبن البيتزا حالة والجبن هو مفتاح، وما أجد في جبن البيتزا هو 8.99. هذا هو القيمة التي أجد هناك. لذلك أستطيع أن أقول أشياء مثل. $ البيتزا الجبن = 7.99. يقول أواجه بيع. أريد dis-- أريد أن إسقاط سعر البيتزا الجبن. أو أنا يمكن استخدام الخضار البيتزا كجزء من شرط، أو أنا يمكن أن تضيف عنصرا جديدا إلى بلدي مجموعة، تماما مثل ما يمكن القيام به في وقت سابق. ويمكنني أن أضيف عنصر جديد في هذا مجموعة النقابي مع "بيكون" الرئيسي وقيمة 13.49. ولكن هذا النوع من يدخل مشكلة، إذا كنت تفكر في ذلك لفترة ثانية. كيف يمكننا أن تكرار خلال هذه المجموعة؟ الصحيح؟ في C، سيكون لدينا فقط للحلقة، عادة، أن سيرشح نفسه من 0 إلى حجم المصفوفة ناقص 1. مجموعة لديها عناصر ن في في، ل المؤشرات الصحيحة هي من 0 إلى ن ناقص 1. حتى نتمكن من استخدام لحلقة ل خطوة من خلال كل عنصر واحد. ولكن هذا ليس حقا وكذلك بعد الآن، أليس كذلك؟ الآن حيث لدينا زوج قيمة المفتاح تعيينات حيث المفاتيح هي الكلمات، كيف يمكننا تكرار عبر كل من الكلمات؟ حسنا، لحسن الحظ، PHP لديها وسيلة للتعامل مع هذا أيضا، ولذا فإننا سوف القفز مرة أخرى لحلقات لثانية واحدة لإدخال نوع الرابع من حلقة موجود في PHP دعا حلقة foreach. وما يفعله هو حلقة foreach انها في الاساس نفس الفكرة. يمكنك استخدامها لأي نوع من مجموعة. ولكنه في الاساس نفس الفكرة باعتبارها لحلقة، باستثناء بدلا من استخدام الأرقام القياسية، أنت فقط يكون بناء الجملة هذا غريب حيث استدعاء كل عنصر واحد اسم لأغراض هذه الحلقة. حتى في هذه الحالة، foreach ($ مجموعة كما $ مفتاح). في الأساس، كما أن الملاحظات تعليق، داخل ذلك حلقة Foreach، انها سوف تذهب على كل واحد عنصر $ مجموعة، وهو عادة ستكون مجموعة النقابي، ولكن يمكن أن يكون حقا أي نوع من مجموعة التي تريدها في PHP. وفي كل مرة أنه في حلقة for كنت قد وقال $ مجموعة أقواس معقوفة $ ط، هل يمكن أن نقول فقط $ المفتاح. بحيث يصبح $ مفتاح مستعار لكل مؤشر بك PHP النقابي مجموعة، وهكذا يمكن استخدامه من هذا القبيل. هكذا على سبيل المثال، لدينا حصلت الآن لدينا البيتزا مجموعة. لقد نوع من مطوي في الزاوية هناك حتى نتمكن من استخدامها للقيام مثال سريع. إذا قلت foreach ($ البيتزا كما $ البيتزا)، حسنا، ما الذي يحدث؟ حسنا، انا ذاهب الى تكرار خلال كل عنصر واحد من مجموعة $ البيتزا، وبذلك، وانا ذاهب للاتصال كل عنصر، عندما أكون في الداخل من الجسم لذلك لحلقة، $ البيتزا. ولهذا النوع من الوقوف في، أذكر، أن $ البيتزا هو في موقف لقوله $ البيتزا قوسين معقوفين $ ط إذا كنا نستخدمها لحلقة، حيث نحن يمكن أن تذهب من $ ط = 0 ل، في هذه الحالة، $ ط = 3. إذا لم يكن لدينا أزواج قيمة المفتاح هنا، وهذا سيكون العنصر 0، 1، 2، 3، وسوف نستخدم لحلقة للذهاب $ 0 البيتزا، البيتزا $ 1، البيتزا $ 2، $ البيتزا 3. وحتى الآن $ فقط البيتزا وتستبدل هذا المفتاح الفردية. ذلك ما يتم هذا الانتقال لطباعة؟ أنا طبع $ البيتزا. ما أنا ذاهب للعثور على at-- إذا كنت تطبع $ البيتزا، $ أنا؟ الصحيح؟ إذا أنا ذاهب للطباعة العنصر إيث من البيتزا، ما أنا ذاهب لطباعة؟ انا ذاهب لطباعة القيم في هذا المكان، أليس كذلك؟ مثل إذا كنا نفعل هذا في سياق C، نحن لا نستخدم عادة مكرر لدينا متغير، كثافة العمليات ط = 0، وأنا أقل من 3، ط ++، لطباعة 0، 1، 2، 3. نحن طبع مجموعة 0، مجموعة 1، 2 مجموعة، مجموعة 3. وذلك ما يطبع من ذلك هو هذا. انها قائمة الأسعار. 8.99، 9.99، 10.99، 11.99. الآن ملاحظة سريعة هنا. حلقة foreach لا يعني بالضرورة طباعة الامور في النظام. لا انها مضمونة. يفعل عادة. عادة أنها تقوم على الترتيب العناصر التي تضاف إلى مجموعة، حتى مجرد تحمل ذلك في الاعتبار. قد لا يكون في محله. ولكن حلقة foreach سوف أعاد عبر كل عنصر واحد الصفيف في السؤال. في هذه الحالة، مرة أخرى، أن الصفيف $ البيتزا. يمكنني تغيير لغوي، وعلى الرغم من ذلك، إذا أريد كل من مفتاح وقيمة. بدلا من أن تقول $ البيتزا كما $ البيتزا، ويمكنني أن أقول هذا. واذا نظرتم الى ما لدي مظللة باللون الأخضر هنا، يبدو وكأنه رسم الخرائط زوج قيمة المفتاح. وحتى إذا you-- حتى لو لم تكن تماما متأكدا من أنه سيفعل، ربما يمكنك تخمين أن $ تحتل المرتبة الاولى هو الذهاب أن يكون المفتاح في هذه الحالة و $ السعر سيكون القيمة. لذلك أنا الآن استبدال كل عنصر من $ البيتزا كزوج قيمة المفتاح، والآن أستطيع أن أشير إلى مفتاح و القيمة، التي قد تكون في متناول اليدين، على سبيل المثال، على النحو التالي. "A كله" - وهذا هو الكثير من طباعة مستمرة here-- "ككل" تتصدر "البيتزا تكاليف $" السعر، ومن ثم I طباعة فترة ومائل ن. وحتى الآن، لاحظ مرة أخرى لدي الوصول إلى مفتاح، $ تحتل المرتبة الاولى، وقيمة، $ سعر. لذلك يمكنك تخمين ما هو هذا يجري لطباعة؟ هناك الكثير من التصريحات الطباعة، ولكن هناك واحد فقط مائل ن، لذلك سيكون لطباعة شيء على وentire-- على سطر واحد من التعليمات البرمجية. اذا كنت استطيع الرجوع إلى المفتاح والقيمة، ثم الآن، بدلا من مجرد القدرة لطباعة الأسعار، يمكنني طباعة شيء من هذا القبيل. "بيتزا جبن كامل تكاليف 8،99 $." والآن أنا باستخدام كل من keys-- الجبن، ببروني، الخضار، الجاموس chicken-- والقيم. 8.99، 9.99، 10.99، 11.99 حتى هذا هو مجرد وسيلة مختلفة للقيام حلقة foreach أنه بدلا من فقط مما يتيح لك الوصول إلى القيم، أنه يعطي فقط you-- أنها تعطيك الوصول إلى المفاتيح والقيم. لذلك طبع المعلومات. لقد فعلت ذلك عدة طرق مختلفة، قد لاحظوا. الوظيفتين لقد المقام الأول شهدت هي الطباعة والصدى. والى حد كبير جميع المقاصد و الأغراض، انهم بالضبط نفس الشيء. They're-- هناك دقيق جدا الفرق الذي لا يستحق حتى الدخول، ولكن أساسا في كل مكان يمكنك استخدام الطباعة التي ربما يمكن استخدام صدى كذلك. وهذا ليس اثنين فقط. PHP لديها الكثير من مختلفة طرق لطباعة الامور، وكما أن لديها وسائل لدمج المتغيرات في منتصف السلسلة. لذلك نذكر من C، هل نتذكر ما وظيفة يمكننا استخدامها لتحل محل المتغيرات إلى الأشياء التي تريد طباعتها؟ ربما كنت تستخدم هذا تعمل الكثير جدا. printf، أليس كذلك؟ لذلك هذا هو ما كان لدينا قبل الداخل من سياق حلقة foreach لدينا. كان لدينا هؤلاء الخمسة عبارات الطباعة منفصلة، لأن ذلك كان فقط طريقة أنا حقا أعرف في ذلك الوقت كيفية طباعة الرسائل. لم أكن أعرف كيفية دمج $ متغير تحتل المرتبة الاولى في قانون بلدي PHP. حسنا، إذا كنت أخذت مجرد تخمين البرية، printf، فإنه في الواقع قد عملت. printf هي وظيفة التي يمكن استخدامها في PHP، تماما كما كنت ويمكن استخدامه في C. ولذا فإن شيئا من هذا القبيل، printf، مرة أخرى، نحن على دراية بذلك. يتم استبدال الأول٪ الصورة مع قيمة $ تحتل المرتبة الاولى. يتم استبدال الثاني ق٪ مع قيمة $ سعر. وحتى أنا استجواب، الذي هو مجرد وسيلة الهوى من يقول أنا إصرارها على المتغيرات في هذا الموقع. لذلك أنا توصيل $ تحتل المرتبة الاولى حيث أحمر٪ s غير و$ السعر حيث الزرقاء٪ الصورة هو، ثم أود أن أحصل على الرسالة، "بيتزا جبن كامل تكاليف 8،99 $." ليس الطريقة الوحيدة التي يمكنني القيام بذلك، وإن كان. ربما كنت ترغب في استخدام هذا الأسلوب. هذا هو في الواقع ما هو الأكثر شيوعا دعا استجواب متغير. يمكنني استخدام الصدى. أنا يمكن استخدام الطباعة أيضا، كما سنرى. ولكن ما يحدث هنا؟ أولا وقبل كل شيء، لا بد لي من الهروب من الدولار. لأن تذكر، عندما كنا في الواقع طبع أسعار البيتزا، كنت في الواقع تهيئة لهم كما الأرقام النقدية مع علامة الدولار. لكننا باستخدام علامات الدولار أيضا لتمثيل أسماء المتغيرات في PHP، وعلى وجه الخصوص عندما أكون باستخدام هذا الأسلوب من مجعد متغير هدفين طريقة الاستجواب، ولست بحاجة للهروب علامة لي الدولار لذلك لا أعتقد أنني أتحدث عن متغير. انها تسير فعلا، حرفيا طباعة علامة الدولار. ذلك النوع من مقايسة ل ما تراه في النهاية هناك. لم يحدث ذلك فعلا طباعة مائل ن، أليس كذلك؟ فإنه يطبع من حرف سطر جديد. هذا is-- انها لن الدولار مائل الطباعة، انه سيكون لطباعة فقط حرف علامة الدولار. نفس الفكرة. الهروب متواليات، ما وتسمى هذه الأشياء. ولكن لاحظ أنني لا تفعل أي نوع من التبديلات٪ الصورة، أنا مجرد توصيل حرفيا في هذه المتغيرات. وذلك في this-- ما سيحدث هنا غير أن قيمة $ topping-- مرة أخرى، فقط تمشيا مع ما كنا سوف نتحدث عن الجبن far-- حتى الحصول على في الوتر هناك. و$ السعر سيكون أي قيمة غير في البيتزا، بين قوسين معقوفين، الجبن، الذي كان 8.99. وحتى هذا من شأنه أيضا طباعة خارج "بيتزا جبن كامل تكاليف 8،99 $." وكما قلت، وأنا يمكن أن تستخدم طباعة هنا بدلا من الصدى، وظائف تكون بالضبط نفس الشيء. فإنه طباعة الشيء نفسه. هناك طريقة أخرى للقيام بذلك، وهذا هو ميزة أخرى من PHP تعمل مع السلاسل. يمكننا أن نفعل سلسلة سلسلة. يمكننا أن نفعل هذا في C، أيضا، باستخدام وظيفة تسمى strcat، ولكن مرة أخرى، وكان لأننا استدعاء وظائف منفصلة. وكان هذا كله فوضى القيام به. كان علينا أن الجنيه تشمل string.h. وكان الإنتاج، أليس كذلك؟ ولكن الآن أستطيع أن مجرد استخدام هذا المشغل نقطة لسلسلة السلاسل معا. لذلك أنا وصل "ككل" و ثم مهما كانت قيمة $ تحتل المرتبة الاولى هو، ثم آخر سلسلة "تكاليف البيتزا $" ووصل بعد ذلك أيا كان قيمة $ السعر هو، ثم في النهاية أنا تغير اتجاهها في الفترة مائل ن. وحتى هذا من شأنه أيضا طباعة "ككل" - مرة أخرى، إذا كنا نتحدث عن أول عنصر من عناصر هذا array-- البيتزا "بيتزا جبن كامل تكاليف 8،99 $." الفترة، مائل ن، مرة أخرى، مع تتصدر $ و $ سعر أمازيغ لما كنا قد المحددة في foreach لدينا حلقة كما التعيين زوج قيمة المفتاح. PHP يمكن التعامل مع الوظائف. وكانت وظائف النوع من جزءا لا يتجزأ من C، كما رأينا. مثل المتغيرات، نحن لسنا بحاجة ل تحديد نوع عودة وظيفة، لأنه لا يهم حقا. ونحن لم تحدد أنواع البيانات من أية معلمات، لأنهم لا حقا المسألة، كما رأيناه في PHP. وقدم كل وظيفة مع وظيفة الكلمة. هذه هي الطريقة التي تشير إلى أن PHP ما نتحدث عنه هو وظيفة. ونحن لم يكن لديك ل التعامل مع الرئيسي في كل شيء، لأن المترجم، وPHP مترجم، يعمل من أعلى إلى أسفل، بصرف النظر. إذا كان يرى أن تتمكن من إجراء استدعاء دالة، وأنها سوف تذهب تجد استدعاء دالة، حتى لو جاء ذلك في وقت لاحق. لكنه سيحتاج إلى قراءة من أعلى إلى أسفل، لذلك نحن لا تحتاج إلى تحديد، هنا حيث تبدأ. البدء في السطر 1 الخاص بك PHP والعمل من هناك. حتى هنا هو كيف يمكننا أن خلق دعت وظيفة hard_square. يبدو أنه يأخذ واحدة المعلمة التي ادعو $ س. وهذه المهمة معقدة فقط لتوضيح أشياء مختلفة. لا يزال لدينا قيم الإرجاع. أنا باستخدام لحلقة هنا. ولكنه في الأساس فقط، وهذا ما يرقى إلى مجرد $ س $ الأوقات السينية. ما أفعله هو في الواقع مجرد إضافة س 0 س مرات أو س $ إلى الصفر مرة $ س. لكنه فعال تماما نفس بضرب مرات $ س $ س. لا يزال يمكنني إرجاع قيمة، في هذه الحالة $ نتيجة لذلك، ولقد قدمت وظيفة في PHP. وهنا كيف يمكن استخدامها في السياق. لذلك ربما أنا داخل بعض الملفات PHP. لاحظ في الزرقاء ان هناك لقد استعملت بلدي المحددات PHP، زاوية قوس علامة استفهام بي. بين تلك كلها من وPHP التي أريد أن أكتب. لذلك أنا على ما يبدو سوف get-- انا ذاهب الى مطالبة المستخدم أن تعطيني رقم، المخزن الذي متغير، مخزن في هذا المتغير $ س، كل ما قدمتموه لي. ثم انا ذاهب الى صدى hard_square من تلك القيمة، وعلى ما يبدو تسير لتك على سطر جديد كذلك، ثم في وقت لاحق سوف أكون أنا تحديد وظيفة hard_square ذلك أنني عندما جعل الدعوة إلى hard_square، فهو يعرف ما أتحدث عنه. الآن، يمكنني أن أفعل أيضا شيء من هذا القبيل. هذا يختلف قليلا. انها تقريبا بالضبط نفس ما رأيناه من قبل، باستثناء بدلا من أن تقول فقط $ س هناك كمعلمة لhard_square، أقوله $ س = 10. لذلك هذا هو مثال لل برمجة دفاعية، حراسة البرامج الخاصة بك ضد مستخدمين ضارين. هذه هي طريقة واحدة للقيام ببعض خطأ التحقق من أننا لم أكن لدينا كخيار في C. نحن لا يمكن أبدا تحديد القيمة الافتراضية لشيء ما. كان لدينا دائما للتحقق إذا كانت، على سبيل المثال، إذا كان لنا أن إجراء مكالمة إلى GetString، كان عليه الأكثر مناسبة إذا فورا بعد أن فحص ذلك، ونحن فحص ما إذا كانت السلسلة أن المستخدم أعطانا لا يساوي قيمة خالية، لأننا لا نريد أن نبدأ العمل مع سلسلة فارغة. هنا، وهذا هو وسيلة لحراسة ضد ذلك. إذا كان المستخدم لا تقدم لنا شيئا بطريقة أو بأخرى، ماذا نحن فاعلون؟ حسنا، نحن سوف نقول فقط مهما كانت أنها لم تقدم لنا، نحن ذاهبون لمجرد سد العجز في 10 بدلا من ذلك. حتى إذا لم تعطينا القيمة، مجرد استخدام 10 افتراضيا. وحتى هنا، لاحظت أن أنا صنع دعوة لhard_square، ولكن ليس هناك موجه للمستخدم، أليس كذلك؟ أنا مجرد إجراء مكالمة فارغة. ولكن وظيفتي hard_square تتوقع المعلمة. ما يتم هذا الانتقال لطباعة؟ انه سيكون لطباعة 100، أليس كذلك؟ لأن المستخدم لم يكن تعطيني أي شيء. وهكذا أنا فقط ذاهب لنفترض أن 10-- 10 هي القيمة الافتراضية. وحتى هذا من شأنه أن طباعة من 100 على السطر الخاص به. ملفات PHP لا يجب أن يكون مجرد ملف واحد. يمكنك الجمع بين ملفات متعددة معا، تماما مثل يمكنك في C. الطريق فعلنا ذلك في C كان عادة للقيام تتضمن # للحصول على الملفات رأس انسحبت في. نحن لا نفعل ذلك في PHP. ونحن نفعل ما يسمى require_once. ثم هناك هذا كله شيء، ما هو هذا __dir__؟ هذا مجرد الخاصة متغير أو ثابت خاص، حقا، أن يحدد ما الدليل الحالي الخاص بك هو. وهكذا أريد لها أن ننظر في الدليل الحالي لملف يسمى cs50.php في هذا المثال هنا، وانها تسير على التمسك هذا الملف في الجزء العلوي من برنامج PHP الخاصة بك، على افتراض أن كنت وضعت تتطلب مرة واحدة الخط في الجزء العلوي من ملف PHP الخاصة بك. لذلك يستخدم PHP في المقام الأول، ولكنها لا تستخدم حصرا، كلغة للبرمجة على شبكة الإنترنت. هذا هو حقا كيف جاء ليكون. وإنما هو كامل لغة، كما رأينا. لقد رأينا الكثير جدا كل الأشياء أنها يمكن أن تفعل التي تشبه C، ويمكن القيام به من هيك أكثر من ذلك بكثير. ولكن لانها لغة كاملة، ونحن يمكن القيام البرمجة سطر الأوامر في ذلك. يمكننا تشغيل البرامج سطر الأوامر. كل ما هو مطلوب لتشغيل أمر برنامج الخط الذي هو مكتوب في PHP غير أن لديك مترجم PHP. لذلك نوع من مشابهة ل وجود مترجم على النظام الخاص بك إذا كنت ترغب في ترجمة التعليمات البرمجية C بك لتحويلها إلى ملفات قابلة للتنفيذ. تحتاج إلى أن يكون مترجم PHP موجود على جهازك بحيث يمكنك تفسير ملفات PHP. على افتراض انك لا، وعادة وهذا ما يسمى مترجم PHP، وانها عادة واحدة مع أكثر التنزيلات أو المنشآت من PHP التي يمكنك الحصول عليها عبر الإنترنت، وبالتأكيد اسم المترجم PHP لدينا في CS50، IDE. كل ما عليك القيام به هو نوع ملف بي. وما برنامجك تنوي القيام به هو انها الذهاب لتشغيل من خلال مترجم، انها الذهاب إلى تجاهل كل ما هو ليس في المسألة بين mark-- أو، زاوية قوس علامة استفهام بي، المحددات PHP، وطباعته، وسوف تفسير وتنفيذ التعليمات البرمجية داخل المحددات PHP الخاصة بك. لذلك دعونا البوب ​​إلى IDE CS50 و إلقاء نظرة على زوجين من ملفات PHP، تشغيل بضعة ملفات PHP، في واجهة سطر الأوامر من IDE CS50. لذلك نحن هنا في IDE CS50، ولقد اتخذت الحرية فتح ملف يسمى hello1.php. وعلى ما يبدو، فإن محتويات هذا ملف ليست سوى المحددات PHP هناك، وبين، صدى ("مرحبا، العالم"). هذا هو برنامج PHP بسيط جدا. أنا مجرد الذهاب إلى التمرير لأسفل لنافذتي المحطة هنا، وانا ذاهب لكتابة PHP hello1.php، تصل إلى تدخل. مرحبا بالعالم. وهذا ربما ما كنا أتوقع أن تفعل، أليس كذلك؟ دعونا نذهب معا واتخاذ نظرة أخرى على هذا البرنامج. hello2.php. الى حد كبير نفس الشيء، ليس هناك الكثير يجري هنا. هذه المرة، على الرغم من أنني ذاهب للمطالبة للمستخدم أن تعطيني أسمائهم. أنا باستخدام هذه الوظيفة يقوم readline مرة أخرى. $ اسم = يقوم readline. هذا موجه، "ما اسمك؟" على ما يبدو أنا الطباعة على الخط الخاص بها. وبعد ذلك، وبالتالي فإن خط أدناه والتي ستكون موجه حيث يمكن للمستخدم إدخال أسمائهم. ثم أنا باستخدام قليلا من استجواب متغير هنا على خط 3 لطباعة "مرحبا" و مهما كانت أنواع المستخدم. لذلك هذا هو مماثل لقوله، مرحبا، فاصلة،٪ الصورة إذا كنا باستخدام printf في C. لذلك دعونا نذهب وتفسير هذا البرنامج. ذلك مرة أخرى، وأنا سوف انتقل لأسفل لنافذتي المحطة. فب hello2.php. ما اسمك؟ دوغ. مرحبا، دوغ. ولدي أيضا آخر ملف يسمى hello3.php. انا ذاهب الى مسح بلدي شاشة مع التحكم L، وانا ذاهب لتنفيذ ذلك. ما اسمك؟ دوغ. مرحبا، دوغ. وبالتالي فإن سلوك مطابق ل hello2.php، ولكن لماذا هو hello3.php؟ حسنا، وهنا يكمن الفرق. في هذه الحالة، لاحظ أنه في السطر 1 هنا، لدي شيء وهذا ليس بين المحددات PHP. أنا مجرد طباعة out-- أو I بكتابته الآن، "ما اسمك؟" عندما يرى مترجم PHP ذلك، لا يوجد لديه فكرة عن كيفية تفسير ذلك كما PHP، وذلك بدلا من الفشل، انها مجرد الذهاب الى يبصقون عليه. لذلك تلاحظ في السطر 3 الآن، دعوتي ل يقوم readline، وليس هناك موجه بعد الآن. أنا مجرد الذهاب في الواقع عندما to-- المترجم PHP يرى هذا، انها سوف طباعة "ما اسمك؟" فإنه يرى، أوه، حسنا، here's-- كل شيء آخر سيكون تفسر على أنها PHP، لذلك لهذا السبب يعمل هذا. ليس لدي للمطالبة بالضرورة وto-- المستخدم داخل يقوم readline، أنا يمكن أن يكون مجرد أنها خارج من المحددات PHP والسماح للمترجم لطباعته للتو بالنسبة لي. لذلك لم يكن في الواقع لا تملك إلا لدينا مجموعة واحدة من المحددات PHP في البرنامج. هل يمكن أن يكون في الواقع العديد منهم، فتح وإغلاق لهم حسب الحاجة. لذلك دعونا نلقي نظرة في بضعة برامج في IDE CS50 أين نحن توضيح هذه الفكرة وجود مجموعات متعددة من PHP محدد. حسنا، لقد فتحت ملف دعا هنا add1.php. وتلاحظ ما يحدث هنا. فقط كما كان من قبل، ولدي PHP واحد مجموعة من المحددات. انا ذاهب لطباعة رسالة "من فضلك أعطني عددا." ثم انا ذاهب الى قراءة سطر و تخزينه في $ num1 متغير. ثم انا ذاهب لطباعة مرة أخرى. أعطني الرقم الثاني. قراءة سطر من المستخدم، متجر كل ما كتبته في في $ num2. إضافة بعضهم البعض، وتخزين تلك يؤدي في متغير يسمى $ المبلغ، ومن ثم طباعتها، إن " مجموع هذين الرقمين هي "، ومن ثم استجواب هناك $ مبلغ متغير. لذلك دعونا فقط تشغيل هذا من خلال مترجم لتأكيد أن هذا هو ما نتوقعه. فب add1.php. من فضلك أعطني رقم، 3. من فضلك أعطني الرقم الثاني، 4. مجموع هذين الرقمين هو 7. هذا هو 3 و 4. موافق؟ لذلك لا شيء رهيب يتوهم هناك. والآن دعونا فتح add2.php. هنا، لقد حصلت على زوجين من PHP مجموعات محددة هناك، أليس كذلك؟ خطوط 1، 3-- خطوط 1 و 3 ليس لديهم المحددات PHP. وذلك عندما مترجم يراهم، انها مجرد الذهاب إلى بصق بالضبط ما كنت قد كتبته هناك. بحيث حيث أنا تفعل كل ما عندي من المطالبة. على خطوط 2 و 4، ونحن نرى جدا $ مألوفا؟ فب نوع من المحددات، حتى هذين الخطين هي الذهاب لتنفيذ كما PHP. ثم في السطر 5، ولدي هذا شيء غريب هنا، أليس كذلك؟ هذا قوس الزاوية علامة استفهام علامة المساواة. حتى أنا تكبير أكثر قليلا. يمكنك ان ترى هذا هو ما أنا نتحدث عن الحق هناك، وهذا $؟ =. اتضح انه شائع بحيث السبب في أن نفتح الباب على مجموعة من PHP المحددات هي لطباعة قيمة. وهذا كل ما كنت تنوي القيام به. ولكن هناك حتى الاختزال لذلك. $؟ = هو PHP الاختزال لقوله شيء من هذا القبيل $؟ PHP صدى المبلغ من num1 وnum2. لذلك هذا هو مجرد الاختزال لذلك. حتى لو كنت تشغيل هذا البرنامج، ووردبريس add2.php. أنا تكبير أسفل قليلا. من فضلك أعطني رقم، 4. من فضلك أعطني الرقم الثاني. وبما أنني لا نكترث أنواع البيانات في PHP، أستطيع أن أقول 4.8. مجموع هذين الرقمين هو 8.8. أن وظيفة يتصرف الى حد كبير بالضبط نفس الشيء كما كنا نتوقع، كذلك. وأنا أكثر واحد فتح هنا دعا dice.php. حاول هذا مرة أخرى. أنا واحد من هنا دعا dice1.php، والتي أيضا، انظر، لديه هذا السؤال قوس الزاوية بمناسبة المساواة تدوين تسجيل الدخول هناك، ولكن لاحظ أنه في هذه الحالة أنا استدعاء الدالة راند، والتي كما كنت قد تتوقع يولد رقم عشوائي. "أنت توالت"، وانه سيكون ل حساب بعض الأرقام العشوائية، وزارة الدفاع 6 + 1. بحيث سوف تعطيني رقم في حدود 1-6. نتذكر أن وزارة الدفاع 6 أن تعطيني رقم في نطاق 0-5، ولكن إذا أنا محاكاة لفات الزهر، وهو ما أفعله هنا، أنا لا أريد هذه الزهر للذهاب من 0 ل5، أريد النرد التي تذهب 1-6. وهكذا هذا هو وسيلة للحصول على لي في حدود 1-6. أنا أفعل ذلك مرتين. لذلك يبدو أنني المتداول اثنين من الزهر في هذا البرنامج. ولذا فإنني سوف مسح الشاشة بلدي، وسأفعل فب dice1.php. كنت توالت 4 و 2. وإذا قمت بتشغيل البرنامج مرة أخرى، توالت 5 و 5. هكذا في كل مرة أقوم بتشغيل البرنامج، أنا الحصول على أرقام مختلفة، لأن في كل مرة أفعل لذلك، فإنه البدء من جديد. انها تسير لتوليد جديدة مجموعة من أرقام عشوائية بالنسبة لي. حتى إذا اعتدنا على تشغيل البرامج من C، نحن معتادون على كتابة ./ لل اسم البرنامج، أليس كذلك؟ هذه هي الطريقة التي قد فعلت كل برامجنا في C حتى الآن. يمكننا أن نفعل هذا في PHP وكذلك بإضافة ما يسمى من كوخ إلى أعلى ملف PHP لدينا. وأنا أعلم أنه نوع من كلمة سخيفة. انها قصيرة للتجزئة الانفجار. هذا هو أول حرفين هناك. تذكر نسميه تعجب في كثير من الأحيان دويا في علوم الكمبيوتر. كما أنه قد يكون لفرقعة حادة. هناك بضعة طرق لتفسير ذلك. ولكنه في الأساس نوع خاص القيادة أن مترجم PHP كما يفهم، أوه، أنا أريد لك لتنفيذ هذا البرنامج، وهو على ما يبدو / المستخدم / بن / PHP، التي هو في الواقع حيث مترجم PHP يعيش تحديدا على نظامنا. حتى it's-- ما يحدث هنا هو يفهم مترجم، أوه، أنا على ما يبدو من المفترض أن استخدام في هذا البرنامج لتشغيل هذا الملف. وذلك لأنها تتيح لك لتخطي خطوة من الاضطرار إلى القول فب something.php. هناك صيد الآخر هنا، وهي أنه إذا كنا تريد برامجنا ل يعمل كما هو متوقع، ونحن بحاجة إلى القيام بشيء ما يسمى تغيير إذن الملف. وسنقوم go-- ونتحدث قليلا المزيد من التغييرات إذن عن ملف بت في الفيديو لدينا في MVC، ولكن يكفي أن أقول أن هذا هو ما عليك القيام به من أجل جعل حياتك ملفات فب تنفيذ. لذلك دعونا نلقي نظرة على هذا النحو مثالنا النهائي على CS50 في IDE. حتى هنا في IDE لدي ملفين في هذا PHP الدليل الذي يبدو أن لا يكون دعا فب. لدي وظيفة تسمى add-- لدي ملف يسمى add3 وملف يسمى dice2. لذلك دعونا نلقي سريعة تبدو وفتح add3. وكما ترون، في بداية من ملفي لدي هذا كوخ، أليس كذلك؟ هذه النقطة تجزئة علامة تعجب. الآن، عليك أيضا ربما لاحظت أن لسبب ما، ليس لدي أي جملة تسليط الضوء بعد الآن، وهذا هو ما أشرت إليه سابقا، وهو أنه إذا كنت لا اسم الملف الخاص بي فب، وأنا لم يكن لديك صالح من تسليط الضوء على تركيب بعد الآن. ويسمى هذا الملف فقط add3. حتى أستطيع أن تشغيله في وقت لاحق مع ./ add3 وليس ./ add3.php. لذلك reason-- انها لا تزال غرامة، فإنه لا يزال ساري المفعول PHP، ولكن ليست جملة تمييزه، ل لا يسمى هذا الملف something.php. هذا هو الفارق الحقيقي الوحيد هنا، بالإضافة إلى كوخ. لذلك دعونا نرى ما سيحدث عندما أحاول وتشغيل هذا البرنامج. ./ add3، مثلما كنت مع C. باش. ./ إذن add3 رفض. هذا هو ما كنت تريد الذهاب لمعرفة ما إذا كنت قد نسيت استخدام الأمر شمود لتغيير أذونات الملف. كما اتضح، PHP العادية لا يمكن أن يكون مجرد أعدم الملفات. ويمكن تفسيرها، ولكن نحن القيام بشيء مختلف قليلا هنا. نحن تنفيذه. ولذا فإنني بحاجة إلى إضافة إذن التنفيذ، شمود + X لadd3. ثم أستطيع أن أقول ./ add3. من فضلك أعطني رقم. 5، 6. مجموع هذين الرقمين هو 11. وبالمثل، لقد chmoded بالفعل dice2، حتى أستطيع أن اكتب فقط ./ dice2، كنت توالت 1 و 1، كنت توالت 5 و 4، وهلم جرا. ولهذا إلى حد كبير فكرة تركيب PHP، أليس كذلك؟ هناك الكثير من خلال الحصول على، وأنا أعلم. ولكن نأمل كنت قد رأيت الآن أن PHP ليس حقا أن تختلف عن C ويعطي حقا لنا القدرة لنأخذ الامور تصل درجة أو اثنين. ليس لدينا حقا ما يدعو للقلق كثيرا about-- لم نفعل ذلك حقا داعي للقلق كثيرا حول تفاصيل على مستوى منخفض نحن كان ما يدعو للقلق مع C، أليس كذلك؟ يمكننا أن نركز على أعلى الاشياء المستوى الذي PHP يسمح لنا أن نفعل، واتخاذ ل منح أنها ستعمل بالنسبة لنا. لذلك يعطينا القدرة الآن، الانتقال من C إلى PHP، لجعل البرامج التي هي أكثر كثيرا تعقيدا وربما الكثير أكثر قوة. لذلك آمل أن يكون لديك متعة العمل مع PHP، وأنا دوغ ويد. هذا هو CS50.