SAM LEVATICH: مرحبا بكم في قسم لهذا الأسبوع. أنا لست اندى. انخفض اندى المرضى هذا اليوم، وأنا وقد دعا نوع من في اللحظة الأخيرة لتولي المسؤولية. انه موسم الانفلونزا، لذلك تأكد من أنك يقيمون نظيفة، وغسل اليدين، وتناول الطعام الصحي بحيث أنت أيضا، ليست طريح الفراش. ولكن دون مزيد من من اللغط، دعونا نبدأ. اليوم، ونحن بصدد الحديث حول PHP قليلا bit-- كيف PHP تتعلق HTML، كيف يتصل CSS، وبعض من الويب الاشياء التي فعلت على احالة الماضي. ونحن في طريقنا للحديث قليلا عن SQL وكيف يمكنك العمل مع قواعد البيانات، وهو عنصر أساسي جدا من P تعيين 8-- مجموعة P 7. مجموعة P 7. ثم نحن في طريقنا لنتحدث قليلا قليلا عن كيفية عمل عرض وحدات التحكم ولماذا هذا هو الفلسفة الكامنة وراء بعض صفحات الويب الحديثة وتصميم مختلف. الى حد كبير الكثير من أنواع التطبيقات والتطبيقات التي قد السفينة تستخدم هذا النموذج، الإطار تحكم الرأي، ان تكونوا باستخدام في وضع P 7، ولذا فإنني سوف نتحدث قليلا لماذا أن أصبح شعبية، لماذا من المهم وجميلة. وبعد ذلك سوف تتحرك في النهاية على ل بعض النصائح حول معالجة P تعيين 7. وإذا كان لدينا الوقت خلفها في النهاية، يمكننا القيام به في الواقع بعض العمل على ذلك معا. لذلك، PHP. في الواقع، كنت قد لاحظت this-- لم يكن لديك حقا ليغوص it-- ولكن P تعيين 6 وكان بعض PHP التعليمات البرمجية التي يجري. ولأن PHP هو مثل C- لغة، PHP، على عكس HTML و CSS، هي لغة البرمجة، في حين HTML و CSS ساكنة. انهم اللغات المبرمجة التعامل مع نمط وتخطيط البصرية. PHP هي الصفقة الحقيقية. PHP ديه الحلقات، فقد conditions-- كل الاشياء التي متعة حول C. لديها عدد قليل من الأشياء التي هي قليلا الشيء أفضل من C، والتي سنرى، ولكن أعتقد أن أسهل طريقة للحديث حول PHP هو مجرد الغوص في. لذلك أنا ذاهب ليسير في الاتجاه الصحيح في IDE في هذه المرحلة. أول شيء نحن في طريقنا القيام به هو ننظر في الواقع قليلا في بعض كود PHP التي كانت في وضع P 6. وبالتالي فإن الطريقة التي نقوم بها هكذا- يضرب من قبل، والطريقة التي كنا نركض خادم للجهاز كان ذلك علينا أن type-- إما استخدام التطبيق الخاص بك أو تنفيذ للموظفين من server.c بالذهاب إلى دليل وتعمل server.c إما لا arguments-- حتى مجرد تسميته على المضيف المحلي، وهو ما كنت على الارجح فعلت معظم time-- ثم تغذيته وdirectory-- مع الذي لاستخدام جذورها حيث سيكون الموقع يتم تشغيلها، في الأساس. هذا الأسبوع لP تعيين 7، كما كبيرة كما لدينا قانون لserver.c هو، وهناك الناس الذين لديهم بالفعل كتابة هذه الأشياء الجميلة في أكثر من CS50 التي لديها قليلا المزيد من الوظائف، برنامج الخادم الذي هو قادر التعامل مع القليل من أكثر من تعقيدات أننا سوف نرى في كل من P تعيين 7 ووضع P 8. والطريقة التي تقوم فيها ببدء تشغيل الخادم هو فقط عن طريق كتابة "apache50". وقبل أن تفعل أي شيء، كنت ترغب في التأكد من أن أباتشي 50 ليس بالفعل تشغيل كما هو على الجهاز الخاص بي، وهو ما قمت به لاختباره. ويمكنك القيام بذلك عن طريق الاتصال apache50. وقف، وسترى أن الأمر يتوقف خادم الويب، إذا يمكنك أن تبحث هناك في الجزء السفلي من إطار المحطة الطرفية. وبعد ذلك فقط للبدء، ونحن الذهاب لدعوة "apache50 بدء." وبعد ذلك نحن ذاهبون لإطعام عليه الدليل. الآن، لأننا نريد أن ننظر في بعض P ضبط 6 كود أننا قد نفذت، وأنا فعلا نسخ قليلا من P ضبط 6 الشفرة في المجلد الخاص بي، التي تستطيع أن ترى على اليسار هناك. انه دعا "SECTION8" في جميع الحروف لأنني فقط متشوقة للغاية أن يكون بثها-اليوم. لذلك إذا أردنا تشغيل هذا، ينبغي له كل عمل بشكل فعال جدا. وتقول، حسنا، موقعنا الآن متاحة على عنوان IDE، في الأساس، وهو ما كنت تستخدم بالضبط كما كان في وضع P 7-- مجموعة P 6. كل ما عندي من الفهارس مؤشر واحد اليوم. حتى نتمكن من الذهاب إلى تلك عنوان، إذا كان عليك تذكر، فقط عن طريق النقر على هذا القليل زر في الجزء العلوي الأيمن. وسوف أذكر هذا الرمز، الذي حدث عندما ذهبت إلى hello.php. وما تم تصميم رمز ل القيام به هو عندما كتبته في اسم here-- إذا كنت أقول سام لأن هذا هو بلدي name-- وأنا انقر قل مرحبا، عند ذهبنا إلى الصفحة التالية، وكان من المفترض أن اسم ليتم عرضها. فإنه يقول: "مرحبا، وسام" أو "مرحبا"، أيا كان الاسم الذي وضعت فيه حتى ولو ذهبنا إلى صفحة ويب جديدة تماما. وهذا هو النوع من الشيء أن PHP يمكن القيام به بالنسبة لك. PHP قادرة على تمرير البيانات بين اثنين من صفحات الويب. هذه هي صفحة مختلفة تماما. سترى العنوان هو "مرحبا" هنا. في الواقع، لديهم نفس العنوان، ولكن أنا وعد فهي مختلفة على شبكة الإنترنت الصفحات إذا نظرنا إلى المصدر. ويمكنك تمرير البيانات هذا دخلت في هذا المجال النص، يمكنك رفعه إلى أخرى الصفحة التي يتم استدعاؤهم، ثم أن البيانات غير قادرة على يكون هناك في شكله الحالي. ونحن الآن لم تنفذ حتى الآن هذا أنفسنا، والتي ما نحن في طريقنا للقيام في الوقت الراهن ل نوع حصول على نكهة لكيفية عمل PHP، ولكن الفكرة الأساسية هي أن PHP-- يمكنك نوع من التفكير في الأمر وكأنه وظيفة. شيء PHP يمكن أن تسمح لك لا هو يمكن أن يستغرق المعلمات التي يمكنك إدخال في صفحة HTML من خلال استخدام PHP وأشكال، ويمكن أن تمر تلك كمعلمات إلى الصفحة التالية أنه يحمل ما يصل. في هذه الحالة، نحن تحميل حتى هذه الصفحة مع زر "قل مرحبا". ولكن الآن، وأنا فعلا حذف بعض هذا الرمز في hello.php الذي يجري تشغيل التي كانت تظهر في الواقع "مرحبا، العالم "أو" مرحبا، وسام "أو "مرحبا"، مهما كان تماما مدخلات. حتى الآن الحق، ونحن ذاهب للقيام بذلك، من حيث الأساس. ونحن في طريقنا لإعادة ذلك و أيضا إضافة بعض المزيد من الوظائف، تفعل أكثر قليلا معها، انظر ما PHP غير قادرة حقا. لذلك أولا، دعونا نتحدث عن هذا الملف، hello.php. حتى لو كنا في التكبير ل bit-- قليلا، والآن أنا نوع من محاولة لتمرير كل الطريق around-- هناك نذهب. سترى انه دعا hello.php، ولكن بناء الجملة منه يبدو وكأنه ملف HTML. وذلك لأن PHP الفعلي في هذا الملف هو كل شيء عالقا بين هذه السؤال كتل علامة الإقحام. كل شيء هنا يعتبر كود PHP. وستلاحظ أن عندما فعلت تعليق، سترى ما هو مألوف مائلة اثنين إلى الأمام. وإذا عليك أن أذكر، في HTML، إذا كنت اكتب تعليق، يبدو شيئا أقرب إلى هذا، وهو تعليق في HTML. كل شيء حتى حقا بين هذه أقواس زاوية اثنين هو الآن رمز PHP، التي ويتجلى في حقيقة أن هذا الرمز تعليق بسيط وتحولت إلى تعليق. هكذا في كل مرة تكتب كود PHP، حتى اذا لم يكن هناك كود HTML خارجه، انها دائما ما يكون المغلقة في هذه أقواس زاوية مع علامات استفهام. يمكنك أن تفكر النوع من حول it-- كيف أن كل من التعليمات البرمجية التي نشرت في برامج C بك كانت موضوعة في كثافة العمليات الرئيسي، الفراغ، متعرج، نهاية البيان متعرج. وسترى الأقواس المعقوفة في PHP، أيضا، ولكن هذا النوع من مثل الطريقة الرئيسية لPHP. وحتى الآن، كيف يمكننا فعل أي شيء في PHP؟ الآن، PHP هو البرمجة لغة هذا جدا مثل C، ولكنها تعمل على شبكة الإنترنت. ذلك الشيء الوحيد الذي عليك immediately-- واحد من أول الأشياء التي فعلت حقا مع وC التي قمت بطباعتها الاشياء، أليس كذلك؟ حتى في C فعلنا ذلك مع وظيفة printf. أعطينا سلسلة، ربما مع خط جديد، وبعد ذلك إنهاء مع فاصلة منقوطة. وبالتالي فإن الطريقة التي نحن في طريقنا للقيام بذلك في PHP-- لأنها ليست printf تماما. انها قليلا من جملة مختلفة. الطريقة التي يمكننا طباعة الامور في PHP هو أننا نقول "صدى مرحبا" أو "صدى" أي كلمة. وهذا له تأثير على القيام printf مع سلسلة "مرحبا". ويضيف خط جديد لها. لذلك دعونا الآن جعل sure-- أنا تصغير مرة أخرى قليلا bit-- دعونا نتأكد من أن يعمل هذا الرمز لربما هناك جدا كذلك يكون خطأ في هذه المدونة أنه سيكون لدينا لمعالجة. لذلك الملقم قيد التشغيل بالفعل. حتى إذا كنا التمرير إلى أسفل إلى أسفل، نعم، الخادم لا يزال قيد التشغيل. لذلك إذا أردنا الاستفادة فقط على هذا قليلا الحق here-- welcome-- يجب علينا get-- كبير. مازلنا وجود دراية "قل مرحبا" الحوار، ولكن عندما كنت اكتب في "مرحبا" سنرى أن النص "مرحبا" كان في الواقع طباعتها، والتي هي تماما كما توقعنا لأن أردد في PHP هو تماما مثل بيان printf. ويعود ذلك إلى رمز، وكيف في وضع P 6 فعلت رمز التوزيع يتم توفيرها لك تجعل من ذلك أن من شأنه PHP إخراج الشيء الذي كنت كتبته في على الشاشة السابقة؟ ونوع من فحص لماذا يحدث ذلك، ونحن سندخل index.html والتي هو الملف الأصلي، الملف الذي يظهر على هذه الشاشة مع زر "قل مرحبا". لاحظت أن هناك كل الأشياء الكلاسيكية لقد حان لنتوقع من هذه HTML لأن هذه الأشياء، وهذه العلامات المغلقة في أقواس زاوية، مثل PHP ولكن من دون علامات استفهام، مما يدل على شيء خاص لHTML. لدينا العنوان، الذي هو "مرحبا". وستلاحظ أن كما رأينا، العنوان هو "مرحبا" في كلتا الحالتين. دعونا تغيير هذا واحد ل"يقول" فقط حتى نتمكن يمكن أن نميز أنفسنا أين نحن. ولكننا قد حصلت على الجسم. ثم بت مثيرة للاهتمام، و الشيء الذي يظهر في HTML، هو هذا العنصر النموذج. ولذا فإننا قد حصلت على النموذج. وهذا هو المفتاح. هذه هي الطريقة التي نعمل مع PHP. المعلمة عمل يقول النموذج الذي hello.php ما نحن بصدد ارسال القيم في هذا النموذج. هذا هو المكان الذي كنت تمر المعلمات، إذا جاز التعبير. ستلاحظ شيء آخر هنا غير أن الأسلوب هو "الحصول". هناك نوعان من التعليم الابتدائي الأساليب التي سوف يكون استخدام PHP لتمرير البيانات بين صفحات الويب websites--، rather-- في هذه المهمة. وهذه الأساليب هي "الحصول على" و "آخر". هناك بعض خفية الاختلافات بين الحصول على وظيفة أننا سوف تحصل into-- نحن و"الحصول على" إلى، إذا صح التعبير. ولكن لجميع المقاصد و الأغراض، الحصول على وظيفة هي في كلا الاتجاهين مجرد أن يمكنك تمرير المعلمات مع إعدام مختلفة قليلا. الآن، نحن في طريقنا للحصول على استخدام ل الحصول على هو ما كانت في الأصل تستخدم في ملف PHP من P ضبط 6. وفعلا، إذا ذهبنا في وننظر قبل أن قد قمت بتعديل أي شيء آخر، أنا سأقول مرحبا to-- ما اسمك؟ الحضور: إليوت. SAM LEVATICH: أوه، يا إلهي. أنا لا أعرف كيف لتوضيح ذلك. هل يمكن توضيح ذلك بالنسبة لي؟ الحضور: E-L-L-I-O-T. SAM LEVATICH: I-O-T؟ الجمهور: نعم. SAM LEVATICH: الكمال. حسنا. اعتقد انني فعلت معرفة كيفية تهجئة ذلك. اسف بشأن ذلك. ولكن إذا قلنا "قل مرحبا" انها ليست انها لن تظهر على الشاشة بعد لأننا المعدلة رمز قليلا. ولكن إذا كنا لا "قل مرحبا" - حسنا، "مرحبا" هي هنا. ولكن إذا أخذنا أقرب إلقاء نظرة على العنوان نفسه، سنرى أن ينتهي مع hello.php؟ اسم = إليوت. لذلك، وهذا هو وسيلة ل التواصل إلى صفحة الويب التالية المعلمات أننا قد اجتزنا. قلنا اسم = إليوت. وهذا هو في نهاية المطاف كيف وضع P 6 الوصول إلى المتغير الذي مررنا في من خلال النموذج. وهذا أمر هو غريب لطلب الحصول عليها. طلب الحصول يجعل المعلمات المعروف في URL للموقع. وسوف أذكر أيضا في وضع P 6 أنك كان علي أن أكتب وظيفة أن التعامل مع حقيقة أن هذه السلسلة الاستعلام يمكن أن توجد بعد ملف. يمكن أن يكون هناك علامة استفهام يتبع بواسطة أساسا أي عدد من الأحرف. وهذا هو بالضبط ما يحدث هنا. والسبب كان لديك لتحليل ذلك في التطبيق الخاص بك من server.c في P ضبط 6 هو بحيث يمكن أن نقول رمز PHP هذا الاسم = إليوت. كنت في حاجة لتكون قادرة على تحليل أنه من أصل URL بحيث ملف PHP في السؤال عرف ما كان عليه التعامل معها. لذلك نأمل هذا يعطي الدافع لserver.c الآن أننا نسير على خارج C في PHP. لذلك دعونا نركز فعلا على الوصول إلى أشياء مرت من خلال طلب الحصول على الآن عند هذه النقطة. أنا ذاهب لإنقاذ هذا. نحن لم يغير شيئا. يبدو أننا قد حصلت على حقل الإدخال. نحن تحديد بعض الخصائص، ما يمكننا القيام به لHTML. هذه هي الأشياء البسيطة. نحن لسنا بحاجة هذه. ولكن لدينا الإكمال التلقائي قبالة، التي says-- أساسا تعلمون، عند كتابة الأشياء إلى شبكة الإنترنت، وأحيانا انه يحاول ملء هذا في لك. لذلك هو الشيء الجميل. نريد لإيقاف تشغيله لهذا الغرض. كان ذلك قرارا CS50. حتى نتمكن من حذف أنه إذا أردنا. ضبط تلقائي للصورة العصي فقط المؤشر في الحق شكل في البداية. مرة أخرى، ليس مهما جدا. ولكن اسم = "اسم" - انها قليلا صعبة لأنه اسم واسم. لكننا يمكن أن تغيروا هذا إلى شيء آخر. في واقع الأمر، وهذا ما سنقوم به الآن. سنقول "شخص"، والتي هو نوع من مثل اسم إذا تم تعريف الشخص بأسمائها. لذلك دعونا إغلاق هذا، إعادة فتح يصل موقعنا منذ خادمنا لا يزال قيد التشغيل اباتشي 50، وسوف نقول، مرحبا، هنا إليوت مرة أخرى. لما لا؟ مرحبا. وإذا ذهبنا إلى هنا، وسنرى ثم بدلا من اسم = إليوت، يقول شخص = إليوت. وهذا هو نتيجة مباشرة لحقيقة أننا مجرد تغيير اسم = "شخص". وذلك في عنصر مدخلات شكل HTML، حقل الاسم هو المعرف ل المعلمة التي يجري تمريرها. انها مثل إذا كنت تقوم بإنشاء وظيفة "إضافة" التي وقعت في عددين وقال الباحث لك على وكثافة العمليات ب. من شأنه أن يكون اسم، وإذا أردت شكل آخر، والتي يمكننا القيام به فقط عن طريق النسخ و اللصق، ثم سيكون لدينا اسم ب. وحتى الآن سيكون لدينا معلمتين التي يتم تمريرها من خلال وصول الى website-- المقبل صفحة الويب التالية، hello.php. ويمكننا أن نرى في الواقع ذلك مرة أخرى إذا كنا نريد. هذا هو أسهل طريقة للتعامل مع مدونة على شبكة الإنترنت في IDE، في الأساس. البدء في إعداد الملقم، والحصول عليها تشغيل، ثم في كل مرة كنت إجراء بعض التغييرات، فقط قريبة هذا الملف فقط لتكون آمنة. الضغط على زر رجوع هو صعب قليلا لأنه قد تحميل في وقت سابق الإصدار، وليس واحد معظم المحدثة. ثم النقر فوق فقط الخاص الزر مرة أخرى، والبوب ​​up-- الحق أوه، والآن هناك نوعان من النماذج. وحتى إذا كنا اكتب شيئا واحدا في كل احدا-- "جايسون هيرشهورن،" لinstance-- نقول مرحبا. نحن البصر على المعلمات لدينا. يبدو أننا قد حصلت، كما من المتوقع، و= جايسون وب = هيرشهورن، التي تمثل المعلمتين أن مررنا على هذه الوظيفة. حتى الآن دعونا في الواقع الحصول على ل تنفيذ هذه الوظيفة أننا كان في وضع P 6. حتى الان نحن فقط مرددا مرحبا. وهذا ليس مفيدا جدا. نريد أن أردد بعض متغير التي تم تمريرها لنا. ونحن نعرف اسم هذا المتغير. لدينا وقمنا ب. ولذا فإننا يمكن أن تختار أن أردد أي منهما. ولكن كيف يمكننا الوصول إليها؟ حسنا، هناك بعض المتغيرات العالمية في PHP. وأنا أريد أن أكتب لهم في التعليقات هنا. وهما أهمها الحصول على وإضافة لأغراضنا الآن. هذه هي صفائف أو، من الناحية الفنية، القواميس حيث المتغيرات لدينا أننا يمر بجوار يعيش صفحة على شبكة الإنترنت. وسنرى قريبا كيفية استخدامها. آخر مذكرة موجزة عن كود PHP وبعض تفاصيل it-- في C، تعريف متغير أو استخدام المتغيرات، كان عليك أولا أن يعلن لهم. وما كان عليك أن تفعل عند أعلن كان منهم يقول الباحث وأو شار ب. كان عليك أن يعلن أنواع هذه المتغيرات قبل أن خلقت لهم. PHP-- لا تحتاج للقيام بأي من ذلك. PHP لا يطلب نوع متغير. والطريقة التي إنشاء variable-- بدلا من قول الباحث، شار، string-- وهو شار حقا *، ونحن know-- بدلا من تفعل كل ذلك، لأن كل شيء هو من نفس النوع، typeless، يمكننا فقط استخدام حرف واحد، والتي هو علامة الدولار. وسترى انها ظهرت بالفعل تصل الأمور الإكمال التلقائي قليلا. وانها قائلا ان _GET و_POST هما الخيارات التي المتوفرة لدي إلي. بعض من هذه الأمور الأخرى هي المتغيرات العالمية الأخرى في PHP أن عليك أن تكون باستخدام أكثر مسار P تعيين 7. في الوقت الراهن نحن في طريقنا لل التركيز على الحصول على وظيفة. ولكن هذا هو مفيدة شيء أن IDE لا حيث بمجرد كتابتها في ذلك علامة الدولار، انها سوف تبدأ في ملء المتغيرات العالمية أو المتغيرات التي قمت بتحديدها مسبقا. حتى إذا كنت تريد أن تعرف متغير يسمى "السلسلة" هل يمكن أن مجرد تعيين يساوي "مرحبا". وانها في الاساس بهذه البساطة. وبعد ذلك يمكننا أن نفعل شيء من هذا القبيل "$ سلسلة الصدى". وIDE يجب رمي بعض الأخطاء إذا أنا أفعل أي شيء خطأ، لذلك نأمل أفعله الحق في كل شيء. ولكن الخلل دائما لا تنشأ. آخر شيء صعب حول PHP هو أنه ليست مترجمة. حتى مع برامج C، عليك أن تفعل الروتين اليومي of-- أساسا، كنت إجراء تعديلات على التعليمات البرمجية الخاصة بك، وكنت احفظه، ثم تفعل جعله، حيث جعل كان الخطوة التي تسمى مترجم، رنة، لجعل التعليمات البرمجية الخاصة بك، وهذا النص ملف، في قابل للتنفيذ. PHP هو C الشبيهة، لكنه تنفيذه على الطاير من خلال متصفح الويب الخاص بك. لذلك ليس هناك طريقة لمعرفة. جعل سوف رمي تلك أخطاء مفيدة، أليس كذلك؟ سيكون مثل، كنت لم تعلن هذا المتغير قبل محاولة استخدامها. فعلت كل هذا segfault stuff-- سيئة، segfault، كل هذا النوع من الأوقات متعة التي جاءت مع make. PHP هو سيف ذو حدين لأنك لن تحصل على هذه الأخطاء، ولكن هذا يعني أيضا أنك لن تعرف حقا ما هو الخطأ مع البرنامج إذا كنت مجرد تشغيله وانها لا تعمل. ولكن المصحح يجب أن نشير بعض الأشياء الصغيرة مفيدة أمل نحويا التي يمكن اصلاحها. حتى الآن إذا نذهب أكثر من to-- أقول، دعونا إغلاق هذا. إعادة فتح. ونعود إلى هنا. لذلك نحن قد حصلت على متغير وب متغيرة. وهذه لن يهم في نهاية المطاف. وسوف ندعو لهم ح ز لا لسبب معين. ونحن نقول مرحبا. الآن يبدو أن سلسلة لدينا "مرحبا" هو في الواقع الطباعة. أنشأنا متغير يسمى "السلسلة" تعيينها يساوي "مرحبا". لاحظ أنه لم يكن لدينا للقيام malloc أو جعل صفيف حرف. في PHP، لأن المتغيرات هي typeless، سلسلة هو نفس شار ل جميع المقاصد والأغراض. هذا يمكن أن يكون "مرحبا". هذا يمكن أن يكون مجرد ك حرف. هذا يمكن أن يكون الرقم 1. وأنها لا تهتم. PHP لا يأبه نوع المتغير الخاص بك. أو، فإنه الرعاية. أنه يهتم عند محاولة وتفعل أشياء معها، ولكنه لا يهتم في الخطوة الإعلان. وتماما مثل يمكنك في C، يمكنك جملا في بنية تخزين العناصر مثل هذا على الرغم قائلا "كومة" هو قليلا قليلا من تسمية خاطئة المحتملة عند نحن نتحدث عن PHP. لكننا لا داعي للقلق حول ذلك. حتى وصلنا لدينا سلسلة "مرحبا"، ونحن نردد السلسلة. وحتى الآن ناقشناه المتغيرات. حتى الآن نحن بحاجة للحديث عن الحصول على و الرد على أداء والشيء الأخير الذي هو حقا بحاجة للحصول على هذه النسخ الاحتياطي لوظائف P ضبط 6. حتى الآن نحن مرددا سلسلة، لكننا هل لهذه المتغيرات الحصول على وظيفة. ولأن نستخدمه طريقة الحصول عليها، فإنه يبدو من الطبيعي أن المتغير في أن نحن مهتمون، سواء أ و ب، وسوف يكون موجودا في مجموعة أو القاموس، والحصول على التقنية. حتى إذا وضعناها حتى الحصول على مثل هذا مع groups-- بك ضغطت دخول وأنها لم ترغب it-- ولكن هنا لدينا الحصول عليها. وحتى الحصول موجود بالفعل. حتى نتمكن من البدء بالفعل في الوصول بعض العناصر من الحصول عليها. إذا كنا لا تحصل، وهذا بناء الجملة من أجل المصفوفات في PHP هي جدا مثل ج. لدينا اثنين من أقواس معقوفة. حتى لو قلنا تحصل في وضعها الطبيعي مجموعة، يمكننا الوصول مؤشر الصفري، المؤشر الأول. PHP هو مؤشر الصفر. يمكننا القول صفر، واحد، الاشياء two-- من هذا القبيل. وكنت أقول دائما أن تحصل من الناحية الفنية القاموس. فما PHP يقوم به تحت غطاء محرك السيارة، وهو ألطف قليلا من C، هو بالفعل يعطيك بعض وظائف القاموس، الذي هي الجداول التجزئة حقا، أو يحاول، من المفترض. أو، من الناحية التقنية، يمكن أن يكون محاولة كذلك. ولكن PHP بتنفيذ جدول التجزئة، الذي يشكل القاموس فعال. وحتى نعرف اسم من متغير لدينا، أليس كذلك؟ يجري تمريرها في سلسلة الاستعلام عن طريق PHP. لدينا = ح ب = ز حيث وب هي أسماء المتغيرات. وبالتالي فإن الطريقة نتمكن من الوصول إلى القيمة التي تتطابق مع مفتاح في قاموسنا هو فقط بالقول _GET_GET ["أ"]. حتى الآن لدينا _GET ["أ"]. وإذا كنا مجرد استبدال داخل صدى لدينا، إذا كنا نردد _GET_GET ["أ"] - وسنرى إذا كان المصحح يلقي أي أخطاء حول this-- وسوف ننقذ أن وإغلاق هذا الخروج. فتحه. لذلك نحن مجرد القيام الحق الآن، لذلك يجب أن لا يهم ب. "لها" و "له" - "همهمة." "لها" و "همهمة". ًيبدو جيدا. وطباعتها "لها"، والذي هو مجنون. ولكن هذا هو بالضبط ما كان يحدث في P ضبط 6. في الأساس، وضعت ما P 6 كان doing-- صدى مرحبا، name-- حيث كان لديها اسم المتغير وأنه فقط يطلب منك أن اكتب في أن قليلا من النص. كان هناك أيضا بعض رمز إضافية حيث فقد شملت إذا كانت تصريحات، الذي يمكننا القيام به الآن. نستطيع أن نقول إن وجدت، التي هي وظيفة داخل PHP، _GET مع تسطير، "اسم" - الذي يقول في الأساس، "إذا كان قد تم شغلها الاسم في" ل أننا يمكن أن يكون مجرد النقر على زر أن يقدم النموذج دون كتابة أي شيء في هذا المجال. ونحن التفاف أن في منطقتنا الأقواس المعقوفة ودية. نحن يمكن أن يكون لها بيان آخر. وهذا كل ما في زاوية PHP قوس، علامة استفهام، قوس الزاوية، اذا صح التعبير. والآن سنرى إذا كان هذا يعمل. وأظل في انتظار أن التصحيح وحماقة لي، في الأساس، لكنه لا يملك حتى الآن. ربما سيكون عليه الآن لأن الذي تحدثت عنه. اجل. فعلت ذلك، في الواقع. لذلك، لا شيء يظهر. هذا بسبب خطأ ما انني كتبت في رمز PHP. وذكرت التصحيح هو صعب لأنه في PHP، ونحن لا ترجمة عليه مسبقا والمترجم لم يكن مثل، هنا حيث الأخطاء الخاصة بك. ولكن ما يمكننا القيام به is-- قيام الناس يتذكرون كيف تبدو في شبكة مختلفة الطلبات التي PHP-- أو أن المواقع الإلكترونية إرسال؟ [؟ مالين؟] فعل هذا في محاضرة مرة أو مرتين. تتذكر أين نذهب للعثور على ديون مختلفة و 200 أكس، كل هذه الرموز التي يتم إرسالها من خلال HTTP من صفحة ويب إلى صفحة ويب؟ هل يتذكر أحد أين نذهب للقيام بذلك؟ الحضور: الصفحة المصدر. SAM LEVATICH: مصدر ل. بالضبط. إذا ذهبت إلى صفحة Source-- الكمال. حتى الصفحة المصدر تسحب حتى مفتش. وأنا باستخدام سفاري. وهناك الكثير من شئت ربما يكون استخدام كروم أو فايرفوكس. ولكن طالما كنت في أي browser-- الحديثة وتتردد في اتباع جنبا إلى جنب إذا كنت تريد. يمكنك كتابة حتى هذا الرمز أو مجرد إلقاء نظرة داخل مجموعة P 6 دليل لبعض الأشياء مماثل. hello.php هو ما نحن تعمل حاليا على محاكاة. لذلك هناك مجموعة متنوعة من علامات التبويب. يمكننا أن ننظر في جميع الموارد. يمكننا أن نرى شفرة المصدر. لذلك يبدو أنه لم الحصول على الجسم الماضي في نهاية المطاف. وجدت خطأ في PHP وذلك توقف تحميل صفحة ويب كاملة. نحن لا نملك حتى نهايته شعارا لHTML أو أي شيء. وإذا نظرنا إلى الشبكة، نستطيع نرى أننا يتم إرسال الطلب. هذا هو المجال. هذا هو العنوان. انها وثيقة. نحن نستخدم طريقة الحصول عليها. وانها الأحمر. أو كان أحمر عندما كنت لم بتحديده. كيف يمكنني إلغاء تحديد ذلك؟ حسنا، لقد كان أحمر. اسمحوا لي أن التحديث. ذلك هو. الآن حان أحمر. لذلك فمن أحمر، وهو ما يعني أنها فشلت، وهو أمر سيء. لذلك دعونا نتفحص لماذا فشل ذلك. لذلك كل ما يمكن للمصدر الصفحة أقول لك أساسا هو الشيء الخاص بك لم تنجح، والتي يمكننا أن نرى بالفعل. ذلك من شأنه أن هناك من الناحية المثالية أن تكون أداة أكثر فائدة. وهناك بعض ملحقات المستعرض التي تسمح لك لتصحيح PHP، ولكننا لن تكون الكتابة طن من PHP، لذلك قد يكون مجرد أفضل لننظر من خلال التعليمات البرمجية بعناية وفقط للتأكد من انها لا تفعل أي شيء آخر. لذلك دعونا نرى ما اذا كان شكل هذا إذا البيان هو أين تكمن المشكلة. أريد تحميل أن يعود هنا. هلو مرحبا. لذلك هناك مشكلة هناك. وذلك لبناء الجملة الصحيح من PHP، PHP يجري أن يكون C تشبه في ذلك سترى الحلقات. سترى إذا كانت تصريحات. سترى كل هؤلاء الأصدقاء بعد أن كنت قد تصبح مألوفة مع أكثر من مسار هذا CS50 فصل دراسي. ولكن أفضل طريقة لمعرفة كيفية تفعل شيئا في PHP هو جوجل انها أو أن ننظر إلى بعض الأمثلة من التعليمات البرمجية PHP لأنك تعرف وظيفة. أنت تعرف ما استطعتم تفعل مع البرنامج. يمكنك الحلقة. يمكنك حلقة عدة مرات كما تريد. يمكنك حلقة في كل أنواع الطرق المختلفة. يمكنك إنشاء الوظائف. يمكنك إنشاء الوظائف التي استدعاء وظائف أخرى، وظائف التي تطلق على نفسها. وكان لديك أسماء لهذه المفاهيم. كنت قد حصلت على العودية، حلقات، إذا والتدفقات التحكم الأخرى. وهكذا جوجل هو أفضل صديق. أقول حتى "، PHP إذا بيان "وهناك سوف أكون يكون طن من المشاركات مع أجوبة لأشخاص آخرين الذي كان لأسئلة مشابهة لك، الذين بدأت للتو مع PHP وهي غريبة عن شيء بناء الجملة. لأن لدينا ترف يجري قادرة على النظر في التعليمات البرمجية في مجموعة P 6، ونحن في الواقع سحب منه ونرى أن حسنا، ها شيء مثير للاهتمام. لذلك هذا هو ما في الواقع بدا وكأنه في وضع P 6. حتى إذا ذهبنا من خلال هذا، يمكننا أن نرى أن لدينا حصلت العديد من هذه القليل بت علامة استفهام مثل PHP. وليس هناك الأقواس المعقوفة. هناك نقطتين. وهناك مجعد تستعد في PHP، ولكن هذا هو شكل وطريقة القيام PHP التي تعمل بشكل جيد مع HTML لأنه كما سترى، ونحن إغلاق تشغيل هذه PHP bits-- وإلسس والمؤسسة الدولية للعلوم وجميع هكذا- يضرب ثم نحن التبعثر HTML بداخلها في حين لا يزال بعد ضبط التحكم في التدفق من قبل PHP. لذلك أنا ذاهب لمجرد المشي السريع من خلال هذا لأنه الكثير من الشيء نفسه المفاهيم التي كنا نفعل من قبل. لدينا إن لم يكن فارغا، بين قوسين، _GET_GET ["اسم"]. هذا هو كل الاشياء نفسها. نستخدمه القاموس _GET أن PHP يرسل بناء على طلب من الأشكال، لأنه معالم العمل، وهذه الطريقة الحصول عليها. ثم أن ينتهي ذلك. القولون هو الدال على ان تفعل هذا إذا بتقييم إذا البيان إلى true. انها مثل متعرج. في واقع الأمر، بل هو متعرج في لغات أخرى مثل بايثون، التي قد تواجهها إذا كنت فقط نفعل ذلك المشروع النهائي الخاص بك. ثم هذا الخط، مرحبا. ثم لدينا هذا شيء غريب. لدينا المزيد من الأقواس. ليس هناك HTTP there-- أو PHP، آسف. ولكن هناك علامة المساواة. ومن ثم لدينا وظيفة، htmlspecialchars (_GEThtmlspecialchars (_GET ["اسم"]). هذا هو نوع من مثل أكثر نسخة مطورة من صدى. كما كنا نردد كطريقة لطباعة الامور في PHP. هذه هي وظيفة هذا المعرفة في PHP التي سنتعامل مع بعض أكثر مقرفة الشخصيات والقيم بايت هل يمكن أن تمر عليه. انها دائما الأكثر أمانا لاستخدام هذا. إلا أن أردد سوف قيام بهذه المهمة على ما يرام إذا نحن لسنا التعامل مع أي شيء مقرف جدا. وحتى هذا له نفسه تأثير أساسا، هذه الاشياء في فترة ما بين السؤال يتم تقييم العلامات من قبل PHP. htmlspecialchars بإرجاع HTML طيبة القيمة المطبوعة من _GET_GET ["اسم"]، أي كل ما كتبته في النموذج. وبعد ذلك سوف نقول مرحبا، فاصلة الفضاء، وبعد ذلك. هذا الشيء كله بين أقواس زاوية ستحل محلها مهما htmlspecialchars يضع بها. بحيث تشبه الأساس ما نقوم به. وليس لدينا بيان آخر هذا مرحبا العالم، الأمر الذي يجعل الشعور. حتى الآن دعونا نعود إلى موقعنا رمز ونرى exactly-- اه. قلت موجود، وهو لا وهو الأمر الذي أردنا أن نفعله. أردنا أن نقول يست فارغة. وهذا ما ينبغي أن يعمل قليلا أفضل قليلا، وليس _GET_GET فارغة ["اسم"]. وأن متعرج المباريات التي متعرج. لدينا الأقواس المعقوفة لدينا هنا. صدى مرحبا _GET ["اسم"]. دعونا نرى ما اذا كان هذا يعمل على نحو أفضل قليلا. نحن لا يزال قيد خادمنا. مرحبا جيسون. مرحبا جيسون. وعملت هذه المرة. وحتى هذا دليل أنه يمكنك بالفعل استخدام الأقواس المجعدة التي قمت تعرف والحب في كود PHP في HTML. رمز PHP المقدمة لل كنت في PSET 6-- PSET 6-- يوفر طريقة أخرى لل تفعل هذا الشيء نفسه. حتى الآن لدينا قوة. لدينا وظائف لتنفيذ رمز PHP الذي رأيناه في PSET 6 قبل أنفسنا، من حيث الأساس. وقبل أن ننتقل، ما هي بعض من الأسئلة التي لديك في هذه المرحلة؟ نعم (غير مسموع). الحضور: حتى في الإصدار في pset6، عند تشغيله، وهناك مساحة. وأستطيع أن أرى حيث المساحة بعد الفاصلة. [غير مسموع] بدء قوس مفتوح. كيف يمكنك دمج الفضاء في الطريقة التي كتب رموز الخاصة بك؟ المتحدث: هذا سؤال جيد. وذلك دعونا هذا الرقم. لذلك هذا سؤال جيد حقا واحدة أنني لم ينظر فيها. ولكن دعونا نفعل ذلك معا. أولا حتى من كل شيء، ما أفعله مع صدى عندما كنا نردد فقط مرحبا، فإنه إخراج مرحبا. إذا كنا نردد الآن هذا يحصل على منفصلة الخط، دعونا نتفحص ما يحدث. لذلك نحن فوق هذا. نواصل القول، مرحبا جيسون. ذلك مرة أخرى، ليس لدينا هذه المساحة. وهذا لأنه، في PHP، عندما يكون لدينا صدى، بغض النظر عن عدد spaces-- كلا، ليس V-- بغض النظر عن عدد الأماكن وضعنا في here-- إذا كنا الآن تحميل ما يصل مرة أخرى، مرحبا جيسون. نعم، انظر، كل تلك حصلت تؤكل مسافات تصل. وهذا شيء يفعل وظيفة الصدى. لذلك لرعاية هذا الفضاء، وهذا هو أحد الأسباب لماذا لا تستخدم الصدى واستخدام htmlspecialchars بدلا من ذلك. أنا الغريب ما من شأنه يحدث لو فعلنا هذا حيث أننا المغلقة مسافة في السلسلة. أنا بصراحة لست متأكدا ما سيحدث عندما أفعل هذا. ذلك أن طريقة واحدة. هذا هو أحد السبل لالعناية بها. إذا كنت التفاف الفضاء في سلسلة، ثم المساحة وسوف يكون الناتج بشكل جيد من قبل الصدى. أسلم شيء نفعله هو للقيام htmlspecialchars. هذا هو دائما رهان آمن. ولكن الآن لدينا طريقة للقيام مع صدى إذا لزم الأمر. وعلى نحو مماثل، نستطيع صدى خطوط جديدة، كل نوع من الاشياء كنت على دراية به في PHP. أي شخص آخر، ما هي أكثر من ذلك الأسئلة التي أشخاص آخرين لديهم في هذه المرحلة حول PHP؟ إذا أظهر الناس حتى في وقت متأخر قليلا، أنا سعيد للبقاء بعد قليل والحديث عن بعض من البداية. وانها أيضا جميع livestreamed، وأرشفتها، والذي هو مجنون. على أي حال، دعونا حتى الآن في القيام ببعض المزيد من الأشياء متقدمة مع PHP. واحدة من أولى الأشياء التي وأدخلت إليها في كان مئوية لمدة الحلقات. وPHP لديه أقوى ل دعا حلقة حلقة foreach. ويبدو this-- لكل فارغة كما فارغة، الأقواس، فعل الشيء. لذلك هذا هو الأساس الاختزال. ترى، لحلقة باعتباره بناء بنائي وقد وضعت في C والتجمع اللغة واشياء من هذا القبيل. وضعت في C، على وجه التحديد، واختزال بالنسبة للكثير من أنواع الحلقات التي من شأنها أن يرى الناس. مثل عندما كنت كتبت حلقة، هناك في كثير من الأحيان خطوة التهيئة يعدموا في البداية، ل شرط فيها حلقة من شأنه أن stop-- وهذا هو ميزة هذا فقط في حلقة من الوقت، أو أن لديها في حين بالضبط مجرد أن feature-- ثم خطوة incrementation في نهاية المطاف. وهكذا وكنت غالبا ما تجد نفسك كتابة التعليمات البرمجية كما يلي. انا ذاهب الى محو بعض من ذلك. ولكن إذا نحن بالتكرار عبر الأحرف في صفيف، على سبيل المثال، كما قمنا حصلت على مجموعة من الأحرف. آسف لاعادة C. وأنا أعلم، كنت تعتقد انك تم القيام به. ولكن هذا فقط لغرض تعلم PHP، وأعدكم. حتى إذا كنت حصلت على شارع شار من طول 8، ودعونا أقول ذلك يقول Hellooo مع فارغة زائدة. عظيم، حتى أن سلسلة لدينا. ومن ثم كان لدينا لحلقة. لدينا كثافة العمليات ط يساوي 0. ونحن نريد للخروج عندما STR ط يساوي لا يساوي قيمة خالية، لأننا الخروج عندما يساوي فارغة. وبعد ذلك يمكنني ++ في كل نقطة في لحلقة. تفعل شيئا مع شارع ط. لذلك كانت الصيغة الأساسية، كان لدينا هذه المجموعة أننا أراد لعلاج عناصر منفصلة. ولكن ما كان علينا القيام به هو اضطررنا لذلك في الأساس إنشاء صحيح منفصل المتغير الذي كان يعول على ما يصل كل مرة ذهبنا خلال الحلقة. ثم علينا أن ندعو ثم strstr [أنا] في حين أن ما كنا نريد حقا أن تفعل واذهبوا شخصية بواسطة حرف، أليس كذلك؟ نحن لا نريد لزيادة ل صحيح ثم استخدام ذلك صحيحا للوصول إلى كل حرف على حدة. كنا نريد حقا حرف بحرف. وهكذا لكل بذكاء يحسب هذا بالنسبة لنا. اذا كان لدينا مجموعة، والتي يمكن أن نعلن في PHP كما just-- اذا كان لدينا متغير ودعا، دعنا نسميها مجموعة. معجزات للكتابة، انها تماما مثل أي متغير آخر. انها مجرد صفيف. وعلينا قليلا (غير مسموع) مثل 1، 2، 3، مجرد نوع من مجموعة تهيئته. لا بأس، لا أحب بلدي foreach. ولكن إذا كنا لا foreach-- الواقع أنا كتبته أن القليل من الخطأ. هناك طريقتان للقيام حلقة foreach. هناك هو في النحو وبناء الجملة كما. ونحن في طريقنا للقيام في جملة أولا، وليس كما. هذا هو خطأي. الأسطوانات foreach ذلك في مجموعة، صدى الأسطوانات. وPHP ويصرخ في لي لسبب ما. انها إيجاد غير متوقع في في شيء، وهو قليلا من عناء. ولكننا سوف معرفة لماذا هذا في لحظة. حتى لا أحب ذلك. دعونا نحاول باستخدام الاقتضاء. فإنه يفضل كما بناء الجملة يبدو. لذلك دعونا نفعل مجموعة foreach كما الأسطوانات. لذلك تفسير قليلا ما حدث للتو هو كما يتم تركيب saying-- جيدا أولا، دعونا نلقي نظرة على ما يطبع من ذلك. لذلك نحن فتح IDE لدينا. نذهب هنا. نقول، مرحبا جيسون. وفعلت 123، التي كانت محتويات من الصفيف الذي خلقنا حتى أعلى. الغوص حتى في هذه حلقة Foreach، لدينا متغير يسمى مجموعة وهي مجموعة من ثلاثة أرقام. وبعد ذلك نقوم به foreach مجموعة كما الأسطوانات، صدى الأسطوانات. وهذا أكثر بديهية من للوب. نقوله، وعلاج كل من الأشياء في مجموعة كما الأسطوانات، أريد منك أن تعطيني الأسطوانات. وهذا هو بالضبط ما تقوم به. PHP يتم حساب ذلك عندما تقول مجموعة foreach، وكنت تتعامل مع صفيف، ما كنت تريد الذهاب الى تكرار عبر هي الأحرف في ذلك مجموعة، هي [إينتس] في ذلك طائفة، هي عناصر في أن مجموعة. وانه مما يتيح لك تخزين هذه المتغيرات كما الأسطوانات، والأسطوانات ثم الإخراج فقط على الفور بدلا من القول، لدي متغير يسمى i و ثم أريد أن الناتج strstr [أنا]. وبحيث يتيح لنا أن نفعل الأشياء باردة. مثل أساسا ليس لدينا لخلق هذه المتغيرات وكأنني وتفعل كل هذه الاشياء incrementation في نهاية المطاف. PHP يعتني كل ذلك بالنسبة لك. حتى الآن دعونا نتحدث عن foreach كما الأمر ينطبق على القاموس _GET لدينا. ولذا فإننا سوف تعلق هذا بسرعة. لذلك لدينا مجموعة _GET لدينا. لدينا هذا المتغير. وانها حصلت على بعض الاشياء في ذلك. الآن، لدينا فقط متغير واحد يجري تمريرها إليه، وهو الاسم. ولكن إذا كنا اضغط Enter، الآن فإننا يمكن أن يكون اثنين من المتغيرات. فإننا يمكن أن يكون الاسم والعمر، على سبيل المثال، إذا كنا نريد للحصول على سن وأيضا اسم الشخص، بضحك بما فيه الكفاية. وحتى الآن _GET سوف يكون القاموس مع اثنين من العناصر، مع اثنين من أزواج قيمة المفتاح. وkey-- أولا انا ذاهب الى أكتب هذا واحد على اللوح أيضا. لدينا قاموسنا هو _GET. آسف، فإنه من الصعب قليلا لنرى. ولكن في الداخل قاموسنا لدينا الاسم، والذي سيكون شيئا اننا معين. وسيكون لدينا العمر، وهو أيضا سيكون شيء أننا معين. وهذا هو مجمل من قاموسنا. حتى انها حصلت على عنصرين في ذلك. وذلك لأن foreach حلقات هي ذكية، ونحن قد يعتقد، وبشكل صحيح قد تعتقد أن foreach يمكن تكرار خلال هذا القاموس، طبع القيم التي وردت بالاسم والعمر. لذلك دعونا في الواقع تفعل ذلك تماما. دعونا بناء حلقة foreach. ونحن في طريقنا للقيام ل_GET كما. ونحن في طريقنا للقيام بما يلي. لذلك دعونا نرى ما سيحدث لو أننا اكتب كلمة عادلة، ثم تقول صدى الكلمة. ونحن في طريقنا أيضا أن أردد خط جديد فقط لجعله أكثر وضوحا قليلا، ماذا يحدث هنا. لذلك دعونا نرى. انها ليست إعطائي أية أخطاء. ونحن سوف يغلق هذا. على موقعنا على الانترنت، وكنت على وشك أن تفعل الكثير من ذلك على مدار pset7. لذلك نحن نقول اسمي سام. عمري هو 45. ليست كذلك. ولكنه يطبع بها، كما هو متوقع، وسام 45. وهكذا ستلاحظ أن ما حلقة foreach did-- هنا، دعونا نعود إلى أن ذلك متروك على board-- نحصل _GET ككلمة. وكانت هناك أربعة أشياء في _GET. ولكنه المطبوعة فقط إلى أمرين. foreach، ويجري النفس مخابراتها، يفترض أن ما أردنا حقا والقيم، وليس المفاتيح. ولكن هناك الطريقة التي يمكننا طباعة من مفاتيح كذلك، إذا كنا نريد. إذا أردنا أن نعرف أيضا ما كانت تسمى هذه المتغيرات، هناك طريقة تمكننا يمكن الوصول إلى هذا أيضا. والطريق إلى نوع من يفعل ذلك، لذلك يمكننا القول، يتيح حقا تقسيمه إلى أزواج قيمة المفتاح. لذلك دعونا نرى ما سيحدث الآن. لذلك لدينا مفتاح. لدينا قيمة. لدينا آخر جديد خط لهذين. ودعونا نرى ما سيحدث عندما نفعل ذلك الآن. أنا لا أعرف كيف القديمة جيسون هو. جيسون 15. لذلك لدينا اسم جايسون، 15 سنة. حتى تمكنا من الوصول إلى المفتاح وأزواج قيمة هذا القاموس فقط بالقول النقاط الرئيسية لقيمة. وهذا هو نحوي foreach قليلا من السكر الذي يسمح يمكنك الوصول إلى الأشياء في القاموس. لذلك نأمل هذا يؤكد النوع من قوة حلقة foreach. يمكنك حد كبير على مرمى أي شيء يبدو iterable، مثل أي شيء له مضاعفات عناصر مثل صفيف، مثل تلك dictionary-- هما الأشياء الأساسية التي سوف تعمل مع سواء في الحياة وفي PSET 7. حتى تتمكن من رمي الاشياء في ذلك، وأنها سوف معرفة ماذا تريد أن تفعل معها. انها سوف يقولون، حسنا، أنا ذاهب للحصول على هذه الأمور من البيانات التي صدر لي. وهذا شيء كنت ذاهب إلى استخدام الكثير من في PSET 7. انا ذاهب الى التمرير السريع إلى أسفل فقط لنرى أين أنا في. هل الناس لديهم أسئلة في هذه المرحلة؟ أسئلة في كل شيء؟ نعم فعلا؟ الحضور: حتى مع المفتاح والقيمة، هل يمكن تسميته أي شيء آخر وسيكون لا تزال تعمل؟ المتحدث: عفوا. نجاح باهر، أنا حذفت تماما على خط كامل. عمل عظيم. لذلك، أ. مفتاح وقيمة هو مجرد الاتفاقية. انها مفيدة. سوف تحصل على بعض تصميم نقاط، وربما بعض نقاط النمط للقيام بذلك لأنه ينقل حقا نية. ولكن نقول وyarp. الجمهور: لم يكن لديك ل تغيير أي شيء في ملف HTML لكي تعكس ذلك؟ رئيس مجلس النواب: لا على الإطلاق. الحضور: وأنه يعلم تماما أن بسبب يساوي أكبر than-- المتحدث: نعم. الحضور: مؤشر --that أن that's-- المتحدث: نعم. هذا هو جملة foreach، ولكن نعم. الحضور: ليست هناك أنواع. حتى ما إذا كنت تريد العمر أن يكون سوى عدد؟ هل هناك طريقة للقيام بذلك؟ رئيس مجلس النواب: هناك طرق للتحقق مما إذا المتغيرات تتوافق مع أنواع معينة. لذلك PHP يطلب أكثر من ذلك بقليل من لك لأنه لا توجد أنواع في. بعض الطرق التي يطلب أقل. في بعض النواحي ما يطلب أكثر من ذلك. لأنه إذا كان لديك فقط شيء في متغير، لديك أي فكرة ما هو نوع من ذلك. ولكن إذا كنت ذكيا حول المتغيرات التي تقوم بتعيينها أنواع لوالتأكد من الذي يعمل فقط return-- لك نريد وظائف للعودة الوحيدة نوع واحد من قيمة ذلك التي يمكنك الأساس نتوقع أن المتغير الذي على العودة من وظيفة ستكون من نوع التي تعتقد أنها ستكون، في الأساس. ولكن هناك بعض الطرق التي يمكنك الاختيار. أنا لا أتذكر منها من على قمة رأسي. أنا في انتظار أن يتحول اللون الأزرق. isint؟ isstr؟ هناك طرق بنيت في PHP التي يمكن أن تحقق نوع من المتغيرات بالنسبة لك. ولكن إذا قمت بتعيين المتغيرات بذكاء، لا ينبغي لك يجب أن نفعل ذلك كثيرا في PSET 7. ولكن هذه الأساليب لا وجود لها. وهذا شيء هو في اللغة نفسها. وأنا لا أتذكر بناء الجملة دقيق. حتى أننا يمكن أن ننظر إليه. ولكن الوقت هو جوهر المسألة. هل لديك أي شخص آخر لديك أي أسئلة أخرى؟ نعم فعلا. الحضور: أنا واحد فقط أكثر من ذلك. حتى ذكرتم طريقة GET، ولكن أنت لم تذكر الطريقة POST. نحن العودة إلى ذلك؟ المتحدث: نعم، ونحن سوف يعود إلى ذلك. هذا هو بالضبط ما كنت أبحث في هاتفي، والذي انخفض الآن نائما، ولكن سوف تجد ذلك. مجرد التأكد من أننا ضرب كافة الملاحظات PHP. نعم، ليس هناك إصدار التصحيح. نعم، لدينا عدد قليل من أكثر الأشياء التي نريد أن نفعله الآن في هذه المرحلة. لذلك نتحدث عن POST، التي ذكرتها، والفرق الوحيد بين GET و POST هي أن تذكر عندما ننظر إليها في هذا URL ورأينا، أوه، اسم يساوي والعمر يساوي yarp على حق في URL هناك بالنسبة لنا. المنصب هو أكثر من ذلك بقليل السرية مع مرور للمعلومات. لذلك إذا كنت لا تريد مستخدم أن تعرف، على سبيل المثال، كنت لم أكن أريد اسم المستخدم وكلمة المرور لشخص تسجيل حاليا في ليتم عرضها في وURL، وهو أمر معقول لتكن ترغب في URL، لأن شخص يمكن أن نرى ذلك. إذا كانت تصل شخص إلى صفحة، أنت لا أريد URL الخاصة بالملصقات هناك، لأن ذلك من شأنه أن يسمح للناس للدخول فقط مع لصق عنوان URL بدلا ملء فعلا نموذج. المنصب هو قليلا أكثر سرية. والشيء الوحيد الذي سيكون لدينا لتغيير هي هذه الطريقة، وتغير من الحصول للنشر. ثم داخل HTTP، بدلا من ذلك للوصول إلى _GET مجموعة، ونحن في طريقنا للوصول إلى _POST مجموعة. ونحن سوف تلاحظ أنه إذا نفتح هذا يعود مرة أخرى، جيسون ينخفض ​​ببطء في العمر. اسم جايسون، سن 14. نفس الاشياء للملوثات العضوية الثابتة. ولكن نذهب إلى URL و هذه المتغيرات ليست هناك. وطريقة هذا المنصب passes-- لذلك تذكر كيف ننظر إلى مصدر صفحة. نذهب إلى الشبكة. نحن تحديث. وهذا هو آخر شيء سيتم نشر تعطيك تحذيرات حول. كنت قد رأيت مربع، وهو النص مربع مثل هذا في المتصفح الخاص بك. هل انت متأكد أنك تريد لإرسال النموذج مرة أخرى؟ المنصب هو ما الذي يرسل هذه الأشكال. لأنه في الاساس إذا قمت بإرسال بك معلومات بطاقة الائتمان لشخص ما، التي لن تظهر في URL. وهذا ما سيكون طلب POST. لذلك عندما قمت بتحديث الصفحة، انها إعادة إرسال هذا الطلب بعد. حتى الآن نحن لا نريد أن ترسل تشكل مرة أخرى لأنه لن لخلق أي مشتريات مكررة. ونحن سوف تلاحظ أن أسفل هنا، طريقة نستخدمه هو POST. وأنه لم بالفعل نقل بايت. أنها نقلت 401 منهم. صغيرة جدا في البرنامج. ولكن لا يوجد مكان يمكننا أن نرى القيم التي يتم تمريرها. صفحات الويب نفسها يمكن أن نرى، لكننا كمستخدمين ليسوا قادرين على رؤية، إلا إذا كنت القراصنة. إذا كنت القراصنة جيدة، يمكنك أن تبحث. إذا كنت تعرف الأساسية شكل HTML، سوف تجعل القيم تعرف بنفسها في الصفحات. عليك أن تكون قادرا على رؤية. سوف يكون هناك القيم، وانهم قليلا أقل وضوحا بالنسبة لك الوصول إليها، من حيث الأساس. هل لدينا أي أكثر من ذلك أسئلة حول GET أو POST before-- ما نحن في طريقنا للقيام المقبل هو في الواقع نظرة على بعض من قانون ان كنت تعطي في PSET 7، والحديث عن كيف يستخدم بعض هذه المفاهيم، والحديث عن الأشياء التي أنت ذاهب لدينا لتفعل قليلا في PSET 7. أي أسئلة أخرى قبل ذلك؟ المزيد من الأسئلة يا رفاق يكون؟ رائعة. كل الحق، دعونا ننظر قليلا في PSET 7، لا شك ما كنت جميع معظم متحمسون. أعني، هذا هو الشيء الذي ديفيد يمر قليلا. ولكن سيكون لدينا ثلاثة الدلائل على أعلى، وكذلك ملف التكوين. هذا لقواعد البيانات، والتي سنقوم الحديث عنها في حوالي خمس دقائق. يشمل ذلك، تحتاج أبدا للنظر في هذا الدليل إذا كنت لا تريد ولكن من الجميل ل نعرف أن هناك كل أنواع من المساعدين. المساعدون مثل وظائف مفيدة. ومن ثم لدينا التكوين، الذي يحدد بعض الاشياء. هناك بعض الوظائف التي CS50 له كتابي التي هي في المساعد والتكوين. وبعض PHP التي يخرج بالفعل في ملفات سوف تفعل الكثير من فرز أكثر عمل المحطة من منفرجة بالنسبة لك. مثل إذا ذهبنا إلى الجمهور login.php، وهو ما يظهر الحق عندما تذهب إلى PSET 7. سنرى أن هناك هذا يتطلب بيان. وهذا النوع من مثل تشمل حادة، الهاشتاج يشمل إذا كنت من الجيل الجديد. ولكن هذا في الأساس يقول أنني بحاجة الوصول إلى جميع وظائف في ملف config.php. ويمكن أن يكون لديك تتطلب لجميع أنواع الأشياء الأخرى. التكوين يتطلب فعلا المساعدين. لذلك كلما كنت بحاجة الى التكوين، وكنت أيضا بما في ذلك أو تتطلب المساعدين كذلك. بحيث يتيح لك الوصول إلى جميع وظائف بارد أننا في طريقنا للاستخدام، أشياء مثل تقديم. أنا فعلا الذهاب الى تخفيف هذه أسفل قليلا. وبالتالي فإن وظيفة ثم نحن الذهاب إلى المشي من خلال قبل أن ننتقل إلى SQL قليلا بت هي وظيفة login.php، فقط لأنه يستخدم بعض المواضيع التي تحدثنا فقط عن في PHP. ترى أول شيء هو إذا $ _SERVER. هذا هو عالمي متغير آخر كنت على وشك أن تتعامل معه. انها مثل _GET و_POST، ولكن ماذا يحتوي الخادم هذا يمكن أن تسمح لك معرفة ما إذا كانت طريقة الطلب كان GET أو POST. كما سبق ما كنا نقوم به هو فقط في رمز لنا أن كتبنا، كنا مجرد تغيير أن يكون GET و ما بعد اعتمادا على ما لديها HTML. ولكن هناك صفحات التي يمكن أن تكون الوصول مع كلا النوعين من الطلبات. وكنت قد ترغب في القيام أشياء مختلفة اعتمادا على نوع الطلب، مثل تسجيل الدخول فقط لا. حتى تتمكن من التحقق من أن الطلب طريقة من خلال مفاتيح الوصول، من خلال استخدام مفتاح والحصول على قيمة شيء ما في القاموس _الخادم. بحيث العالمية آخر متغير مثل _GET و_POST. اذا كان يحصل، ونحن نريد ل تقديم نموذج تسجيل الدخول. تقدم هي وظيفة هذا الأساس فقط يضع فوق HTML المناسبة ويمررها بعض المعلمات. هذا العنوان هو معلمة هذا المستخدمة في عرض، الغريب، عنوان الصفحة في السؤال، والشيء هنا، نقول مرحبا أو في مثالنا السابق. الآن لدينا شيء مختلف. آخر إذا كان POST، نحن تفعل بعض الأشياء الأخرى. نحن نستخدم هذه الطريقة فارغة. انها ليست موجودة، انها فارغة. ورأينا من قبل، PHP لديها قدر لا بأس به من المدمج في الأساليب التي ديفيد will-- إذا كان هناك هي الطرق التي هي مفيدة لكم، وسوف يتم تنبيهك لك في المشي من خلال أن ديفيد يعطي نظرة عامة في بداية، وأيضا بت مفيدة Zamyla ل. انها العودة الجميع. يمكننا جميعا أن نفرح. الاعتذار هو اسم على مسمى وظيفة الذي يطبع فقط أساسا من بعض رسائل الخطأ، لأن CS50 غير مهذب جدا. والآن هذا، وهذا هو صعبة بعض الشيء لأن هذا حيث أننا الاستعلام عن قاعدة البيانات. الآن نحن لم نتحدث عن قواعد البيانات. ونحن في طريقنا لفي القادم خمس دقائق أو نحو ذلك، والحد الأقصى. ولكن هذا هو وظيفة وقد كتب أن CS50 للحصول على جدول أساسا من قاعدة بيانات أننا نعمل مع في PSET 7. أنا سيئة حقا مع بلدي صفر الفهرسة اليوم. ولكن نعم، هو 7. حتى الاستعلام انها تسير للعودة مجموعة، هو في الأساس بت الرئيسيين. ولأن هذه الأمور لا يكون الكتابة، حتى الصفوف مجموعة من المصفوفات. لأننا عندما تفكر في طاولة، ما نحن في طريقنا للقيام هو، كما تعلمت في psets مثل لعبة من 15، على أي حال حيث كان لديك لاستخدام مجموعة مزدوجة، ونحن أساسا لدينا مجموعة من الآخر صفائف يجعل الجدول. وكنت قد حصلت الصفوف والأعمدة. وبعد ذلك يمكنك الوصول إليها مثل [0] [1]، يمكنك الحصول على [0] [1]. الأشياء الأساسية مثل ذلك. وذلك ما نقوم به هنا في هذه الوظيفة، فإننا نطلب من قاعدة البيانات إذا كان المستخدم هذا في محاولة للدخول، والتي ستكون أرسلت من خلال الأسلوب POST. سنرى نحن نحصل على اسم المستخدم من _POST. أنها سوف أرسلت، المستخدم أو لك، وسوف ترسل قيمة من خلال شكل من خلال وظيفة ل انها اسم المستخدم وكلمة الاشياء. نحن التحقق من اسم المستخدم لمعرفة، هل هذا في الجدول؟ لأنه إذا كان المستخدم يتم تسجيل في، ثم على اسم المستخدم يجب أن يتم تخزينها في جدول المستخدمين الذين لا يوجد في هذا الموقع. وذلك أساسا إذا كان المستخدم في قاعدة البيانات، الاستعلام سوف يعود هذا الصف، وهو صفيف. ولكن الجزء الصعب هو أنه إذا كان حتى لو مجموعة مزدوجة هي فقط من صف واحد، حتى لو كان صف واحد array-- وكأنك حصلت basically-- إذا كنت قد حصلت على حجم واحد مجموعة أن تحتجز مجموعة أخرى، كنت تتعامل فعلا مع عمود واحد. لكنه ما زال يعامل مثل مجموعة مزدوجة. وهذا هو المكان الذي يمكن أن تحصل في بعض الأحيان صعبة، لأننا قد حصلت الصفوف هنا. متغير لدينا هو الصفوف. وبعد ذلك نحن بصدد إنشاء متغير يسمى صف جديد ووضع ذلك يساوي الصف الأول من الصفوف. وستلاحظ أن تعليق وتقول انها في الصف الأول والوحيد. لذلك هذا هو صعبة الجزء حيث يعمل الآن يمكن العودة صفائف بسهولة جدا. ليس هناك mallocs. لن ترى mallocs. لذلك سوف لا نرى أخطاء ثوانى. ولكن وظائف ستظل عابرة حول المصفوفات والبيانات في مجموعات. وعليك أن تكون حذرا من ما بالضبط مهامكم سيعود. وحتى لو كان واحد عمود من هذا القبيل، الاستعلام لا تزال جارية لعودة مجموعة مزدوجة. ذلك أن وصول column-- أو لك أن أفكر في كل هذا كما مقلوب وبما أننا نتحدث عن الصفوف. ولكن للوصول إلى صف واحد، لا يمكنك فقط أن أقول الصفوف. على الرغم من أنه صف واحد، لديك ل لا rowsrows [0] لنوع من القضاء على هذا الشيء الخارجي للمجموعة و يكون مجرد صف واحد الخاص بك. تفعل بعض الأشياء الأخرى. هناك وظيفة دعا password_verify الذي يتحقق من كلمة المرور التي تم نشرها. ومن ثم فإننا نرى عالمية أخرى متغير هنا، _SESSION. جلسة أساسا معرف هي الطريقة التي تتبع من إذا تم تسجيل شخص في أم لا. حتى الآن مع login.php، نحن تسجيل المستخدم في. لذا فإن ما نريد القيام به هو أننا نريد أن يقول معرف جلسة يساوي الصف الهوية، الأمر الذي يجعل من مجرد شعور ل وكل صف لديهم هوية مختلفة عدد كجزء من الجدول. أننا سنصل إلى SQL في الثانية، لذلك إذا كان أي من هذه يبدو قليلا مثل بلاه، ثم سيتم مسح كل شيء. ولكن نحن في طريقنا لتعيين هوية يساوي الشيء الصحيح، تسجيل المستخدم في. أعتذر إذا كان أي شيء يذهب على نحو خاطئ. وهذا هو الغرض في تسجيل الدخول أن الحياة كما يقول البروفيسور مالان. بحيث كان login.php. والكثير من رمز PHP تكتب في PSET 7، وأنها سوف يكون قليلا. لا تنسى أن شمود ل الأذونات المناسبة. سوف يكون هناك قليلا عن أنه في بداية المواصفات. ولكن ان كنت PHP الكتابة ستكون فعل الاشياء التي من مشابهة لهذه. وأنت تسير أن يكون الوصول إلى بعض الأشياء التي ونظرا للكم في المتغيرات العالمية من أن PHP نتعامل مع التيار تسجيل الدخول المستخدم، ما إذا كان هناك كانوا من الطلبات المرسلة إلى هذا الصفحة أشياء مختلفة مثل ذلك. وسيكون من المحتمل أيضا بالتكرار عبر الصفوف من هذا الشيء. في مختلف الوظائف، الاستعلام لا تعود هذه المجموعة مزدوجة. وإذا كان هناك أكثر من صف واحد في ذلك، إذا كان هناك are-- نعم، إذا كان هناك هي الصفوف أكثر من واحد في ذلك، بعد ذلك سوف يكون الجدول. وكنت قد ترغب في تكرار من خلال صفوف من هذه المجموعة باستخدام في حلقة foreach التي وصفنا. لذلك إذا كنت تفعل foreach على ضعف مجموعة، ما سوف word-- هنا، سأكتب فعلا. سأكتب بشكل سريع هنا. إذا كان لدينا foreach الصفوف كما التوالي، ما هو نوع من الصف؟ هل يعلم أحد؟ لك ذلك؟ حتى الصفوف هو مجموعة مزدوجة. فما هو foreach سوف نستنتج أننا نريد من هذه المجموعة مزدوجة إذا نحن بالتكرار أكثر من ذلك؟ يمكننا أن نفترض أن في الأساس انها ستكون إما العناصر، أو الصفوف، أو الأعمدة، في الأساس. وحتى الصفوف والأعمدة نحن ويمكن علاج مثل الشيء نفسه. أساسا ما في حلقة foreach يسير القيام به هو انها سوف تعود الصفوف. الصف ستكون من نوع صف واحد، في حين الصفوف هو مجموعة مزدوجة. لذلك إذا كنت تعطي foreach مجموعة مزدوجة، انها لن تكرار أكثر من مستوى عميق. الذي هو في الأساس أن أقول إذا كان هناك هي ثمانية الخلايا في هذه table-- 1،2، 3 4، 5، 6، 7، 8-- ل حلقة foreach ليست من خلال الذهاب الى كل من هذه الخلايا. ما حلقة foreach ستفعل وأنها سوف تذهب من خلال هذا الصف، يعطيك هذا الصف كله. وبعد ذلك سوف تذهب من خلال هذا الصف. لذلك بالتكرار فقط مستوى واحد عميق. إذا قمت بإضافة متداخلة حلقة foreach، فإنك يمكن علاج كل صف عاد من الصفوف، أن تفعل الصف foreach كعنصر، على افتراض. ثم هل يمكن أن أردد هذا العنصر. لذلك هذا هو موجز تجديد القليل حول كيفية كنت قد تستخدم foreach حلقات في سياق الاستعلام. هل هناك أي أسئلة حول PHP؟ أي شيء على الإطلاق قبل أن ننتقل إلى الحديث عن SQL ومتعة من قاعدة البيانات؟ شعور جيد؟ شعور جيد. حسنا. دعنا ننتقل إلى باور بوينت، والتي ربما تفوت. SQL، ياي. الناس الذين هم في القسم بلدي عادة سوف نعرف أن عناوين فرعية المختصرات دائما مجرد الكلمات الأولى أفكر في تلك المباراة التي algorithm-- أن اختصار. انها ليست خوارزمية. ذلك هو SQL قاعدة بيانات. إنها اللغة التي يعمل مع قواعد البيانات. وجميع قواعد البيانات غير الجداول، على الأقل في الطريق أن SQL يمثل لهم. وهناك طريقة أخرى للتفكير في قواعد البيانات هي قواعد البيانات هي مجموعة من المفاتيح والقيم في الأساس. يمكنك التفكير في قاعدة بيانات كما قاموس وأيضا كجدول. أساسا انها وسيلة لربط بيانات مختلفة مع غيرها من البيانات، في كثير من الأحيان من خلال الصفوف والأعمدة. وهذه هي الطريقة هذا SQL يعمل بشكل أفضل. لذلك هذا هو مثال واحد من الجدول. لقد حصلت على بعض الأمثلة من الناس في بلدي القسم الذي لم يكن لدي الوقت للتغيير. ولكن لدينا أشياء مثل ID، اسم، قوة عظمى، ومسقط. أنا لا أعرف من أين أي شخص هو من في الباب بلدي، لذلك أنا ذاهب لمجرد افتراض الجميع من نيويورك المدينة لأن لدي إحصائية عالية احتمال تكون صحيحة. سوف SQL تأخذ تلقائيا رعاية العمود ID بالنسبة لك. إذا قمت بإدراج صف جديد في قاعدة بيانات SQL، فإنه سيتم زيادة أن رقم الهوية وفقط عصا الأساس مثل خمسة أسماء، قوة عظمى، مسقط، أيا كان إلى نهاية هذا الجدول. ذلك الرقم هو عمود عليك لا داعي للقلق. ولكن، كما في حالة من login.php، عندما كنا تم الحصول على معرف جلسة من جدول ومجرد استخدام ID، ID هو وسيلة لتحديد فريد عنصر من قاعدة البيانات. حتى لو كان لدينا اثنين من سامس، سواء من التي تدرس CS50، وكلاهما من الذين كان من ميلووكي، تلك شأنه لا تزال لديها أرقام التعريف متميزة وبالتالي تكون متميزة في في سياق الجدول. لذلك هذا هو ما يتعامل SQL مع، والعمل مع في النهاية الخلفية. الآن هذه هي الأوامر الأربعة التي ستحتاج للعمل مع SQL. وأنا ألقى كل منهم ما يصل على شريحة واحدة. ولكن ونحن في طريقنا للذهاب من خلال كل منهم على حدة. الأمر الأول هو UPDATE، الذي يفعل ما هو متوقع. ويقول لديك بعض البيانات في الجدول ان هذا الامر خارج التاريخ. مثل إذا كنت حفظ المسار من أسماء الناس والأعمار، وإذا كان شخص ما زيادة العمر، ثم كنت تريد الذهاب الى الذهاب و تحديث السن فقط ذلك الشخص. للحصول على مثال الذي يعمل مع أول table-- لدينا لا داعي للقلق حول كتابة جميع هذه الأوامر في نفس الوقت. ولكن إذا كنت قد حصلت على التحديث باستمرار، التي سوف تكون جيدة لهذا الجزء، لأننا في طريقنا لل العودة الى طاولة المفاوضات. حتى إذا عدنا الى طاولة المفاوضات، دعونا نقول شيء حدث وكان هناك زلزال أو خط الصدع الذي انقسم مباشرة من خلال مدينة نيويورك. وأردنا أن بتحديث الجميع الذي عاش في مدينة نيويورك. انهم جميعا للانتقال إلى ولاية بنسلفانيا. هذا ليس مسقط. انهم جميعا للانتقال إلى نيو هافن. هناك نذهب. لذلك كل شخص في نيويورك ينتقل الى نيو هافن. وحتى هذا شيء هذا تحرير ثلاثة صفوف في هذا الجدول. ولكن في SQL، يمكنك أن تفعل أن في عبارة واحدة فقط. حتى نعود إلى التحديث. اسمحوا لي أن يمحو هذا المنتدى سريعة مرة أخرى. عندما كنا نتحدث عن تحديث، هناك بضعة أجزاء من الجملة التي هي المفتاح. حسنا، كل من بناء الجملة هو مفتاح الحل. لكن الأشياء باللون الأخضر هو اختياري. مطلوبة الأبيض، أسماء محددة مسبقا مثل. والأزرق الفاتح أشياء التي تختلف اعتمادا على الجدول. وهذا ما يحدث مع نظام الألوان هنا، إلى هناك. لذلك إذا أردنا أن تحديث فقط تلك الصفوف من الناس الذين يعيشون في نيويورك، ذلك ما سنفعله إذا قلنا UPDATE؟ لذلك الجدول حيث وضعنا اسم طاولتنا. دعنا نقول فقط اسم جدول أعمالنا هو جدول واحد. لذلك نحن نريد لتحديث طاولة واحدة. ونحن نريد أن set-- ماذا نريد وضعها؟ كذلك نريد أن نقول، PHP column-- ذلك يعامل الصفوف كما معرفات فريدة من نوعها. ثم الأعمدة مجالات مختلفة من تلك العناصر من قاعدة البيانات. وبالتالي فإن العنصر الأول من قاعدة البيانات له اسم سام، قوة عظمى من CS50، ومسقط رأس ميلووكي. لذلك إذا أردنا قال مجموعة، دعونا ننظر في المعلمات مرة أخرى أن مجموعة يأخذ. لدينا عمود يساوي قيمة. لذلك نحن نريد أن نقول بعض column-- التي تذكر هو field-- نريد أن نرى حقل يساوي شيئا جديدا. حتى إذا قلنا مجرد تحديث الجدول 1، تعيين اسم يساوي إليوت. الحصول على بعض الناس من قسم جديد في في هذا الشأن. ولكن إذا كان لنا أن مجرد فعل تحديث جدول 1 اسم مجموعة المساواة إليوت، ما من شأنه نظرة الجدول مثل بعد ذلك؟ الناس لديهم أي فكرة؟ نعم. الحضور: كل شيء في ذلك أن الخلاف أصبح إليوت. المتحدث: كل شيء في الصف الذي؟ الحضور: في الصف الأول. المتحدث: في الصف الأول؟ لماذا الصف الأول؟ أنا لا أقصد أن يلتقط عليك. الحضور: ربما كل شيء في الجدول كله؟ المتحدث: كل شيء في الجدول بأكمله، نعم. وهذا صحيح تماما because-- I كان مجرد مساعدتك في الخروج قليلا there-- لأننا حذفت شرط اختياري WHERE. إذا لم يكن لديك WHERE شرط، ما سوف تفعل هذا الأمر وانه سوف يعمل مع كل صف واحد في الجدول. سوف الجميع اسم أصبح إليوت، في الأساس، التي إليوت سعيد جدا عنه. أو ياني، واحد من اثنين. ولكن الجميع اسم سيتغير. وبالتالي فإن الطريقة التي نستخدمها في WHERE clause-- وهذا ينطبق على كل من هرس التي هي في كل من هذه أشياء مختلفة. لذلك عليك أن تلاحظ أن SET يحتوي العمود قيمة متساوية. وحتى لا WHERE. ولكن هذه هي مختلفة أنواع البيانات. لذلك العمود يساوي قيمة في SET في التعيين. وكأننا نقول إننا نريد لتعيين اسم يساوي إليوت. ولكن في عبارات WHERE، هذه تصريحات المساواة. لذلك دعونا نقول اننا نريد فقط ل تغيير اسم الشخص لإليوت إذا كان اسمهم ريان، دعنا نقول. لذلك عندما نقول حيث اسم يساوي ريان، أن سيكون التغيير الوحيد بنجاح وname-- أنه سيكون فقط تغيير اسم الحقل في الصفوف حيث حقل الاسم يساوي ريان. حتى لو كان لدينا عدة أشخاص يدعى ريان، كل من أسمائهم سيغير لإليوت. هذا هو مشابه للمثال من إذا صدع الانقسامات تحتوي مدينة نيويورك، والجميع ل الانتقال إلى نيو هافن، والطريقة التي يمكن فعل ذلك في بيان واحد هو UPDATE TABLE1 SET مسقط = نيو هيفن حيث يساوي مسقط مدينة نيويورك. هذه هي قوة بيان UPDATE. يمكننا تحديد أي عدد من الصفوف من خلال البيانات الحقيقية حول الحقول في تلك الصفوف. لا نستطيع أن نقول مجموعة UPDATE TABLE1 اسم = إليوت WHERE الصف = 1، باستثناء ما في وسعنا اذا قلنا ID = 1. لذلك نحن ذاهبون ليكون العمل مع المساواة من المجالات، المساواة بين الأعمدة. ولكن باستخدام حقل معرف هو وسيلة ل حدد الصفوف الفردية على وجه التحديد، لأن الحقل ID هي فريدة من نوعها المعرف في قاعدة بيانات SQL. لذلك مثل تحديث صف واحد، ID يساوي 1. تحديث التوالي اثنين فقط تغيير رقم معرف. ولكن قوة WHERE البيان هو أننا يمكن تحديث الأمور بناء على ما بها القيم الحالية لأشياء معينة هي. نعم إليوت؟ الحضور: وماذا لو كنت تريد to-- مرة أخرى، وهذا هو سؤال آخر. ولكن سؤالي الأول كان، حيث يحدث هذا؟ حيث أقوم بتحديثه هذا؟ هذا في مدونة PHP؟ المتحدث: أين قمت بتحديث، نعم. ونحن في طريقنا للحديث من أين كل هذا يحدث نوع من مرة نذهب من خلال كافة الأوامر. ولكن ما تحتاجه ل أعرف الآن هو الأساس قاعدة البيانات SQL الخاصة بك كما هو معمول به شيئا يمكن الوصول إليها من قبل الاستعلام وظيفة، والتي تعرف CS50. حتى إذا كنت تستخدم وظيفة الاستعلام، يمكنك الوصول إلى هذا الجدول. لذلك سوف يتم ارسال هذه أوامر إلى الجدول الخاص بك في ملفات PHP من خلال وظيفة الاستعلام. يمكنك أيضا أن تلعب حول مع الجدول الخاص بك مباشرة. وهذا هو أفضل وسيلة ل اختبار هذا النوع من الأوامر. وسوف نذهب من خلال بالضبط كيف للقيام بذلك في قليلا. ولهذا الأمر UPDATE. وبقية الأوامر ستكون نوعا من ما شابه ذلك، العمل على أشياء مماثلة. وINSERT INTO هو على الارجح الأكثر تختلف عن UPDATE. انا ذاهب الى ترك الامر هناك ل قليلا فقط والعمل على هنا. حتى INSERT INTO، سترى هذا الجدول لا يزال هو نفسه. تريد إدراج INTO. رسملة، SQL هو قضية حساسة. لذلك لم يكن لديك ل استفادة هذه الأمور. وبطبيعة الحال فان الكلمات بيضاء يتم رسملتها. لكنني أيضا ونا مميزا لهم. السبب الوحيد الذي كنت استفادة عندما تلك كنت تكتب لهم هو مجرد التأكيد على أن تلك هي الثوابت. وهكذا يمكنك إما ننظر رسملة أو حقيقة بعد أن قمت الملونة بشكل مختلف. لذلك نحن قد حصلت على INSERT INTO، دعونا نفعل TABLE1 مرة أخرى. هذا هو كل على سطر واحد. أنا مجرد فصل من قبل البيانات المختلفة. لذلك لا تقلق بشأن حقيقة أن جعل TABLE1 وضعها على السطر الثاني. لذلك نحن نريد لادخال INTO TABLE1 بعض القيم. وستلاحظ اختياري الشيء الذي سأحضر إليها في الثانية. لذلك نحن قد حصلت على القيم. لذلك دعونا نقول نريد أن نضيف اندى إلى طاولتنا، لأننا تفوت اندى. اندى مريض. لذلك دعونا إضافة اندى على جدول أعمالنا. تذكر أن عدد ID يتم تحديثه تلقائيا. وبالتالي فإن المجالات الوحيدة التي داعي للقلق حول هي اسم، قوة عظمى، ومسقط. وبالتالي فإن الطريقة التي نفعل ذلك، أبحث في تركيب لدينا، هو أننا قمت فقط حصلت على أقواس، مع فاصلة قيم مفصولة، كل واحدة منها هي القيمة. لذلك إذا أردنا أن تضاف إلى اندى لدينا الجدول، كل ما علينا القيام به هو الصحيح اندى. ما هي القوة العظمى اندى، الناس في القسم اندى؟ وقالت انها ترغب الرحلة، أو ما شابه السرعة، أو شيء من هذا. ماذا لدينا بالفعل هناك؟ لدينا CS50، والطيران، السرعة والقوة. الحضور: السفر عبر الزمن. المتحدث: السفر عبر الزمن، مدهش. ولذا فإننا قد حصلت اندى والوقت السفر، ومسقط رأسها. هذا سؤال جيد حقا. مدينة نيويورك، ما لم يعرف شخص ما. الجميع من نيويورك هو الدرس الذي يسلب من اليوم. ذلك من شأنه أن هذا البيان إدراج، باعتباره الصف الخامس، مع السفر عبر الزمن عظمى ومسقط مدينة نيويورك. ولكن حقل اختياري هو في الأساس وسيلة لتحديد الأعمدة التي بالضبط تريد إدراج الأشياء في. الطريقة التي نقوم به الآن، اندى، السفر عبر الزمن، مدينة نيويورك، يجري في الترتيب الدقيق لدينا اسم table--، القوة العظمى، مسقط. وإذا كنت تريد أن تفعل شيء آخر غير ذلك، مثل القول أنك لا تعرف قوة عظمى لشخص ما، مثل كيف لم أكن أعرف لاندى القوة العظمى في البداية. لذلك كل ما أعرفه هو لها اسم ومسقط رأسها. ما يمكن أن تفعله هو أستطع do-- سوف تمحو هذه العجالة. أريد تحديث الأعمدة فقط. وهذا هو المكان الذي اختياري وتأتي قائمة عمود في اللعب. أريد فقط أن تحديث اسم ومسقط. ثم سأقول القيم. سأفعل اندى ومدينة نيويورك. إذا كنت قد حذفت قائمة الأعمدة ومجرد فعل هذين الأمرين، حيث كان قد ذهب مدينة نيويورك؟ العمود الذي من شأنه نيويورك وضعت المدينة في؟ الناس لديهم أي فكرة؟ القوة العظمى، بالضبط. ولذلك فإن هذا سوف تذهب فقط في النظام. وبمجرد أن تصل إلى نهاية قائمة، وأنها سوف تتوقف فقط ملء الأمور في. والقيم التي سوف عصا في سوف كافة الأعمدة يكون مجرد فارغة. ذلك لأننا محدد اسم ومسقط، نحن ذاهبون الى ID 5، اسم اندى، القوة العظمى NULL. حتى دولة عظمى هي قيمة غير مهيأ. أنت لن بالضرورة الحصول على أخطاء Valgrind نفس إذا حاولت والوصول إليه. سيتم ركزت كل شيء بشكل جيد بها، لأن NULL قيمة في SQL. هذا هو ثابت. وبعد ذلك سوف تكون مسقط مدينة نيويورك. لذلك هذا هو INSERT INTO الأوامر. قبل أن ننتقل، هناك قيادتين أكثر. هل الناس لديهم أي أسئلة حول UPDATE، عن INSERT INTO، حول SQL عموما قبل أن ننتقل على بت النهائية لدينا؟ الناس يشعرون بالارتياح، عظيم. أحبه. لذلك دعونا نتحدث عن SELECT. الذهاب خندق UPDATE أكثر من هنا. وSELECT سوف تكون مشابهة جدا. هدف SELECT، الغرض SELECT في الحياة غير أن أقدم لكم مجموعة من الأعمدة التي تلبي شروط معينة. وعندما أقول تلبية شروط معينة، قد عقلك فورا أعود إلى ذلك جملة WHERE التي ظهرت في UPDATE. وهذا الشرط هو بالضبط هناك في SELECT. إذا كنا لا تضع WHERE البند ونحن نقول اسم SELECT، hometown-- توضيح أن قليلا اسم wrong--، مسقط رأس من TABLE1. إذا كان لنا أن أقول ذلك، ما SELECT سوف تعطينا هو أنه ذاهب لإعطاء لنا double-- جدول، إلى حد ما. وهناك مجموعة مزدوجة إذا نحن التفكير في PHP الحواس. ولكنه مجرد الذهاب ليعطينا مجموعة مزدوجة من اثنين اسم columns--، ومسقط. وسيتم تجاهل ID. وسيتم تجاهل قوة عظمى. وانها سوف تعطينا فقط كل صف واحد من هذا الجدول. حتى إذا أدخلنا فقط اندى، سيكون لدينا اندى. وسيكون لدينا أربعة الأصلي. إذا كانت قد تم تحديثها، من شأنها أن أن تنعكس، وهلم جرا، وهلم جرا. لذلك هذا هو لأننا لم استخدام جملة WHERE. لكننا يمكن استخدامه في بالضبط نفس الطريقة التي تستخدم في UPDATE. إذا كنا نريد فقط جدول أسماء والقوى العظمى من الناس الذين يعيشون في نيويورك، يمكن أن نقوم بتنفيذ بيان مثل اسم SELECT، superpower-- أنا ذاهب لمجرد ترك هكذا- يضرب من TABLE1 WHERE مسقط = مدينة نيويورك. لذلك هذا يثبت ان استطعت الحصول على أعمدة مختلفة تماما، ومن ثم وضع الأعمدة التي سنا حتى الحصول على العودة في جملة WHERE. نحن لا نريد حتى مسقط رأس الجميع. لكننا نريد اسم و القوة العظمى من الناس الذي هو مسقط مدينة نيويورك. لذلك هذا شيء نحن يمكن القيام به مع WHERE الشرط يمكننا التعامل مع الأعمدة أننا لا نريد بالضرورة الظهر. في نفس الطريق في UPDATE، يمكننا التعامل مع الأعمدة التي نقوم به ليس بالضرورة تريد تحديثه. يمكننا تحديث مدينة الجميع من هو اسم غير سام، على سبيل المثال. يمكننا تحديث مدينة الجميع الذي هو رقم 2. حتى مجرد تحديث مدينة الصف الثاني حيث لم يكن لدينا للتعامل مع من الضروري السؤال المشترك. وحذفه، كما كنت تتوقع، حذف من TABLE1. ثم لدينا جملة WHERE آخر. لذا يمكننا القول WHERE ID = 1. حذف الصف الأول. وحذف سيتم حذف دائما على التوالي، أو أنه سيتم حذف بعض عدد من الصفوف. حذف من الجدول حيث مدينة مسقط = نيويورك سيتم حذف الجميع في مدينة نيويورك. هذا إذا كان هناك الطاعون المأساوي المفاجئ وأردت فقط أن إزالة الجميع من الجدول الذي عاش في مدينة معينة التي ضربها الطاعون. قد فهم في سلام. هذه هي أوامر SQL أربعة التي سوف تحتاج إلى استخدام. قد لا تحتاج حتى استخدام كل منهم. ولكن هذه هي أربعة أن CS50 يتوقع منك لتكون مريحة مع الخوض كلا مسابقة (1) وأيضا pset7 وpset8. هناك فقط هذا الجدول مرة أخرى. في هذا واحد، القوة العظمى روي ديها تم تحديثها لأشعة الليزر، والتي مثال أنا لم تستخدم. أنا لا أعرف أي واحد روي تفضل، ولكن قوة. روي لديه القوة العظمى من قوة. لم كاثرين لا تجعل من اليوم. هذا مؤسف. ولكن لديها السرعة الفائقة. حسنا هذا كان PHP. قبل أن نتحدث عن MVC، يفعل أي شخص لديه تساؤلات حول PHP؟ الآن SQL أو PHP إذا كان لديك فجأة نخرج على سؤال حول PHP؟ رائعة. كل الحق، نحن كل مجموعة ثم. لذلك نتحدث قليلا حول عرض نموذج التحكم، دعونا نعود إلى بعض من الاشياء في pset7. فما رأي نموذج تحكم is-- لست الذهاب لحفظ التغييرات بلدي للدخول لأنني ذبح تماما. ولكن أساسا لدينا اثنين أشياء منفصلة مستمرة. لدينا جمهور الدليل الذي يحتوي على التعليمات البرمجية التي يجري إعدامه وصفحات الويب التي سيتم زيارتها. وعلينا أيضا أن هذه الآراء الدليل. وجهات النظر يحتوي على القوالب. هذا ما وظيفة render-- شاهدنا تقديم وظيفة في مجموعة من رمز PHP وقد كتب أن CS50 بالفعل بالنسبة لك، أن يأخذ في معايير معينة. ما يقوم به هذا الرمز وانها تسير في وجهات النظر، وهي عبارة عن مجموعات من مثل كود HTML مكتوب مسبقا، وانها إدخال القيم في أماكن معينة. هذه هي الطريقة عند الذهاب إلى CS50 المالية، رأس ذاته على كل صفحة. نفس تذييل على كل صفحة. وذلك لأن الطريقة التي تجعل الأعمال غير انها سوف التصحيح تلقائيا في ذلك الرأس و المشاهد التي يمكنك أن تجد في وجهات النظر. ونحن في الواقع يمكن أن تذهب إلى الرأس، و نظرة، انها ملف HTML مع الرأس. انها حصلت على بعض الأنماط. لا تحتاج للنظر في CSS لpset7 إذا كنت لا ترغب في ذلك. ولكن يمكنك تعديل لهم إذا كنت تريد، وجعل المالية الخاصة بك تبدو مختلفة قليلا. انها حصلت على بعض PHP في رأس قليلا لنرى إذا كان هناك عنوان مختلف يجب أن تضع في هذا الرأس. ولكن فقط بعض النصوص الأخرى، وصلات، وغيرها من الأمور. رئيس ينتهي، يبدأ الجسم، وعفوا، لدينا هذه الغاية قليلا غريب. وهناك شعبة، تماما مثل نوع خربة العنصر الذي لديه فكرة عن الوسط. ثم عندما نرى تذييل الصفحة، لدينا نهاية شعبة. لدينا القاع، وهو حيث نص تذييل هو. نهاية شعبة، نهاية الجسم، نهاية HTML. وذلك ما جعل هو به هو تقديم هو نوع من الترقيع رأس، وهو ملف PHP المختلفة التي سوف تحتوي على أشياء الفعلية التي عليك عرض، مثل الجدول الخاص بك من الأسهم إذا كنت شراء أو بيع الأسهم. وبعد ذلك سوف تضيف في تذييل. وعرض نموذج فكرة تحكم هي أننا تريد أن تفصل كيف تبدو الأمور من التعليمات البرمجية. انها نريد للفصل بين الواجهة والخلفية، حيث الواجهة هي الاشياء التي يراها المستخدم، لطيفة visuals-- HTML، CSS، وأشياء من هذا القبيل، الصور، وهلم جرا. والخلفية هي PHP. هذا هو رمز التي تكتبها. هذا هو المكان الرمز الذي هو القيام العمليات الفعلية. هذا هو عندما كنت تقوم بإضافة الأسهم إلى الجدول الخاص بك، عندما كنت شراء و البيع، وهذا هو الخلفية. ويمكننا، كما رأيتم، بما في ذلك PHP مباشرة في HTML. وذلك ما يمكننا القيام به ل وكان هذا التعيين فقط ملف HTML لكل صفحة، مثل تسجيل الدخول. ثم على تلك الصفحة، فقط كان كتلة هائلة من التعليمات البرمجية PHP، بما في ذلك كافة التعليمات البرمجية التي تلك الصفحة تحديدا يحتاج. وبعد ذلك يمكن أن يكون فعلت ذلك لمحفظة. يمكننا القيام به كل من شراء وبيع داخل صفحات فردية. ولكن لأننا تقديم على حدة من حيث نحن كتابة الخلفية الرمز، نستطيع بسهولة تغيير كيف تبدو الأمور من دون تغيير كل ملف واحد. ونحن نفعل أشياء مثل أن أضيف وشعبة جديدة لأسفل of-- مرحبا I تعديل تذييل الصفحة. يمكنك أن تفعل مجرد أشياء من هذا القبيل. ولكن أيضا، يمكنك تغيير تخطيط البصرية كامل دون أن يؤثر ذلك ما تسير في الخلفية. ويمكنك تغيير الخلفية بالكامل ومازال يكون ذلك مجرد إلقاء نظرة مثلما فعلت من قبل. هذه هي فكرة تحكم عرض نموذج. وانها في الواقع نموذج المفروضة في بعض لغات البرمجة قد ترغب في استخدام للمشاريع النهائية. إذا كنت تفعل تطوير دائرة الرقابة الداخلية، لديهم وجهات النظر، وهو ما تراه على اي فون، و ثم واجهة البرنامج بالصورة وكأنه شيء منفصل. يمكنك التفكير قليلا. هناك الكثير من الثنائيات في علوم الكمبيوتر، والذي هو مضحك، لأن كل شيء هو في ثنائي. أنا لم أخطط ذلك. وكانت تلك التورية غير مقصودة. نعم، لا يقصد التورية. ولكن مثل ملفات .H وملفات .C، هناك الكثير من فصل من الأشياء التي نحن قد لا تحتاج إليها. حتى نتمكن من مجرد تحرير الملفات ساعة، أو يمكن للشخص فقط انظر ملف .H ويعرف بالضبط المهام التي هي في ملف .C دون أن يعرفوا بالضرورة تنفيذها. هذه الفكرة من مكونات فصل التي تعتمد على بعضها البعض ولكن يمكن نوع من الوصول إلى بعضها البعض من خلال قنوات مختلفة، ويمر من المتغيرات، فقط تشمل البيانات والأشياء من هذا القبيل، هذا المبدأ يساعد على إنشاء تطبيقات التي يمكن أن تكون أكثر سهولة التعديل الأخير تم بواسطة عدة أشخاص، يمكن تغييرها بسهولة أكبر أو تعديلها على نطاق كبير، وهي أسهل ل تصحيح في الكثير من الطرق. حقا سريعة، ولدي بعض النصائح للpset7، الذي سوف يجعل كامل الشاشة بحيث لا مجرد النظر في the-- تلميح تلميح tippee. ليست هناك أن العديد من النصائح. ولكن ذكرت PHP من الصعب التصحيح. مزدوجة وثلاثية التحقق من ذلك. إذا التعليمات البرمجية الخاصة بك ليست مجرد تظهر على الصفحة، من المحتمل أن يكون خطأ PHP، آسف. أنت لا تحتاج أن ننظر إلى CSS إذا كنت لا ترغب في ذلك. ولكن بمجرد الانتهاء، يمكن أن يكون لطيفة متعة قليلا شيء للذهاب فقط في والفوضى مع المعلمات CSS. CSS و HTML هي مثال على نموذج شيء عرض على غرار تحكم جدا، أليس كذلك؟ هل يمكن أن يكون به أسلوب داخل عناصر HTML. ولكن إذا كنت من النوع الاستعانة بمصادر خارجية لهم CSS، انهم أسهل للتعديل، واللعب مع حولها، والمتعة معها. علاج CS50 المساعد وظائف مربعات سوداء. أنت لست بحاجة إلى أن تعرف بالضبط ما يفعل تقدم، ولكن ثق أن تفعل دائما على حق شيء اعتمادا على ما كنت تمر عليه، مثل هذه الامور. وأود أن أوصي مشاهدة تجول داود، يمر كل الاشياء، وليس فقط لجميع الناس، ولكن هل حقا يمكن علاج هذه المربعات السوداء كما. لا تذهب إلى هذه وظائف يبحث عن الخلل. ونرحب بعودة لدينا Zamyla المدير الكبير. رائعة. هل هناك أي أسئلة قبل النهائية نحن نوع من ترتد لهذا اليوم؟ أنا لا يزالون يعيشون؟ رائعة. الناس livestream مرحبا. رائعة. هل هناك بعد الآن الأسئلة؟ لا؟ وبعد ذلك اعتقد اننا جيد للذهاب لهذا اليوم. انا العصا حول قليلا بعد ذلك إذا كان الناس الأسئلة أنهم كانوا يخشون أن نسأل عن الدفق. لكن على خلاف ذلك، لديك يوم جيد.