आर.जे. एक्विनो: चलो बस शुरू हो जाओ. तो इस क्विज 1 है. यहाँ कुछ उच्च स्तरीय जानकारी है. प्रश्नोत्तरी के लिए पृष्ठ के बारे में इस पर है यूआरएल, अब नहीं CS50.net, हालांकि कि अभी भी काम करेगा. यह CS50.harvard.edu/quizzes/2013/1 है. यह आप कह रही है, इसके बारे में पृष्ठ बड़ा है जहां और जब, अर्थात् अगले बुधवार कमरे के एक झुंड में. और अगले बुधवार तक, मैं अब से दो दिनों से मतलब है. यह सब जानकारी है. लेकिन यह संचयी है. की पहली छमाही से तो सब कुछ वर्ष, प्रश्नोत्तरी पर संभावित है आप वास्तव में उन्नत नहीं कर सकते क्योंकि सी में चीजों के बिना शर्तों और अगर लूप और तरह के लिए. लेकिन पर एक जोर दिया जाएगा प्रश्नोत्तरी 0 के बाद से कवर सामग्री, structs और फ़ाइल के साथ प्रारंभ मैं / ओ यह आमतौर पर अधिक है प्रश्नोत्तरी 0 से चुनौतीपूर्ण. औसत स्कोर आम तौर पर कम है. मेहनत से पढ़ाई. आप का अध्ययन कर रहे हैं, का उपयोग सुनिश्चित हो CS50/discuss अपने प्रश्न पोस्ट करने के लिए और अन्य लोगों के सवालों पढ़ा. इसलिए यदि आप कोई प्रश्न नहीं है, में प्रवेश करें और पढ़ा अपने मित्रों के सवालों. वे शायद अच्छा सवाल कर रहे हैं. और अभ्यास परीक्षाएँ ले. हम के लिए परीक्षाएँ दे गया है अब सात या आठ साल. वे ऑनलाइन सब कर रहे हैं. भविष्य का सवाल समान हैं पुराने सवाल. यही कारण है कि हम उन्हें बनाने के लिए है. प्रश्नोत्तरी अभी तक मौजूद नहीं है. हममें से कोई भी यह देखा है. लेकिन यह की तरह दिखेगा पिछले परीक्षाएँ. इस समीक्षा सत्र के लिए, यह नहीं है विषयों की एक विस्तृत सूची. तुम बस फिर इस में भाग लेने और नहीं कर सकता प्रश्नोत्तरी के लिए पूरी तरह से तैयार हो. अन्यथा, यह नहीं होगा एक प्रश्नोत्तरी की कि ज्यादा. और यह जरूरी नहीं कि यह भी है आप किसी के बारे में जानने की जरूरत है सब कुछ विषय दिया. यह बातें करने के लिए आप को बेनकाब करने का मतलब है हम कवर किया है, आपको याद दिलाना क्या हम कवर, और रास्ते में जो हम इसे कवर किया. लेकिन आप आगे जाना है और होगा आप गहरी पुनः जांच करने के लिए अध्ययन जब आप किसी भी बारे में सब कुछ पता है कि आप में भर दिया है विषय और कहा कि थे कि सभी कोनों व्याख्यान में शामिल किया गया. प्रश्नोत्तरी नोटों पर जाने के लिए आपको बता मुंशी नोट्स, घड़ी व्याख्यान वीडियो. यह सुनिश्चित करें कि आपने बनाने के लिए एक अच्छा तरीका है अपने सभी ठिकानों को कवर किया. मैं इन बनाया तो, जब शुरू हो रही है स्लाइड्स, मैंने पाया जहां डाल करने की कोशिश जानकारी. तो फ़ाइल के लिए मैं / हे, उदाहरण के लिए, सप्ताह 7, सोमवार को व्याख्यान, और तैनात धारा 6 और समस्या सेट सब है फाइल के बारे में जानकारी मैं / ओ मैं ने किया यह हर विषय के लिए. तो उन शीर्षक स्लाइड मई आप के लिए उपयोगी हो सकता है. तो यहाँ हम फाइल मैं / ओ है में, याद रखें समस्या 5 सेट, हम, fclose, fopen इस्तेमाल किया fwrite, fread, और fseek. 30ish JPEGs बरामद होने और साथ आकार बदला और गड़बड़ होने बिटमैप्स, तुम बहुत परिचित होना चाहिए इन कार्यों के साथ और वे कैसे काम करते हैं. आप नहीं रह परिचित हैं, तो निश्चित रूप से उनकी समीक्षा. और यकीन है कि आप समझते हैं क्या अलग तर्क हैं, वे इस्तेमाल कर रहे हैं. लेकिन आम फाइल संबंधी दोष आप के बारे में कहा जा सकता है - वैसे, अगर आप भूल गए हैं, तो जाँच करने के लिए अगर आप करने के लिए जाने से पहले fopen वास्तव में काम किया एक फ़ाइल को संशोधित. यह बुरा हो सकता है. आप एक फ़ाइल fclose को भूल गए हैं आप fopened लिया है, कि के समान है एक स्मृति रिसाव. यह बहुत बुरा है. और आपने अगर जाँच करने के लिए भूल इससे पहले कि आप फ़ाइल के अंत तक यह करने के लिए लेखन शुरू. अगर आप कहते हैं तो, अरे, मैं कर रहा हूँ पर फ़ाइल का अंत. मुझे 5 अधिक बाइट दे. वैसे, यह शायद करने के लिए नहीं जा रहा है जैसा कि आप उम्मीद तरह से काम. यही कारण है, फ़ाइल मैं / ओ के लिए वास्तव में यह है हम इसके बारे में बहुत कुछ किया है क्योंकि समस्या सेट के साथ. आप समझ तो क्या चल रहा था समस्या सेट 5 में, bitmats याद और jpegs, तो आप शायद सब कर रहे हैं मैं / ओ फ़ाइल के लिए सेट कि एक सा है तो फजी, निश्चित रूप से उस समस्या की समीक्षा सेट और संबद्ध सामग्री. Structs पर थे उस विषय थे प्रश्नोत्तरी 0 और प्रश्नोत्तरी 1 के बीच की रेखा. काफी क्विज 0 के लिए कटौती नहीं की. तो वे निश्चित रूप से पर हो जाएगा प्रश्नोत्तरी 1, सप्ताह 7, सोमवार. एक संरचना क्या है? यहाँ हम एक संरचना दिखा. यह एक नए प्रकार की तरह है. यह एक कंटेनर की तरह है कई क्षेत्रों के लिए. इस मामले में, हम एक संरचना की घोषणा की है दो क्षेत्रों है कि छात्र - हम कह रहे हैं कि एक स्ट्रिंग नाम और हम उम्र बुला रहे हैं कि एक पूर्णांक. तो मैं छात्रों के पास या मैं जब छात्रों को संशोधित, मैं करने में सक्षम हो जाएगा उनके नाम और उनकी उम्र का उपयोग. उस के लिए कुछ कोड में देखें. यहाँ हम मैं घोषणा की है कि देखने एक छात्र है, ठीक वैसे ही जैसा मैं किसी भी चर घोषणा - int x, int y, वगैरह. यहां छात्र है. वह अपने खेतों में कुछ भी नहीं के साथ शुरू होता है. तो चलो उन्हें निर्धारित कर सकते हैं. आप डॉट के साथ एक संरचना के क्षेत्र की स्थापना की. इसलिए मुझे लगता है कि यहाँ s.name = आरजे कहा है. और = 21 s.age. तुम भी क्षेत्रों अपडेट कर सकते हैं आप अद्यतन करता हूं उसी तरह एक चर के मूल्य. तो मैं साथ आरजे से मेरा नाम बदलना चाहते हैं आर.जे. के लिए कोई अवधि वर्तनी सही तरीका है. यह = आरजे, वही s.name जाएगी हम मूल रूप से यह कहा है. और तब आप उन्हें उपयोग कर सकते हैं. इसलिए हम उन्हें निर्धारित किया है. हम उन्हें अपडेट किया है. आप भी उन तक पहुँच सकते हैं बहुत ही रास्ते में. यहाँ तो, मैं बाहर मुद्रण कर रहा हूँ आर.जे. 21 साल पुराना है. और मैं उन मूल्यों तक पहुँचने हूँ s.name और s.age साथ. इसलिए कि structs पहुँचने है डॉट संकेतन के साथ. हाँ, सवाल? दर्शक: पर एक कारण है आप नहीं डाली कि पिछली स्लाइड typedef जैसे शीर्ष पंक्ति, पर छात्र तब संरचना छात्र और अंत में छात्र? आर.जे. एक्विनो: तो प्रश्न पर था, इस स्लाइड, हम आम तौर पर देखा है तब संरचना नोड typedef और संरचना के क्षेत्र और तो शब्द नोड. और यहाँ कैसे आ मैं, typedef नहीं कहा तब संरचना छात्र और संरचना और उसके बाद छात्र के क्षेत्रों? कारण है कि मैं करने की जरूरत नहीं है संरचना के अंदर इसे उपयोग. तो यह एक नाम के बिना इसे छोड़ने के लिए ठीक है. मैं बस के रूप में इसे छोड़ सकते हैं एक गुमनाम संरचना. हम लिंक सूचियों के लिए करते हैं और कारण अंदर आप की जरूरत है, क्योंकि चीजें है एक संरचना नोड्स सितारा संदर्भ के लिए. तो संरचना एक नाम के लिए है, ताकि आप इसे बाद में उपयोग कर सकते हैं. यह एक छोटी सी विस्तार है. लेकिन आप आमतौर पर typedef struct देखेंगे घुंघराले ब्रेसिज़ आप की जरूरत नहीं है नाम और typedef struct कुछ नाम घुंघराले ब्रेसिज़ द्वारा पीछा अगर तुम जाएगा नाम की आवश्यकता है. तो यह एक अच्छा सवाल है. और उस बिंदु पर, हम को संशोधित करने के लिए करते हैं structs और से structs आस पास नहीं मान द्वारा, संदर्भ. तो हम बस करने के लिए संकेत के आसपास पारित करेंगे structs बजाय आसपास गुजर की खुद को structs. तो आप बहुत बार होने जा रहे हैं का उपयोग करते हुए, इस मामले में, छात्र * या संरचना नोड * या नोड * बजाय छात्रों या नोड्स बाहर. यहाँ तो, मैंने कहा, ठीक है, चर पीटीआर एस के पते होने जा रहा है. यह सूचक होने जा रहा है छात्र आर.जे. को तो हम उन क्षेत्रों में प्राप्त कर सकते हैं हम कुछ भी पाने के रूप में ही. सबसे पहले, आईडी सूचक संदर्भ संरचना पाने के लिए. यही तो * पीटीआर है और एक डॉट और फिर उम्र. तो क्षेत्र का उपयोग करने के लिए, और मैं नवीनीकृत किया है यह अब 22 को, क्योंकि, चलो कहते हैं, यह मेरा जन्मदिन था. एक शॉर्टकट वाक्य रचना नहीं है यहाँ तीर का उपयोग कर. तो पीटीआर तीर उम्र सिर्फ है * ptr.age के रूप में ही. अब, कि तुम होगा कुछ है याद करना और याद करने के लिए. आप यह pset6 में बहुत कुछ किया स्पेलर pset. लेकिन यह क्या हो रहा है वास्तव में है हुड के नीचे पर. यह सूचक dereferencing है और तो यह तक पहुँचने. प्रश्न? दर्शक: [सुनाई]. आर.जे. एक्विनो: तो क्यों हम प्रयोग कर रहे हैं बजाय structs के रूप में संकेत खुद को structs? आप गुजर रहे हैं, तो कारण होगा एक समारोह के लिए एक संरचना, आप शायद सिर्फ 4 या तो चारों ओर पारित करना चाहते हैं सूचक का प्रतिनिधित्व करते हैं कि बाइट के रूप में संभवतः 30 या करने का विरोध संरचना कर रहे हैं कि 40 बाइट्स. तो एक समारोह के लिए कुछ गुजर आसान है जब बात संक्षेप में छोटा होता है. प्रश्न? दर्शक: आप यह उल्लेख किया गया हो सकता है शुरुआत में, लेकिन वहाँ हैं [सुनाई] पर अन्य स्लाइड ऊपर? आर.जे. एक्विनो: ये स्लाइड होगा समीक्षा बैठक के बाद अप. हम उन्हें वेबसाइट पर पोस्ट करेंगे. इतने पर चलती है और थोड़ा पर चलती तेजी से, हम डेटा के बारे में बात करने जा रहे हैं संरचनाओं. एक बहुत हैं. हम उनमें से एक गुच्छा कवर किया. यहाँ आप को समझना चाहिए क्या है डेटा संरचना के बारे में. आप वास्तव में एक उच्च पर समझना चाहिए प्रत्येक संरचना है कि किस स्तर. आप को अंग्रेजी में व्याख्या कर सकते हैं अपने CS50 नहीं लिया है कि दोस्त कैसे हम अपने डेटा का आयोजन कर रहे हैं और यही कारण है कि हम चाहते हैं इस तरह से कुछ का उपयोग किया? यह बात एक है. बात दो, समझने कार्यान्वयन. तो इन चीजों का उपयोग करने के लिए समझ सी. में है और हम इस पर जा रहा हूँ. और फिर बात तीन जानते जाएगी चलाने के समय और की सीमाएं आप उपयोग कर रहे हैं विभिन्न संरचनाओं. आप का प्रयोग करेंगे तो यही कारण समझ में एक बजाय एक सरणी की मेज हैश. समझे कितनी तेजी से, औसत पर, एक हैश तालिका तक पहुँचने है. आपरेशन तेजी पर रहे हैं समझ लिंक सूची लेकिन सरणियों पर धीमी और इसके ठीक विपरीत है. तो समझते हैं कि, आप के लिए होगा बस पता करने के लिए बड़े हे संकेतन समझने इन के बारे में बात करने के लिए कैसे चीजों की तरह. और हम उस बारे में बात करेंगे. तो पहली बात, सूचियों से जुड़े. यहां एक उच्च स्तरीय तस्वीर है एक लिंक की गई सूची की. हम वर्ग में इस शो. हम आम तौर पर 10 लोगों के पास मंच पर खड़ी है. लेकिन हम नोड्स की एक श्रृंखला है, जहां प्रत्येक नोड कुछ मूल्य और एक सूचक है इसके अगले मूल्य के लिए. तो क्या आप अगले करने के लिए एक नोड से प्राप्त करने के लिए बस मुझे अगले नोड दे, कहना. तुम्हें पता है कि नोड है. मुझे अगले नोड दे. तुम्हें पता है कि नोड है. इसलिए मुझे अगले नोड दे दो और कोई नोड छोड़ दिया है जब तक. तो इस बारे में बात करने के लिए जारी एक उच्च स्तर पर यह. यह बातें डालने के लिए बहुत आसान है एक लिंक की गई सूची में. आप आदेश के बारे में परवाह नहीं करते हैं, आप बस इसे छोड़ सकते हैं सही शुरुआत में. यही कारण है कि लगातार समय है. लेकिन यह एक मूल्य खोजने के लिए मुश्किल है. आप पूछने की कोशिश कर रहे हैं, मेरी सूची में सात है? आप के माध्यम से जाना हर एक मूल्य. इस सात है? इस सात है? इस सात है? इस सात है? पर और फिर से. और कहा कि हे (एन) है. तो प्रश्नोत्तरी के लिए अध्ययन करते हैं, सरणियों के साथ इस की तुलना करें. क्या यह ठीक है? रोशनी मंद चला गया. ठीक है. जब एक लिंक की गई सूची में बेहतर है? जब एक सरणी बेहतर है? तो चलो कुछ कोड को देखो. यहाँ एक संभावित नोड है. यह एक संरचना है. यह एक पूर्णांक n है जो हमारे मूल्य होगा. और यह अगले एक संरचना नोड * है जो अगले नोड के लिए हमारे सूचक है. यहाँ तो, हम हम हुआ देख सकते हैं कि हमारे नोड में एक पूर्णांक डाल दिया है. लेकिन इस चार के एक लिंक सूची थे स्टार या मंगाई की एक लिंक सूची, हम पूरी तरह से भी कर सकते थे. Pset6 में याद रखें, आप शायद एक था सिर्फ चार सितारों या लिंक की गई सूची स्थैतिक चार सरणियों. के एक ऑपरेशन में यहाँ देखें. तो हम एक नया सम्मिलित करना चाहते हैं n हमारे लिंक की गई सूची में. हम है कि एक सिर सूचक के साथ बाहर शुरू है कि इस नोड के लिए एक सूचक n के मूल्य और एक सूचक का एक अगली कि इस नोड के लिए अंक का एक मूल्य है n और बातिल की अगली, क्योंकि यह पिछले नोड है. इसलिए समय के हित में, मैं करूँगा स्क्रीन पर सभी कोड डाल दिया. और हम इसे माध्यम से चलना होगा एक समय में कुछ लाइनें. तो यहाँ कोड है. मैं यह पठनीय है उम्मीद है. हम पहली बात है हम एक नए नोड malloc. तो यह एक नया नोड के लिए एक संकेत है कि बनाता है काफी कुछ भी तय नहीं है अभी तक यह ऊपर में. हमें यकीन है कि बनाने के लिए जाँच नए नोड रिक्त नहीं है. अन्यथा, हम को देना है. तो यह है कि जाँच के बाद, हम अब नोड में मूल्यों की स्थापना की. तो हम हमारे n क्षेत्र में नए n डाल दिया. और हम करने के लिए बात करने के लिए अगले सूचक सेट मूल सिर, हम कर सकते हैं कि इतना अब यह डाला है हमारी सूची में नोड. अंत में, हम वैश्विक प्रमुख बिंदु है हमारे नए नोड के लिए, इतना है कि हम कर रहे थे सिर पर शुरू, हम इस पर होगा नए पहला नोड के बजाय पुराने पहला नोड. और इस समारोह में बाहर निकलता है जब, चर नए नोड नहीं रह गया है, मौजूद है यह कार्य करने के लिए स्थानीय था. तो इस दुनिया का राज्य है. हमारे वैश्विक सिर हमारे नए के लिए अंक जो अंक पहला नोड, हमारे मूल पहला नोड, जो अंक उसके बाद नोड के लिए. उस प्रविष्टि था. मुझे लगता है कि अपेक्षाकृत थी उम्मीद पालन ​​करने के लिए सरल. संदेह में, एक तस्वीर खींचना है. तो मैं बात कर पाते हैं कि लिंक सूचियों और को देख कोड बहुत उपयोगी नहीं है. एक जुड़ा हुआ की एक तस्वीर में दिख रही है, जबकि सूची ओह, मुझे लगता है कि करने के लिए अनुमति देता है, तो मैं यहाँ इस नोड है. लेकिन मुझे लगता है कि सूचक अद्यतन हैं, यह डिस्कनेक्टेड समाप्त होता है. और मैं भूल गया हूँ जहाँ नोड चला जाता है. और कोड बाहर निकलता है. और आप कई नोड्स है कि काट रहे हैं. और आप के साथ अंत नहीं है आप चाहते हैं सूची. तो आप तस्वीर खींचना और इसे करते हैं कदम से कदम, उम्मीद है, आप देखेंगे के मामले में चीजों का सही क्रम सुनिश्चित करने के लिए संकेत अद्यतन करने सूची एक साथ आता है. सम्मिलित अपेक्षाकृत सरल है. एक अधिक जटिल एक होगा एक क्रमबद्ध सूची में प्रविष्टि. एक अधिक जटिल समारोह हटाना है और, लगता है ऐसा करने के लिए एक सूची के माध्यम से देख अगर वहाँ कुछ है देखते हैं. शायद आप pset6 में यह किया है जब आप अपने हैश तालिका में मिला है और आपने कहा था, खैर, शब्द सेब है मेरे लिंक की गई सूची में? तो आप पहले से ही यह किया है सकते हैं. लेकिन निश्चित रूप से, अपनी यादें ताज़ा और पाते हैं reimplement करने के लिए कोशिश करते हैं और एक लिंक की गई सूची के लिए हटाना reimplement. मज़ा तरफ ध्यान दें, वहाँ भी दोगुना से जुड़े तुम कहाँ सूचियों, दोनों आगे और बात है कि संकेत आप के लिए जा सकते हैं, ताकि पिछड़े अगले नोड और पिछले नोड के लिए. और पिछले साल पर एक सवाल ही नहीं था उस प्रकार की प्रश्नोत्तरी, बात कर के बारे में सूचियों दोगुना से जुड़े. अब, कि आप कर रहे हैं कि एक संरचना है अपेक्षाकृत परिचित के साथ, क्योंकि सबसे आप में से शायद pset6 पर उन्हें इस्तेमाल किया. यहाँ थोड़ा कम परिचित है कि एक है. एक तरफ ध्यान दें के रूप में, मैं प्रश्नोत्तरी 1 आपको लगता है कि मुख्य रूप से प्रश्नोत्तरी 0 से कठिन है, क्योंकि तुम क्या कर रहे हैं सामान के रूप में ज्यादा नहीं किया है. कि दूसरे तरीके से कहें, क्विज 0 के लिए, आप सी का एक बहुत कुछ लिखा था और हम सी. के बारे में पूछा प्रश्नोत्तरी 1 के लिए, हम के बारे में पूछने के लिए जा रहे हैं PHP और जावास्क्रिप्ट, जो आप के रूप में ज्यादा नहीं लिखा है. हम सी कोड के बारे में पूछने के लिए जा रहे हैं कि यदि आप के रूप में ज्यादा नहीं लिखा है इस उन्नत सी चीज है. तो निश्चित रूप से, सामग्री हम अभ्यास व्याख्यान में के बारे में बात की है कि आप जरूरी नहीं किया है समस्या पर निर्धारित किया है. जिसमें से बोलते हुए, आप नहीं लिखा है एक समस्या पर एक ढेर निर्धारित किया है. लेकिन यह व्याख्यान में था. यहां की उच्च स्तरीय तस्वीर है हम हर साल चलता है कि ढेर. यह में ट्रे का ढेर है माथर डायनिंग हॉल. एक उच्च स्तर पर, ढेर एक पिछले रहे हैं पहले बाहर आंकड़ा संरचना में. यही कारण है कि आप जा रहे हैं, इसका मतलब में बातें करना - 1, 3, 7, 12, 14, नकारात्मक 0. मैं नहीं कर सकता है एक बात कहा - 3, 0 नकारात्मक. आप ने इन सब बातों को रख दिया और तुम में डाल आखरी पहला है बाहर आ रहा है कि एक. तो आप दो कार्य किया है - धक्का और पॉप. मैं था कि में डालने के सभी इस तरह इशारा धक्का कर रहे हैं. और फिर मैं हड़पने के लिए में जब तक पहुँचने कुछ या हड़पने के शीर्ष पर पहुँचने कुछ, कि पॉप है. इसलिए हम ढेर को लागू करने के लिए जा रहे हैं. और हम व्याख्यान में उन्हें पता चला सरणियों का उपयोग कर. लेकिन आप उन्हें कर सकता है लिंक सूचियों का उपयोग कर. एक स्टैक एक वैचारिक डेटा है संरचना, एक पसंद नहीं कार्यान्वयन विशिष्ट है. तो क्या हुआ कि तरह लग रही होगी? यह एक तरह से इस तरह दिखेगा. आप एक पूर्णांक आकार होगा. और तुम मूल्यों की एक सरणी होगा कि कारण है कि हम, ट्रे बुला रहे हैं तस्वीर के लिए क्या था हमें - ट्रे INT - और फिर कुछ अधिकतम क्षमता. तो कैसे दिखते धक्का होगा? हम एक ढेर की है तो, तो पुश करने के लिए एस पर कुछ, हम मिल जाएगा एस के आकार. और कहा कि अगले होगा हमारे सरणी के खुले स्थान. इसलिए हम अपने ढेर में तीन बातें हैं, तो ट्रे 3 अगला होगा खुले स्थान, क्योंकि 0, 1, और 2 पहले से ही भरे हैं. तो हम में मान रखा s.trays [s.size], तीसरे स्थान पर. और फिर हम, s.size कहना वेतन वृद्धि अरे, हम पहले तीन बातें थी. अब, हम चार है. तो आप को धक्का अगली बार जब आप कर रहे हैं 4 में कुछ डाल दिया जा रहा. या फिर आप पॉप अगली बार जब आप जा रहे हैं 3 के बजाय 4 या जो कुछ देखने के लिए. और फिर हम करने के लिए सही वापस कर देंगे कहते हैं, अरे, हम सफल हो गए. यह काम किया है. अंगूठे का एक नियम के रूप में, अगर है कि एक समारोह वापसी सच या करने के लिए चाहिए झूठी हमेशा आप कर सकते हैं, सच रिटर्न कुछ गलत किया है. तो यह काम करता है? खैर, यह 1 के लिए ठीक काम करता है, और 2, और 3, और 4, और पांच. लेकिन मैं अपनी क्षमता तक पहुँचने कहते हैं. मैं तो एक समस्या में चला, क्योंकि दिया है आकार क्षमता के रूप में ही है, तो मैं कर रहा हूँ अब एक में कुछ डालने की कोशिश मैं जगह नहीं है जहां सरणी. तो एक छोटा चेक इसे ठीक करने के लिए. S.size == क्षमता है, झूठी वापसी. अन्यथा, जाओ और हम क्या किया. तो हम और क्या पूछ सकते हैं ढेर के बारे में? और क्या आप का अध्ययन करना चाहिए? और क्या आप अभ्यास करना चाहिए? खैर, पॉप लागू करने. हम पहले से ही धक्का किया था. मुझे लगता है कि इसे ठीक कर दूँगा. एक गैर सरणी कार्यान्वयन, जहां आप शायद एक लिंक की गई सूची का उपयोग करें. एक गैर INT कार्यान्वयन. हम यहाँ ints किया. लेकिन यह तैरता हो सकता था. मैं तार हो सकता था. यह चार स्टार हो सकता था. प्रकार के लिए अतीत परीक्षाएँ को देखो हम ढेर के बारे में पूछा है सवाल. मुझे लगता है हम चारों ओर ढेर कवर कहता हूँ कि हम में उन्हें शामिल है के रूप में एक ही पिछले कुछ वर्षों. तो प्रश्नोत्तरी सवालों चाहिए एक अच्छा संकेत हो. भी तेजी से आगे बढ़ रहा है, कतारों. वे ढेर की तरह हो. लेकिन वे पहली बार बाहर, में पहली बार कर रहे हैं. आप ब्रिटिश रहे हैं, शब्द कतार शायद आप के लिए भावना का एक बहुत कुछ किया है. अन्यथा, आप हो सकता है एक पंक्ति के रूप में इसके बारे में सुना. वे लाइन की तरह काम एप्पल स्टोर पर. 3:00 पर दिखाने के लिए पहले व्यक्ति सुबह में पहली है अपने iPad खरीदने के लिए व्यक्ति. इसलिए हम दो आपरेशन किया है - enqueue और विपंक्ति. Enqueue लाइन में किसी डालता है. विपंक्ति पहली खींचतान लाइन बंद व्यक्ति. फिर, हम लागू कर सकते हैं एक सरणी के साथ यह. तो संरचना हम क्या है व्याख्यान में पता चला? यह यह एक था. फिर, संख्या. फिर, आकार और इस नई बात सामने. क्यों सामने बुलाया कुछ है? यह अगले का सूचकांक है विपंक्ति करने तत्व. यह सिर्फ आंतरिक ट्रैक के रख रहा है दिखाने के लिए पहला आदमी है, इसलिए कि हम हम करने की आवश्यकता है जब इसे बाहर निकाल सकते हैं. निश्चित रूप से व्याख्यान नोटों पर देखने के लिए और कोशिश enqueue और विपंक्ति लागू करने के लिए प्रश्नोत्तरी के लिए अध्ययन कर रहा है. के बारे में सोचना जरूरी बातें. चारों ओर लपेटकर अगर सामने प्लस आकार क्षमता से भी बड़ा होता है. फिर, अपनी संरचना भरा है, यदि आप एक समस्या है जा रहे हैं. आप पहले देखा है तालिकाओं हैश. आप में से अधिकांश शायद कार्यान्वित इन pset6 पर. यह हे के लिए करना है कि एक संरचना है (1) लगातार समय प्रविष्टि और हे (1) लगातार समय देखने का. CS50 में, हम के रूप में यह लागू लिंक सूचियों की एक सरणी. एक हैश तालिका के प्रमुख घटक हैश समारोह है. तो यह, हम कहते हैं, अपने इनपुट धर्मान्तरित एक संख्या में एक शब्दकोश शब्द,, हमारे सूचकांक होने जा रहा है. और हम हैं कि सूचकांक का उपयोग करेंगे हमारे सरणी में. तो यहाँ एक प्यारा सा चित्र है study.50.net से. हम सभी शब्दों में फेंक हमारे हैश समारोह. और हैश समारोह हमें बताता है जहां इन शब्दों को डाल दिया. इस देश में सब महान है जहाँ हर स्लॉट के लिए केवल एक शब्द नहीं है. लेकिन आप pset6 से याद है, वहाँ स्लॉट्स से अधिक शब्द हैं. जब आप तो क्या होता एक टक्कर मिलता है? इसके बजाय में एक मूल्य के संचय के लिए, मान लीजिए कि आप, हैश तालिका 3 हम कहते हैं एक लिंक की गई सूची की दुकान. और तो बजाय cantaloupe होने की यहाँ, आप एक लिंक की गई सूची के लिए होगा, पहला नोड cantaloupe है. और अगले नोड बिल्ली है. और तीसरा नोड चलो, टकराव है इन सभी शब्दों शुरू क्योंकि कहते हैं, सी. के साथ तो आप में से अधिकांश pset6 के लिए ऐसा किया. आप pset6 पर एक हैश तालिका नहीं किया है और आप की तरह कुछ का प्रयास एक Trie, निश्चित रूप से हैश तालिकाओं की समीक्षा करें. आप निश्चित रूप से, pset6 पर ऐसा किया, तो हैश तालिकाओं की समीक्षा करें. और तुम pset6 पर ऐसा किया था और यह नहीं था अगर बहुत सही और आप बाहर काम निश्चित रूप से, इसके साथ परेशानी का एक बहुत कुछ था हैश तालिकाओं की समीक्षा करें. तो सबक वास्तव में निश्चित रूप से है हैश तालिकाओं की समीक्षा करें. कोशिश की आप की विशाल अल्पसंख्यक बाहर pset6 पर कोशिश करता है. उच्च स्तर तस्वीर. यह कुछ इस तरह है, जहां हर नोड बच्चों का एक सेट है, जहां प्रत्येक बच्चे को एक पत्र से मेल खाती है. और हर नोड भी कहते हैं, अरे, मैं एक शब्द भी हूँ. तो इस उदाहरण में, शब्द मैक्सवेल, आप के लिए एक एम का पालन करें तो एक्स डब्ल्यू ई एल एल और यह एक अधिक का पालन करें. और अगर तुम इस प्रतीक, डेल्टा, जो मिल हम इस एक शब्द है इसका मतलब यह दर्शाता है. तो मैक्सवेल एक शब्द है. ये डेल्टा वाचक भर रहे हैं बातें शब्दों और जो कर रहे हैं जो बातें नहीं कर रहे हैं. तो pset6 में, डेटा हम संग्रहीत हमारे नोड्स के किसी भी था के साथ "मैं एक हूँ शब्द. "और कोशिश करता है के बारे में अच्छी बात वे सम्मिलन का प्रदर्शन और है हे (एक शब्द की लंबाई) में देखने का. तो सिर्फ मैक्सवेल के माध्यम से प्राप्त करने के लिए, यह है एम ए एक्स डब्ल्यू ई एल एल. तो सात या आठ - मैं गिनती नहीं कर सकते - अंत करने के लिए कदम और चीजों की जाँच करें. यहाँ तो त्वरित कार्यान्वयन. रोब एक जुड़ा हुआ माध्यम से चला गया उसका पोस्टमार्टम में सूची. तो यह है कि बाहर की जाँच करें. माफ़ कीजिए. उसका पोस्टमार्टम में एक Trie के माध्यम से चला गया. तो यह है कि बाहर की जाँच करें. लेकिन आप मूल रूप से प्रत्येक नोड 27 है है अगले नोड्स और एक करने के लिए संकेत मैं एक शब्द हूं बूलियन. कैसे के लिए रोब शवपरीक्षा बाहर की जाँच करें यह वास्तव में लागू किया गया है. हमारा अंतिम संरचना, हमारे पेड़ और द्विआधारी खोज पेड़. इसलिए इन पर देख रहे हैं, इन कवर किया गया सबसे हाल ही में 8 सप्ताह सोमवार. एक पेड़ आप को छोड़कर, एक Trie के समान है जरूरी 27 नोड्स में नहीं है प्रत्येक बिंदु. और आप प्रत्येक पर इस डेटा नहीं है - प्रतीक है कि चाहे कदम पथ कोई फर्क नहीं पड़ता. एक Trie, पथ ऊपर से जबकि नीचे, मैक्सवेल, हमारे लिए महत्वपूर्ण था. लेकिन प्रत्येक नोड एकाधिक है बच्चों, शायद. हम कुछ और शब्दावली है. पेड़ की जड़ बहुत शीर्ष पर है. और हम हैं कि बहुत से नीचा कहना कोई है कि नोड्स बच्चों के पत्ते हैं. तो एक Trie की तरह, एक पेड़ है नोड्स के एक संरचना. हम जा रहे हैं कि पेड़ की एक आम प्रकार के बारे में बात करने के लिए एक द्विआधारी पेड़ है, जहां प्रत्येक नोड कोई बच्चों या है एक बच्चे या दो बच्चों को. तो यहाँ यह तस्वीर नहीं है एक द्विआधारी पेड़, क्योंकि नोड 3 तीन बच्चों की है. लेकिन हम उन, बाकी की उपेक्षा कर रहे थे इसके बारे में एक द्विआधारी पेड़ है यह क्योंकि संपत्ति है कि प्रत्येक नोड दर्शाता शून्य, एक या दो बच्चों की है. तो कैसे हम कोड में यह व्यक्त कर सकता है? हम प्रत्येक नोड है जहां एक नोड हो सकता था एक आईटी के अंदर पूर्णांक, के रूप में अच्छी तरह से बाईं तरफ पेड़ के लिए एक संकेत के रूप में और पर पेड़ के लिए एक सूचक ठीक है, दो बच्चों को तो. यह कैसे उपयोगी है? खैर, हम के बारे में नियम बनाने जहां अगर हम नोड्स डाल, हम खोज तेज कर सकते हैं. तो एक द्विआधारी खोज की अवधारणा नहीं है पेड़, जहां पर सभी नोड्स छोड़ दिया सबट्री एक छोटे मूल्य है नोड से हम देख रहे हैं. और सही सबट्री पर सभी नोड्स एक बड़ा मूल्य है रूट नोड से. अब, कि शब्दों का एक बहुत की तरह लग रहा है. मैं डबल के अंदर डाला जा रहा हूँ उद्धरण और आप एक तस्वीर दिखाते हैं. तो यहाँ का एक उदाहरण है एक द्विआधारी खोज पेड़. हम 10 से शुरू होने वाली देखें. बाईं के लिए सब कुछ 10 से कम है. और सही करने के लिए सब कुछ यह तुलना में बड़ा है. लेकिन बहुत अधिक है कि तुलना में प्रत्येक नोड पेड़ इस संपत्ति व्यक्त करता है. तो नोड 7 के लिए एक 3 है सही करने के लिए छोड़ दिया और एक 9. तो उन सभी 10 से छोटे हैं. लेकिन सिर्फ उन पर देख, 7 है 3 अपने अधिकार के लिए अपने बाएँ और 9 के लिए. इसी प्रकार सही पर, 15 से 14 है अपने अधिकार के लिए अपने बाएँ और 50 के लिए. तो वहाँ पर तीन नोड्स, 15, 14, और 50, भी एक मान्य बाइनरी पेड़ हैं या एक वैध द्विआधारी खोज पेड़. और वे सभी 10 से भी बड़ा हो. तो वे करने की अनुमति दी जाती है वहाँ सही पर. एक सवाल है? दर्शक: आप कैसे सौदा करते हैं जब आप दो सेवन्स है? आर.जे. एक्विनो: हाँ. कैसे आप दो मूल्यों के साथ सौदा करते हैं कि वही कर रहे हैं? कुछ द्विआधारी खोज पेड़ कहते हैं कि तुम कि लक्ष्य है, क्योंकि डुप्लिकेट की अनदेखी सिर्फ कहने के लिए, मैंने देखा है अब तक इन बातों को. आप कह सकते हैं कुछ द्विआधारी खोज पेड़ नोड के अंदर एक गिनती है. दूसरों का कहना है कि हो सकता है के लिए सब कुछ बाएं से कम या बराबर है. और सही करने के लिए सब कुछ से अधिक है. यह बस पर निर्भर करता है क्या समस्या आप हल कर रहे है. तुम, उदाहरण के लिए, एक शब्दकोश में तो डुप्लिकेट के बारे में परवाह नहीं होती. आप उन्हें बाहर फेंक देना होगा. लेकिन कुछ अन्य समस्या आप देखभाल कर सकते हैं. दर्शक: यह संभव है 15 के बाईं ओर एक 1 जो 10 से कम है? आर.जे. एक्विनो: नहीं यहां 14 एक 1 थे, यह होगा एक वैध द्विआधारी खोज पेड़ नहीं होना, क्योंकि सही के लिए सब कुछ 10 से भी बड़ा हो गया है. और हम क्यों देखेंगे. खोज के देश में मेरा लक्ष्य है 14 लगता है, मैं जड़ में शुरू करते हैं. तो मैं देखने के लिए. ठीक है. हम जड़ में शुरू करने जा रहे हैं. 10 को देखो. खैर, 14, हमारा लक्ष्य है, 10 से भी बड़ा है. तो यह सही पर होना चाहिए. इस पूरे फोन के समान है पुस्तक बात हम द्विआधारी किया वहाँ खोज. लेकिन बजाय द्विआधारी खोज की एक सरणी में, हम द्विआधारी हो इस पेड़ में खोज. इसलिए हम अभी भी 14 के लिए देख रहे हैं. खैर, 14 15 से छोटा है. यह हमारे पेड़ में है, तो यह चाहिए यहां इस क्षेत्र में हो. यह सही के लिए होना चाहिए 10 और 15 के बाईं ओर. और इसलिए हम इस नोड की जाँच करें. और हाँ, हम 14 पाया है. मैं इसे माध्यम से चलने के लिए नहीं जा रहा हूँ. लेकिन यहाँ कोड है. यह अपेक्षाकृत वास्तव में है सरल, इस पुनरावर्ती है. हम आपको एक प्रश्नोत्तरी पर करने के लिए क्या पूछ सकते हैं? हम इस कोड लिखने के लिए आप पूछ सकते हैं. हम इस कोड को देखने के लिए आप पूछ सकते हैं और इस कोड को संशोधित करने और समझाने के लिए क्या यह कर रहा है. हाँ. प्रश्न? दर्शक: इन स्लाइड होने जा रहे हैं वे पिछली बार थे के रूप में उपलब्ध कराया? आर.जे. एक्विनो: हाँ. इसलिए इन स्लाइड निश्चित रूप से होगा तैनात किया. दर्शक: वे वास्तव में तैनात रहे सही अब वेबसाइट पर. डेविड कि बस. आर.जे. एक्विनो: स्लाइड्स हैं सही अब वेबसाइट पर. मैं शायद एक जोड़े का पैच अप करेंगे typos मैं उल्लेख किया और उन्हें ठीक. लेकिन एक चालू है साइट पर संस्करण. दूसरों को हम ऐसा करने की आप पूछ सकते हैं बातें - सम्मिलित लिखें. के चलने का एक संस्करण लिखने पुनरावर्ती समारोह हम सिर्फ तुम्हें पता चला या में जैसे, इन चीजों के बारे में बात करते हैं पैराग्राफ, शब्द, वाक्य में. चलाने के समय की तुलना करना और समझा आप एक द्विआधारी का उपयोग करना चाहेंगे क्या बजाय एक के लिए खोज पेड़ उदाहरण के लिए, तालिका हैश. तो इन संरचनाओं को समझने एक बहुत गहरे स्तर पर. उन्हें लिखने के लिए कैसे समझते हैं, कैसे करने के लिए उनके बारे में बात करने के लिए, उन का उपयोग करें. और तुम सब सेट हो जाएगा. प्रश्न? दर्शक: आप लिख रहे हैं द्विआधारी खोज पेड़, आप कैसे करते हैं क्या मूल्य को निर्धारित रूट के रूप में इसे बनाने? आर.जे. एक्विनो: तो सवाल, क्या था मूल्य आप रूट के रूप में कर सकता हूँ? यदि आप अपने कोड के आधार पर एक वैश्विक जड़ हो सकता है. तो आप की संभावना में था हो सकता है pset6 एक वैश्विक हैश तालिका. या फिर आप रूट पारित हो सकता है एक तर्क के रूप में. यहाँ तो यह खोज समारोह एक तर्क एक नोड * लेता है. और तो तुम हो हो जो भी नोड को देख आप का इलाज कर रहे एक है अपने रूट के रूप में आप इसे अंदर से गुजरती हैं जब और मैं तैयार हूँ. उन मेरे स्लाइड्स हैं. अगले व्यक्ति स्वैप आ सकता है एक लैपटॉप और mic में. आरओबी BOWDEN: मैं मैं हो सकता है अलग तरीके से उस सवाल व्याख्या की. तुम लेकिन अगर मैं, के रूप में व्याख्या हम कैसे करते संख्या 1, 2, और 3, 2 रूट बनाने के लिए पता 1 या 3 के लिए विरोध के रूप में? हम जड़ 2 करते हैं, तो यह अच्छी तरह से है 1 और 3 को छोड़ दिया और सही करने के लिए. 1 जड़ है लेकिन अगर है, तो यह करने के लिए 1 है शीर्ष सही करने के लिए 2 सही, 3. तो डिफ़ॉल्ट रूप से, आप नहीं जानते क्या जड़ बनाने के लिए. और किसी भी एल्गोरिथ्म के लिए हम उम्मीद कर रहे हैं , सिर्फ पहली बात आप आप दे सम्मिलित रूट होगा. या हम आपको एक द्विआधारी पेड़ देना चाहते हैं कि पहले से ही एक रूट है कि मौजूद है. लेकिन अन्य एल्गोरिदम कि इस तरह से मौजूद है इतना है कि जड़, अद्यतन करेगा तुम अगर यह 1, 2, जहां स्थिति का अंत, 3, यह अपने आप को अद्यतन करेगा इतना है कि, नए रूट 2 बनाना यह अभी भी अच्छी तरह से संतुलित है. एंजेला ली: कूल. हे, दोस्तों. मैं एंजेला हूँ. और मुझे लगता है कि हमारे सी खत्म करने के लिए जा रहा हूँ और फिर हमारी वेब से कुछ में जाना प्रौद्योगिकियों - HTTP, एचटीएमएल, सीएसएस. तो पहली बात यह बफर है अतिप्रवाह हमलों. तो चलो इस कोड पर एक नज़र रखना. यह बहुत आसान है. एक समारोह foo है. और यह कुछ भी वापस नहीं करता है. लेकिन यह एक सूचक में ले जाता है बार कहा जाता है एक स्ट्रिंग के लिए. और यह इस घोषित करने जा रहा है एक चरित्र है जो बफर, 12 स्लॉट है कि सरणी. और यह सिर्फ एक है, जो memcpy का उपयोग करता है समारोह है कि एक पते से प्रतियां दूसरे में. तो इस में नकल करने की कोशिश कर रहा है जो कुछ भी हमारे बफर बार की ओर इशारा कर रहा है. इसलिए किसी भी विचार क्या गलत है इस कोड के साथ? दर्शक: बार से अधिक लंबी है सी, वे लिख देगा. एंजेला लाइट: हाँ, बिल्कुल. हम कोई गारंटी नहीं है कि बार 12 से कम होने जा रहा है. हम सिर्फ कुछ मनमाना संख्या 12 कर दिया. और हम आशा करते हैं, जैसे थे कि हमारे उपयोगकर्ता इनपुट से कम है 12 वर्ण लंबा. तो एक आदर्श दुनिया में, अगर हमारे इनपुट है उम्मीद हमेशा की तरह, तो हम मिल जाएगा नमस्कार, ऐसा कुछ. यह 12 वर्ण से भी कम है. यह चार ग में पढ़ा जाता. और फिर हम इसके साथ कुछ करना. यह वास्तव में कोई फर्क नहीं पड़ता. लेकिन एक दुर्भावनापूर्ण व्यक्ति कर सकता है अधिक कुछ इस तरह, जहां वे बार की ओर इशारा कर रहा है जो कुछ भी हमें देना यह इस विशाल सरणी को इंगित करने के लिए जा रहा है की एक बस की. और यह 12 से रास्ता रह गया है. इसलिए यह सभी तरह से जाना जा रहा है यहाँ नीचे जहां वापसी करने के लिए पता बनाने के लिए इस्तेमाल किया. तो चलो इस समारोह हम कहते हैं foo कहा जाता है. शायद foo कुछ अन्य द्वारा बुलाया गया था मुख्य द्वारा बुलाया गया था जो समारोह,. Foo चल रहा है तो, जब यह की जरूरत जहां पर लौटने के लिए पता करने के लिए. Foo नामित कुछ समारोह से बुलाया गया था, तो बाज, यह है कि यह पता करने के लिए है वापस बाज को जाना ही होगा. और है कि क्या इस वापसी पता है नीचे यहाँ हमें बता रहा है. लेकिन हम कुछ अन्य के साथ यह लिखना चाहते हैं पता है, इस मामले में, यह एक है पर पता का प्रतिनिधित्व बहुत फिर, इस बफर की शुरुआत क्या वास्तव में क्या होने जा रहा है कि बजाय वापस बाज की ओर लौटने का, हमारे समारोह में कहा जाता है, जो यह सिर्फ है इस कोड का सामने करने के लिए जाना जा रहा है. और यह वहाँ था क्योंकि अगर एक दुर्भावनापूर्ण हैकर दोस्त आया और इस इंजेक्शन, तो शायद यह राशि की एक के लिए वास्तव में एक की नहीं है. और यह वास्तव में सिर्फ कोड है कि टूट जाता है अपने कंप्यूटर या कुछ और. तो इस तरह के बारे में रक्षात्मक होने के लिए बात, आप कभी लगता है कि करने के लिए है उपयोगकर्ता इनपुट एक निश्चित है वर्ण की राशि. उदाहरण के लिए, जब आप क्या कर रहे थे स्पेलर, तुम शब्द थे कि कहा गया था केवल 40 अक्षर होने जा रहा लंबे अधिकतम. और कहा कि अच्छा था. लेकिन यदि नहीं, तो आप करना होगा सुनिश्चित करें कि केवल 45 में पढ़ने के लिए एक समय में वर्ण. अन्यथा, आप के ऊपर लिख सकता है अपने बफर. उस पर कोई सवाल नहीं. हाँ. दर्शक: आप सिर्फ बात कर सकता इन के बारे में एक छोटे से अधिक? एंजेला ली: क्षमा करें. हां. दर्शक: mic सिर्फ वीडियो के लिए है. मैं कोशिश करते हैं और परियोजना होगी. हाय, दोस्तों. समर्थन? तो चलो में कुछ बातों पर चलते हैं आप का उपयोग किया गया है जो CS50 पुस्तकालय, सभी सेमेस्टर, ज्यादातर उपयोगकर्ता इनपुट मिल. आप जानते हैं, आप CS50 शामिल बस CS50.h, ऐसा करके पुस्तकालय जो के सभी प्रोटोटाइप शामिल जैसे आप उपयोग कर सकते हैं कि काम करता है, GetString और GetInt, और GetFloat, वगैरह. और इस एक लाइन CS50 में नहीं है एक स्ट्रिंग को परिभाषित करता है जो पुस्तकालय, जो आप लोग सब अब तक पता * सिर्फ एक चार है. लेकिन हम पर एक तिरछी नज़र रखना GetString कैसे काम करता है. यह एक बहुत ही संक्षिप्त संस्करण है. आप CS50 पुस्तकालय फ़ाइलें खींच सकते हैं manuals.CS50.net, मुझे लगता है, से. और आप के माध्यम से पढ़ सकते हैं वास्तविक समारोह. लेकिन इस में से कुछ को शामिल किया गया महत्वपूर्ण भागों. इसलिए हम कुछ बफर बना लिया है कुछ क्षमता के साथ. और हम क्या हम एक चरित्र मिलता है मानक n से एक समय में. यही कारण है कि जहां उपयोगकर्ता इनपुट है कंसोल में पाठ. और इसलिए हम एक में पढ़ने के लिए जा रहे हैं यह एक नई बात नहीं है जब तक कि चरित्र रेखा और यह फाइल के अंत नहीं है जो मानक इनपुट का अंत है. और हम में पढ़ा है कि हर चरित्र के लिए, उस चरित्र को जोड़ने समाप्त होता है वर्णों की संख्या के कारण हमने पढ़ा है , में और कहा कि हमारी क्षमता से अधिक है तो हम क्या हम सिर्फ आकार परिवर्तन है हमारी बफर यह दो बार के रूप में लंबे समय है कि इतनी. तो फिर, यह बफर के खिलाफ की रक्षा अतिप्रवाह हमलों, आप में पढ़ा क्योंकि एक समय में एक चरित्र. और किसी भी बिंदु पर आप भी पढ़ें कई, तुम सिर्फ अपने बफर का विस्तार. आप दो से गुना. और फिर आप अधिक कमरा है. अन्यथा, आप बस जोड़ बफर करने के लिए एक चरित्र. और तुम सब में पढ़ा है के बाद वर्ण, यह बफर हटना होगा वापस सामान्य आकार के नीचे, एक जोड़ अशक्त टर्मिनेटर, और फिर लौट आते हैं. अब, चलो GetInt को देखो. तुम लोग इस पढ़ सकते हैं? मैं एक बिट में ज़ूम कर सकते हैं. मैं कंप्यूटर के कार्य करने के तरीके नहीं पता. कोई बात नहीं. मैं ठीक से ज़ूम में नहीं कर सकते हैं. यह वास्तव में कठिन है. मैं माफी चाहता हूँ. चलो बस इस पर एक नजर डालते हैं. तो क्या GetInt करता है कि यह पहली बार पढ़ता है GetString, से एक स्ट्रिंग में जो हम पहले क्रियान्वित किया है. और महत्वपूर्ण हिस्सा यहाँ ध्यान दें अगर यह समाप्त हो जाती है कि इस साझा पढ़ने नहीं वास्तव में एक स्ट्रिंग की तरह है, तो हम बस को INT_MAX लौटने विफलता का प्रतिनिधित्व करते हैं. क्यों हम बजाय INT_MAX वापसी नकारात्मक 1 या 1 की? किसी भी विचार? दर्शक: [सुनाई] नकारात्मक एक पर 1. एंजेला लाइट: हाँ, बिल्कुल. तो तुम बस चाहते करने के लिए जिस तरह की संभावना हो इनपुट 1 या नकारात्मक 1 के लिए संकेत एक वें और NTH जो कुछ Maxes के लिए. यह बहुत बड़ा है. आपको शायद यह उपयोग करने के लिए नहीं जा रहे हैं. तो इस के लिए एक डिजाइन निर्णय की तरह है सुनिश्चित करें कि आप ऐसा नहीं कर गलती है कि बनाने त्रुटि वापस या आप वापस नहीं 1, जो विश्लेषित किया जा सकता है एक सही जवाब के रूप में. एक पंक्ति मौजूद नहीं है तो अगर, हम int मैक्स वापसी. अन्यथा, हम, sscanf का उपयोग जो scanf की तरह है. लेकिन यह एक स्ट्रिंग से पढ़ता है. और हम इस स्वरूपित है % i% सी है जो स्ट्रिंग,. और हम कोशिश करेंगे और साथ मैच उपयोगकर्ता हमें दिया है जो भी हो. हम मिलान कर बातें की संख्या चाहते हैं 1 हो, जो इसका मतलब है कि हम केवल वास्तव में एक पूर्णांक से मेल करना चाहते हैं शायद सफेद से घिरे अंतरिक्ष, शायद नहीं. इस मामले में, आप कुछ में डाल बार की तरह, बार, पर सभी मेल नहीं खाता की जरूरत है क्योंकि शुरू में एक पूर्णांक. तो 0 दिया कभी नहीं sscan. तो आपको लगता है कि वापस नहीं करते. वैकल्पिक रूप से, आप कुछ में डाल जैसे 1, 2, 3, ए, बी, सी, कि मैचों पूर्णांक लेकिन यह भी दोनों इसके बाद चरित्र. तो sscanf, 2 वापस आ जाएगी जो आदर्श नहीं भी है. आप नहीं चाहते हैं 1, 2, 3, ए, बी, सी एक वैध INT हो. तो वह भी काम नहीं करता है. लेकिन अगर आप 50 की तरह कुछ में डाल कहना. जिसका मतलब है कि,% मैं मैच होगा यह n में पढ़ने के लिए मिल जाएगा. और अब, एन संख्या 50 में शामिल होंगे. और फिर आप इसे वापस कर सकते हैं. अन्यथा, आपको पुन: प्रयास करें मारा. और फिर यह सिर्फ जब तक फिर से खत्म हो जाता है आप उपयोगकर्ता से एक उचित इनपुट मिल. उस पर कोई सवाल? दर्शक: तो तुम थे, तो बाहर मुद्रित करने के लिए [सुनाई] पर GetInt का मूल्य यह सिर्फ पूर्णांक और अधिकतम होगा? एंजेला लाइट: हाँ. आप GetInt का उपयोग करते हैं तो, आप मान लेना चाहिए आप को NTH अधिकतम नहीं चाहते हैं कि आप जा रहे हैं, क्योंकि एक मान्य इनपुट हो कि बुरा था कि कल्पना करने के लिए. दर्शक: हम चार ग है और नहीं किया है 1, 2, 3, सैम में डाल किसी को, यह होगा अभी 1, 2, 3 के लिए काम करते हैं? एंजेला ली: मैं यह काम लगता है. लेकिन आप को 123Sam नहीं करना चाहती एक उपयोगकर्ता द्वारा एक मान्य इनपुट हो. यह वास्तव में एक पूर्णांक नहीं है. इसलिए यह उचित प्रतीत नहीं होता एक पूर्णांक के रूप में यह पार्स करने के लिए. ठीक है. उस मामले में, चलो हटो इंटरनेट पर. तो एचटीटीपी एक भाषा नहीं है. HTTP के लिए मानकों का सिर्फ सेट है कैसे आप ग्राहकों से बातें भेजने के लिए, कि सर्वर के लिए, आप पर है. वेब पर अन्य लोगों के. तो HTTP हाइपरटेक्स्ट के लिए खड़ा है प्रोटोकॉल स्थानांतरण. यह दिल और आत्मा है पूरे वेब की. हाइपरटेक्स्ट हिस्सा बस एचटीएमएल को दर्शाता है. हस्तांतरण की तरह ग्राहकों है आप के लिए अनुरोध भेज देंगे प्रतिक्रियाएं दे जो सर्वर,. और प्रोटोकॉल कैसे करते हैं, बस है आप एक सर्वर व्यवहार करने की उम्मीद है? और आप कैसे व्यवहार करने की अपेक्षा की जाती है आप इस व्यवस्थित कर सकते हैं कि इस तरह के संचार प्रक्रिया? तो HTTP अनुरोध इस तरह एक बहुत लग रही हो. अनुरोध प्राप्त की तरह है. आप लोगों को मिल अनुरोधों को देखा है और पोस्ट अनुरोध. वहाँ दूसरी बात है कि, / मुझे, कि बस यूआरआई या जहां आप का यूआरएल मेजबान भीतर जाना चाहते. तो इस अनुरोध के लिए पूछ रहा है www.facebook.com / मेरे जैसे पृष्ठ,. और यह एक अनुरोध प्राप्त है. और फिर इस HTTP/1.1, सिर्फ है कि आप उपयोग कर रहे HTTP का संस्करण. यह लगभग हमेशा 1.1 है. और फिर एक गुच्छा है भी अन्य सामान की. तुम अगर आप वास्तव में इन देख सकते हैं जब आप अपने कंसोल को खोलने वेब ब्राउज़िंग. प्रतिक्रियाएँ कुछ दिखेगा अधिक पसंद करते हैं. शीर्ष भाग, फिर, है HTTP के प्रकार आप उपयोग कर रहे हैं एक स्थिति कोड द्वारा पीछा किया. तो 200 ठीक सब कुछ बाहर काम किया है. यहाँ अपनी सामग्री है. आपकी सामग्री पालन हो रहा है. और फिर यह आपको बता देंगे किस तरह भी सामग्री और अन्य सामान की. स्थिति कोड, कुछ कर रहे हैं आपको पता होना चाहिए कि महत्वपूर्ण लोगों. 200 ठीक सब कुछ के स्वर्ण की तरह है. सब कुछ काम करता है. 403 निषिद्ध. आप भूल गए हैं तो आप शायद देखा है यह ठीक से कुछ chmod करने के लिए. यह आप के लिए नहीं है इसका मतलब है कि सही अनुमतियों के लिए सर्वर पर उस तक पहुँचने. यह पसंद है, नहीं, आप इसे देख नहीं सकते. 404 कि बात मौजूद नहीं है इसका मतलब है. नहीं मिला. तुम्हें शायद एक बहुत देखा है. 500 आंतरिक सर्वर त्रुटि आमतौर पर है कुछ पक्ष पर गलत हो गया था की तरह सर्वर की. तो आप pset7 को लागू किया गया, आप PHP त्रुटियों था, अगर तुम सकता है वास्तव में पृष्ठ पर जाएँ और एक देखना PHP त्रुटि सामान की पूरी गुच्छा. लेकिन यह है कि सामान्य रूप से नहीं होता है, वेबसाइटों वास्तव में नहीं करना चाहते क्योंकि अपनी साइट टूट गया है तुम क्यों बताना. वे शायद ही वापस कर देंगे एक 500 आंतरिक सर्वर त्रुटि. और फिर मैं एक चायदानी हूँ 418 नहीं है. के बारे में एक पूरी कहानी है यही कारण है कि एक बात है. लेकिन आप उस के बारे में पढ़ सकते हैं अपने ही समय पर. एक पूरी गुच्छा का नहीं है भी अन्य स्थिति कोड. लेकिन इन लोगों को कर रहे हैं आपको पता होना चाहिए. तो चलो HTML के बारे में बात करते हैं. एचटीएमएल, याद है, एक नहीं है प्रोग्रामिंग भाषा. यह एक मार्कअप भाषा है. यही कारण है कि यह सामग्री का वर्णन मतलब है. यह एक HTML दस्तावेज़ क्या लगता है आपको बताता यह कैसा लग रहा है की तरह है या नहीं लेकिन यह कैसे संरचित है. तो यह एक संरचना को परिभाषित करता है और वेब पृष्ठों के शब्दों. यह यह एक पैरा है, की तरह है. यह एक का आदेश दिया सूची है. यह मेरे पृष्ठ के एक वर्ग की तरह है. यहाँ शीर्षक है. यह इस तरह से सामान करता है. यह इस बात का किसी भी शैली नहीं है क्योंकि कि तुम सीएसएस में क्या करते हैं. और यह एक श्रृंखला की तरह दिखता है की नेस्ट टैग. तो एक बहुत बुनियादी का एक उदाहरण का उपयोग करने के लिए एचटीएमएल पेज, आपको टैग किया है वहाँ घोषणा. इस टैग घोषणा है हम एचटीएमएल 5 का उपयोग कर रहे हैं, कह रही है. तो आप बड़ी HTML टैग है. यह एक सिर और एक शरीर होता है. सिर के अंदर, आप शीर्षक है. यही शीर्षक में क्या जाता है अपने ब्राउज़र की पट्टी. हम लिंक है कि एक लिंक टैग एक बाह्य शैली पत्रक में. और फिर हम खींचती है कि एक स्क्रिप्ट है एक बाहरी जावास्क्रिप्ट से के रूप में अच्छी तरह से. और फिर हमारे शरीर के अंदर वास्तव में है पेज पर दिखाया जाता है क्या. हम एक पैरा मिल गया और फिर एक कर दिया है उस अनुच्छेद के अंदर छवि. यह एक बिल्ली के बच्चे की तस्वीर है. सूचना है कि छवि टैग ही बंद कर देता है. तो बजाय एक छवि के साथ खुलने की और फिर आप एक और / छवि कर बस इस छोटे से स्लैश है यहाँ, जो इसे बंद कर देता है. और छवि टैग भी इस कुंजी है मूल्य विशेषता एएलटी कहा जाता है. वैकल्पिक पाठ है कि आप इस पर उड़ना होता है जब. सबसे HTML तत्वों कुछ प्रमुख मूल्य है आप विभिन्न, दे सकते हैं कि चीजें अनुकूलन. हाँ. दर्शक: [सुनाई]. एंजेला ली: ठीक है, तो यह एक है टैग की विशेषता. आप का उपयोग कर रहे थे तो, अगर तुम सकता है चुनिंदा image.getAttribute करना. और फिर आप के लिए खोज कर सकते हैं Alt विशेषता मिलता है. और यह आप बिल्ली के बच्चे को दे देंगे. आप HTML, इनपुट में रूपों याद है तत्व नाम गुण होगा. और कि PHP भेजने के लिए उपयोग करता है क्या एक फार्म प्रस्तुत है अनुरोधों. दर्शक: आप कुछ उल्लेख किया था आप kittens.jpg उपयोग या अगर कैसे के बारे में लापता है कि कुछ फ़ोल्डर या अन्य फाइल? एंजेला लाइट: हाँ. तो यह एक रिश्तेदार कहा जाता है क्या है पथ, मैं नहीं दे रहा हूँ, क्योंकि आप पूरा पथ. आप fopen हो तो आप इस जब सी में की तरह है कुछ फ़ाइल, आप fopen hi.txt, कि अगर hi.txt उसी में होने की उम्मीद है निर्देशिका, आप इसे एक अधिक दे जब तक जटिल पथ. दर्शक: तो आप निर्दिष्ट कर सकता है जो फ़ोल्डर [सुनाई]? एंजेला लाइट: हाँ. और अगर आप ऐसा करने के लिए कैसे देख सकते हैं. लेकिन मैं kittens.jpg बाहर निकलना चाहता था मूल निर्देशिका का, मुझे क्या करना होगा .. / Kittens.jpg. हाँ. माफ़ कीजिए. हाँ. अरे यार, मैं सवाल भूल गया. सवाल क्या था? ओह, सवाल है, kittens.jpg था एक ही निर्देशिका में होने की उम्मीद? और इस मामले में, यह है. लेकिन आप भी यह एक निश्चित पथ दे सकते हैं यह होना जरूरी नहीं है कि इस तरह के. अच्छा है? सीएसएस. तो सीएसएस, HTML की तरह नहीं है, एक प्रोग्रामिंग भाषा. सीएसएस स्टाइल नियमों का सिर्फ एक श्रृंखला है. यह स्टाइल शीट्स के लिए खड़ा है. और तुम संयोजन के रूप में इसका इस्तेमाल करते हैं शैली पृष्ठों के लिए HTML के साथ. इसलिए तीन तरीके हैं आप इसे शामिल कर सकते हैं. आप यह कर सकते हैं एक तरह से सिर में है अपने HTML का भाग, आप बस कर सकते हैं एक शैली टैग खोलने और फिर छड़ी कुछ सीएसएस वहाँ में नियम. यह बहुत ठीक है. हाँ. दर्शक: आप उन डाल सकते हैं चलो, बीच में शैली टैग कहते हैं, शरीर और / शरीर. और फिर आप स्टाइल होगा केवल शरीर में. एंजेला ली: तुम सकता है. यह काम करेंगे. स्टाइल है बल्कि इसलिए कि तुम नहीं करना चाहिए, में जाना चाहिए कि मेटाडाटा की तरह अपने दस्तावेज़ के सिर. शरीर वास्तव में केवल शामिल करना चाहिए क्या वास्तव में हो रहा है अपने पृष्ठ पर दिखाई. दर्शक: तो तुम शैली डाला था शैली के लिए अपने सिर में पूरे वेब पेज, सही? एंजेला लाइट: हाँ. इसलिए इन सीएसएस नियम, यहाँ शैली डाल के आधार पर पूरे पृष्ठ पर लागू होगी उनके चयनकर्ताओं. तो यह करने के लिए बेहतर तरीका है बजाय है अपने सिर में एक शैली टैग होने, आप एक बाहरी शैली करने के लिए इस लिंक पर है मैं में दिखाया चादर की तरह पिछले उदाहरण. क्या करता है यह कोशिश करता है और पाता है style.css फ़ाइल और फिर यह खींचतान में और उपयोग करता है के रूप में पेज के लिए शैलियों. और अपने style.css होगा बस इस तरह दिखेगा. यह सिर्फ सीएसएस का एक गुच्छा होगा. और अंत में, एक और तरीका है कि आप वहाँ सीएसएस शामिल कर सकते हैं, जो आप वास्तव में कभी नहीं करना चाहिए. यह कॉल इनलाइन स्टाइल है. और इसलिए किसी भी HTML तत्व भी कर सकते हैं एक शैली गुण ले. और फिर उस शैली विशेषता में, आप यह सीएसएस नियम दे सकते हैं. तो इस मामले में, जो कुछ div मैं हूँ यहीं परिभाषित, यह जा रहा है एक काले रंग की पृष्ठभूमि है और एक सफेद पाठ रंग. लेकिन यदि आप यह नहीं करना चाहिए, क्योंकि क्या यह यह आपके स्टाइल डालता है करता है अपने HTML के अंदर. और मुझे लगता है कि हम HTML के बारे में बात कर रहा है पता संरचना है और सीएसएस शैली है. यदि आप ऐसा करते हैं, तो यह घोला जा सकता है उन्हें एक साथ. और यह बहुत साफ नहीं है. तो ऐसा नहीं करते. हम वहाँ, सीएसएस का एक उदाहरण का उपयोग बस HTML के शरीर का चयन दस्तावेजी. और हम सब कुछ है, पसंद कर रहे हैं हास्य संस होने जा रहा. मैं भी सुझाव नहीं है. लेकिन आप ऐसा कर सकता है. यहीं दूसरा नियम है, यह हो रहा है पर तत्व का चयन करने के लिए आईडी मुख्य साथ पेज. तो जो कुछ भी HTML तत्व, मैं आईडी कहा = मुख्य, मुझे लगता है कि एक देने जा रहा हूँ 20 पिक्सेल मार्जिन और सब कुछ संरेखित, केंद्र के लिए सभी पाठ,. आखिरी बात सीएसएस वर्ग से चयन करता है. तो मैं दे दिया है कि पेज पर किसी भी तत्व एक अनुभाग वर्ग, मैं इसे बनाने के लिए जा रहा हूँ हल्के नीले रंग की पृष्ठभूमि का रंग. हां. यही सब मुझे मिल गया है. प्रश्न? दर्शक: क्या करता हैशटैग मुख्य से पहले करते हैं? एंजेला ली: सवाल क्या करता है, मुख्य इससे पहले हैशटैग? इस मामले में, में हैश सीएसएस आईडी के आधार पर चुनिंदा मतलब है. मैं कुछ HTML तत्व था तो हैं, जैसे divid = मुख्य, इस सीएसएस नियम का चयन आईडी मुख्य साथ बात. और इसी प्रकार, के सामने अवधि खंड सीएसएस वर्ग से चयन करें या है एचटीएमएल वर्ग से चयन करें. दर्शक: क्यों एक से पहले किया गया है वहाँ है पृष्ठभूमि रंग में 6? एंजेला लाइट: हाँ. तो सवाल है, वहाँ क्यों है 6 से पहले एक हैश? इस हैश की तुलना में अलग है. यह आपको दे रहे हैं इसका मतलब है कि एक षोडश आधारी रंग. तो हेक्स रंग, इस बस एक रंग का प्रतिनिधित्व करता है. और तुम आरजीबी ट्रिपल याद है जब आप फोरेंसिक pset किया था? यह इसी तरह की है. पहले दो अंक का प्रतिनिधित्व करते हैं कितना लाल रंग में है. दूसरे दो का प्रतिनिधित्व कितना हरे. और तीसरे का प्रतिनिधित्व करता है कितना नीला. और हैश यह जा रहा है है एक रंग का प्रतिनिधित्व करने के लिए. तो 0, 0, 0, 0, 0, 0 से कुछ भी एफ, एफ, एफ, एफ, एफ के लिए ऊपर, एफ वैध है. यह कर सकते हैं कि कुछ वैध रंग है अपने ब्राउज़र द्वारा प्रदर्शित किया. प्रश्न? दर्शक: के बीच अंतर क्या है आईडी के आधार पर और वर्ग द्वारा इस्तेमाल नहीं करते? एंजेला ली: सवाल है क्या है बीच का अंतर आईडी और वर्ग द्वारा इस्तेमाल नहीं करते? आप केवल एक में एक तत्व हो सकता है किसी दिए गए आईडी है कि HTML दस्तावेज़. मेरे पेज पर तो केवल एक ही बात आईडी मुख्य की अनुमति दी है. तो आप इस के लिए इसका इस्तेमाल हैडर है. यह नेविगेशन है. इस पाद है. आप कर सकते हैं क्योंकि क्लासेस, अलग हैं के रूप में कई HTML तत्वों को कक्षाओं में लागू जैसा आप चाहते हैं. तो उदाहरण के लिए, मैं, वर्ग अनुभाग किया एक से अधिक शायद क्योंकि वहाँ मेरे पेज पर खंड. तुम बस के रूप में कई के पास करने के लिए अनुमति दी हो उसी के साथ पृष्ठ पर तत्वों वर्ग लेकिन एक निश्चित आईडी के साथ केवल एक ही. दर्शक: तो डॉट प्रतिनिधित्व करता है वर्ग? एंजेला लाइट: हाँ. एक डॉट एक वर्ग का प्रतिनिधित्व करता है. कूल. यही कारण है कि मैं सब मिल गया है, लोगों को है. धन्यवाद. [वाहवाही] ZAMYLA चान: हाय, सब लोग. मैं Zamyla हूँ. मैं PHP को कवर करने जा रहा हूँ, MVC और SQL आज. मैं हो जाएगा कि सामग्री का एक बहुत कवर बहुत ज्यादा होने जा रहा है सही pset7 के बाहर. ठीक है. इसलिए PHP क्या है? PHP PHP हाइपरटेक्स्ट के लिए खड़ा है पूर्वप्रक्रमक. तो यह अपने आप में एक पुनरावर्ती है जो बहुत अच्छा है, नाम है. PHP एक सर्वर साइड पटकथा भाषा है, और यह बैकेंड प्रदान करता है और तार्किक आधार हमारी वेबसाइट के. इसलिए एंजेला HTML के बारे में बहुत कुछ बात और सीएसएस संरचना है कि कर देगा वेबसाइट के. लेकिन आपको लगता है कि बदलने के लिए क्या चाहते हैं सामग्री गतिशील रूप से या अगर यह बदलता रहता है उपयोगकर्ता या पर आधारित कुछ शर्तों के? PHP अंदर आता है अब, आम तौर पर, पीएचपी कुछ ले सकता है एक ही बात को लागू करने के लिए कम लाइनों PHP स्मृति संभालती है क्योंकि सी. में है कि प्रोग्रामर के लिए प्रबंधन, हमें malloc के लिए होने के लिए विरोध के रूप में नि: शुल्क, इस तरह बातें. लेकिन PHP एक व्याख्यात्मक है क्योंकि भाषा, आम तौर पर, इसे लागू कर सकता है थोड़ा और धीरे से सी की तुलना में, जो एक संकलित भाषा है. हम प्रोग्रामिंग के लिए आगे बढ़ रहे हैं, क्योंकि भाषा, चलो हम देखते हैं कि कैसे वाक्यविन्यास अलग होगा. के नहीं करने के लिए बहुत सावधान रहने दो. इस के साथ भ्रमित हो. आप कर रहे हैं, चाहे PHP वाक्य रचना के साथ तो एक HTML के अंदर अपने PHP embedding आप ही फाइल या एक. php फ़ाइल के भीतर खुले में कोड लगा देना करने की आवश्यकता PHP और तरह बंद PHP टैग स्क्रीन पर तरह, इस प्रकार है. PHP में चर. हर एक चर के साथ शुरू होगा के नाम से पीछा $ हस्ताक्षर अपने चर. अब, PHP में चर शिथिल टाइप कर रहे हैं, जो आप की जरूरत नहीं है इसका मतलब क्या डेटा प्रकार का संकेत आप यह घोषणा कर रहे हैं जब है. हालांकि, इसका मतलब यह नहीं है कि वे सभी में किसी भी प्रकार की जरूरत नहीं है. मैं एक चर घोषणा और सिर्फ सेट तो अगर यह 1 के बराबर है, और फिर मैं घोषणा एक और चर, ", 1" के बराबर यह सेट और फिर एक दूसरे से 1.0, अच्छी तरह से, समानता के प्रकार पर निर्भर करता है मैं तुलना करना चाहते हैं ऑपरेटरों मैं उपयोग सभी प्रकार के पार, फिर वे बराबर हो जाएगा. लेकिन मुझे यकीन है कि बनाना चाहते हैं प्रकार बराबर हैं, पीएचपी अभी भी कर सकते हैं हम संकेत नहीं है कि, भले ही जब हम यह क्या प्रकार पहले फाइल बनाते हैं. अब, PHP में, भले ही हम कर रहे हैं प्रोग्रामिंग से ऊपर स्विचन सी से भाषा, हम अभी भी हमारे बस इस तरह, हालत अगर भरोसेमंद. हम अभी भी सिर्फ हमारे जबकि छोरों है इस तरह, आप में जहां डाल अपने तो हालत और पाश के शरीर. और फिर हम भी, पाश के लिए हमारे पास आम तौर पर इस तरह दिखता है. मैं सब से अधिक पुनरावृति करना चाहता था तो अगर नौ psets और सबमिट करें और एक कॉल समारोह submitPset, तो मैं क्या कर सकता है कि यहाँ, जो तुम लोग सब इस बिंदु के द्वारा किया. वैसे, बधाई हो. कैमरे के लिए, लोग कहा, शुक्रिया. अब, आप सिर्फ इस का उपयोग नहीं करना चाहता था, तो पाश के लिए, तो PHP वास्तव में भी बातें foreach छोरों का आह्वान किया है. इसलिए मैं पूर्णांकों की सरणी, 0 था अगर 8 के माध्यम से, सरणी psets में संग्रहीत, तो मैं एक foreach पाश हो सकता है psets में हर नंबर पर दोहराता है. और फिर मैं एक ही कह सकते हैं आठ बार से कार्य, मैं पहले था, बस ऐसे ही. इसलिए प्रत्येक पाश के लिए यह अच्छा है, क्योंकि तुम नहीं है कि आप नहीं जानते कि अगर को सरणी की सटीक लंबाई है कि आप तो फिर इस foreach पाश का उपयोग किया है आप के लिए इस बात का ध्यान रखना होगा. तो मैं एक सरणी के रूप psets बनाया. उस पर एक नजर डालते हैं. PHP में सारणियों आमतौर पर के रूप में वही कर रहे हैं हम सी, में किया है कि लोगों को जहां आप एक सरणी की घोषणा कर सकते हैं. और यहाँ, मैं एक खाली सरणी की घोषणा कर सकते हैं और उसके बाद का उपयोग कर गतिशील रूप का निर्माण पूर्णांक के रूप में सूचकांक. 0 सूचकांक तो, मैं स्टोर करने के लिए जा रहा हूँ एक पूर्णांक 1 नाम दिया है. मेरी सूची के सूचकांक 1 में, मैं जा रहा हूँ मूल्य 2 स्टोर करने के लिए. और तीसरा सूचकांक लेकिन कम दूसरा नंबर, मैं जा रहा हूँ संख्या 12 स्टोर. अब, यह है कि ठीक है यह अच्छी तरह से काम करता है काम करता है. लेकिन यह मेरे लिए मायने रखती कहना प्रत्येक सूचकांक रखती है. मेरे लिए, सूचकांक 0 का मतलब कैसे कई बिल्लियों मेरे पास है. और सूचकांक 1 इसका मतलब है कि कैसे कई उल्लू मेरे पास है. और अगले एक कितने कुत्तों का मतलब है. ठीक है, तो यह बजाय, यह निर्दिष्ट करने के लिए 0 से संबंधित है याद करने के लिए होने का उल्लू को बिल्लियों और 1, मैं उपयोग कर सकते हैं जिसका मतलब है कि साहचर्य arrays, बजाय मेरे सूचकांक के रूप में पूर्णांकों की, मैं वास्तव में तार का उपयोग कर सकते हैं. तो यह काफी उपयोगी है. और आप मूल रूप से बस बदल दिया है तार के साथ पूर्णांकों. और वहाँ तुम एक है साहचर्य सरणी. हाँ. दर्शक: क्यों वहाँ एक कारण है दूसरे के लिए एक अंडरस्कोर भाग, मेरी सूची सरणी है क्योंकि. ZAMYLA चान: सवाल था, है वहाँ एक वहाँ एक कारण है मेरे और सूची के बीच रेखांकित? नहीं. यही कारण है कि मैं नामकरण कर रहा हूँ बस कैसे मेरे चर. दर्शक: पहली में रेखा, यह एक शब्द है. ZAMYLA चान: मेरी क्षमा याचना. मुझे लगता है कि इसे ठीक कर दूँगा. हाँ. वे एक ही चर नाम होना चाहिए. अच्छी पकड़. ठीक है. तो चलो स्ट्रिंग पर चलते हैं कड़ी. मैं दो तार ले जाना चाहते थे, तो तब मैं उन्हें जोड़ना कर सकते हैं डॉट ऑपरेटर के साथ. तो मैं पहली बार एक नाम के रूप में मिलो है अगर और फिर एक अंतिम नाम के रूप में केला, डॉट ऑपरेटर और साथ concatenating फिर बीच में एक जगह डाल मिलो एक स्ट्रिंग है जिसमें कर देगा मैं तो गूंज या कर सकते हैं जो केले,, बल्कि, बाहर प्रिंट. गूंज की बात हो रही है, चलो बात कुछ उपयोगी के बारे में - उफ़. मैं माफी चाहता हूँ. कुछ उपयोगी PHP कार्यों. तो हम हैं - तकनीकी कठिनाइयों. एक दूसरा. मैं इसे भेजा. PowerPoint समस्याओं. और हम PHP कार्यों के साथ वापस आ रहे हैं. और हम PHP कार्यों के साथ वापस आ रहे हैं. तो हम समारोह की आवश्यकता होती है, जहां आप एक फाइल में पास है, यहाँ है अभी एक फ़ाइल का एक उदाहरण है कि मैं अंदर पारित हो सकता है तब उस PHP कोड में शामिल होंगे मैं संकेत मिलता है कि उस फ़ाइल से. और यह कि अंदर का मूल्यांकन करेंगे तो फिर हम भी गूंज है जो printf के लिए एक समानांतर है. बाहर निकलें को तोड़ने के लिए एक समानांतर है, ब्लॉक से बाहर निकलता है जो तुम अंदर हो कि कोड और फिर खाली चेक कि क्या एक दिया चर अशक्त या शून्य या पसंद है जो भी खाली किया जा रहा है के बराबर है. हाँ. दर्शक: स्ट्रिंग संयोजन के लिए डॉट ऑपरेटर एक, PHP में, है कि यह इस्तेमाल कर रहा है, जहां जावास्क्रिप्ट में के रूप में ही संयोजन के लिए डॉट प्लस का मतलब है? तो पूरा नाम के लिए, आप डॉलर हो सकता था पहले हस्ताक्षर + और फिर + पिछले? ZAMYLA चान: हाँ. तो सवाल यह था PHP में है कि क्या हम एक ही स्ट्रिंग संयोजन का उपयोग कर सकते हैं pluses के साथ जावास्क्रिप्ट में के रूप में. और यूसुफ कि बाद में मिल जाएगा. मुझे लगता है वह उस पर एक स्लाइड लगता है. असल में, यह अलग है. तो कृपया जावास्क्रिप्ट में, आप का उपयोग करने की आवश्यकता है तार जोड़ना प्लस. और PHP में, आप के लिए है डॉट ऑपरेटर का उपयोग करें. इसलिए वे अलग हैं. ठीक है. तो अब हम सभी को कवर किया है कि इस पीएचपी, जहां यह करता है वास्तव में काम में आते हैं? खैर, यह काम में आता है जब हम हमारे HTML के साथ गठबंधन कर सकते हैं. इसलिए हमारे PHP के लिए हमें शक्ति दे देंगे एक पृष्ठ के HTML सामग्री से पहले बदल अपने लोड हो रहा है. इसलिए विभिन्न शर्तों के आधार पर, है कि आमतौर पर विशिष्ट उपयोगकर्ता में लॉग इन, हम प्रदर्शित कर सकते हैं विभिन्न जानकारी. लिंडा, आप एक प्रश्न किया है? दर्शक: आप जोड़ना कर सकते हैं यह भी एक पूर्णांक? ZAMYLA चान: हां, आप कर सकते हैं. यदि आप कर सकते तो सवाल था पूर्णांकों या अन्य जुटना अब, हम MVC के लिए आगे बढ़ना variable.s जो हम में प्रयोग किया जाता है कि एक प्रतिमान है pset7 और वेब डिजाइनरों के एक बहुत कुछ के लिए उपयोग फ़ाइलों में कोड आयोजन अपनी वेबसाइट में. एम मॉडल के लिए खड़ा है. और असल में, मॉडल फाइलें सौदा होगा डेटाबेस के साथ बातचीत के साथ. फाइल देखने, वे से संबंधित वेबसाइट के सौंदर्यशास्त्र. और नियंत्रक संभालती उपयोगकर्ता अनुरोधों, डेसिमल डेटा, अन्य तर्क करता है. Pset7 में, हम मॉडल संयुक्त और नियंत्रक. और हम बस नियंत्रकों उन्हें बुलाया और सार्वजनिक निर्देशिका में डाल दिया. और देखें फाइलें, हम के रूप में उपयोग टेम्पलेट्स निर्देशिका में टेम्पलेट्स. तो यहाँ इस चित्र भी प्रतिनिधित्व करता है साथ विभाजन की कि एक ही तरह मॉडल और बैंगनी में नियंत्रक यहां बाईं तरफ और सही पर देखें. तो यह एक योजनाबद्ध है कि आप में से कुछ ऑफिस का समय या कम से देखा हो सकता है हम आप के रूप में ड्राइंग थे कि आरेख अपने pset बाहर लगाना थे. यहाँ तो एक दिया नियंत्रक में, एक मॉडल नियंत्रक, हम कार्य किया है एसक्यूएल क्वेरी से संबंधित डेटाबेस, पीएचपी तर्क को क्रियान्वित. हो सकता है कि आप देखना चाहते हैं याहू में एक शेयर वित्त. या शायद, आप अभी तक की जांच होगी एक उपयोगकर्ता को प्रस्तुत किया था देखना है कि क्या एक होने से पहले पहले से ही फार्म अपने पेज का दौरा किया. और फिर आपको प्रस्तुत करना होगा एक यहाँ पर फार्म. उस प्रपत्र प्रस्तुत किया गया था के बाद उपयोगकर्ता के द्वारा किया गया है कि कार्रवाई फार्म के एचटीएमएल टैग में निर्दिष्ट पेज का संकेत होगा कि यह उस डेटा के लिए आए. तो यह है कि सूचना के सभी होगा अपने नियंत्रक को वापस भेज दिया. तो फिर तुम शायद थोड़ा और अधिक करना होगा उस पर तर्क और शायद कुछ निष्पादित अधिक SQL डेटाबेस में क्वेरी और फिर, अंत में, एक अच्छी तरह से साथ आ जानकारी के पैक सेट कि तुम होगा कुछ अन्य टेम्पलेट में में पारित कि उस जानकारी को प्रदर्शित किया. अब, कैसे हम वास्तव में पैकेज कर जानकारी है कि ऊपर? खैर, हम प्रस्तुत करना कहा जाता है एक समारोह है उस में functions.php फ़ाइल में था pset7, आप के नाम से गुजरती हैं जहां एक फ़ाइल, एक टेम्पलेट का नाम. और फिर तुम भी में पारित एक साहचर्य सरणी. और इतना है कि साहचर्य सरणी का प्रतिनिधित्व करता है विभिन्न जानकारी आप अंदर पारित करना चाहते हैं अब, क्या में लगातार होने जा रहा है इन उदाहरणों है कि कुंजी या, बल्कि, साहचर्य की चाबी सरणियों, उन होने जा रहा है क्या कर रहे हैं टेम्पलेट द्वारा निरंतर होने की उम्मीद, यह जरूरत है यह जानता है क्योंकि संदेश में कुछ कहा या नाम कहा जाता है. और फिर ठीक पर बातें, वास्तविक मूल्यों, तो इस मामले में, जो है एक अच्छा लड़का है और मिलो, उन जा रहे हैं बदल रहे हैं कि मानों होने के लिए नियंत्रक हर बार है कि परिवर्तन या एक निश्चित शर्त पर आधारित और अंदर कि पारित करेंगे तो यहाँ टेम्पलेट्स में, हम देखते हैं कि हम एचटीएमएल विशेष वर्ण का उपयोग कर रहे हैं, जो सिर्फ मूल रूप से हम चाहते हैं कि इसका मतलब सहकर्मी स्ट्रिंग प्राप्त करने के लिए कि उपयोगकर्ता अंदर डाल और हम स्थानापन्न करना चाहते हैं वहाँ में संदेश. तो फिर हम वास्तव में देखने पर फ़ाइल, विशिष्ट जानकारी के अंदर पारित हो जाता है कैसे काम करता है प्रस्तुत करना महत्वपूर्ण है कि नोट कि साहचर्य की चाबी सरणियों, उन बन चर यहाँ नामों. और हां में है कि कुंजी के मूल्यों साहचर्य सरणी तो बन जाता है चर का मान. अब, एसक्यूएल पर चलते हैं. यह संरचित के लिए खड़ा है भाषा प्रश्न. और इसलिए यह सिर्फ एक प्रोग्रामिंग है बनाया गया भाषा डेटाबेस प्रबंधन के लिए. और यह हमारे लिए काम में आया हमारे pset7 वित्त वेबसाइट. अनिवार्य रूप से, यह करने के लिए सिर्फ एक आसान तरीका है वस्तुओं और तालिकाओं को ट्रैक और प्रबंधित और एक दूसरे के लिए उन्हें कड़ी. अब, अपने SQL डेटाबेस के बारे में सोच मूल रूप से एक Excel फ़ाइल के रूप में, शायद, एकाधिक tabbed शीट के साथ. तो आप एकाधिक तालिकाओं हो सकता था, शायद, कि एक दूसरे से जुड़ा हुआ है. और एक्सेल बहुत पसंद है, हम में से एक बहुत कुछ है हम चाहते हैं कि कार्यक्षमता. उदाहरण के लिए, हम चयन कर सकते हैं कुछ पंक्तियाँ. हम जानकारी सम्मिलित कर सकते हैं. हम पंक्तियों को अपडेट कर सकते हैं. और हम भी चीजें नष्ट कर सकते हैं. एसक्यूएल पंक्तियों का चयन करके निर्माण चयन या एक से निर्दिष्ट स्तंभों की एक पंक्ति एक निश्चित है कि मैच के डेटाबेस आप से संकेत मिलता है कि मापदंड. यहाँ पर मैं चयन देख जब * से तो जहां घर = रेवेनक्ला, तब जादूगरों मुझे लगता है मैं कर रहा हूँ, जिसका मतलब * चयन कर रहा हूँ कि हर एक स्तंभ का चयन जादूगरों तालिका लेकिन केवल तभी से पंक्ति घर स्तंभ रेवेनक्ला के बराबर होती है. अब, यह शुद्ध या SQL है. मैं जो phpMyAdmin में चला गया, तो अगर हम प्रबंधन करने के लिए उपयोग करने वाले विशिष्ट तरीका हमारे SQL डेटाबेस, तो मैं डालने सकता कि phpMyAdmin वेबसाइट में. और उस पर अमल होगा. लेकिन हम वास्तव में क्या करना चाहते हैं कि PHP ओर. तो हम कैसे करते हो? खैर, हम क्वेरी समारोह, जो प्रयोग मूल रूप से जो SQL क्वेरी निष्पादित. का प्रयोग? प्लेसहोल्डर के रूप में, हम कुछ में पारित कर सकते हैं हमारे स्ट्रिंग मूल्यों है कि हम बदलना चाहते हैं. तो शायद मैं अलग भंडारण कर रहा हूँ curr_house में मूल्यों, जो मौजूदा सदन का प्रतिनिधित्व करता है मैं के माध्यम से जा रहा हूँ कि. तो मैं एक प्लेसहोल्डर के रूप में है कि पारित कर सकते हैं प्रश्न चिह्न के साथ. और फिर मैं मूल रूप से अमल करेंगे मैं छोड़कर, पहले किया था एक ही बात के रूप में अब, मैं PHP में हूँ. और क्वेरी एक वापसी करेंगे साहचर्य सरणी. और मैं पंक्तियों में यह स्टोर करने के लिए जा रहा हूँ. अब, इस प्रश्न को हमेशा असफल हो सकता है. शायद एसक्यूएल क्वेरी को निष्पादित नहीं कर सकता तालिका मौजूद नहीं था क्योंकि. या शायद, स्तंभ मौजूद नहीं था. कुछ गलत हो गया. खैर, उस मामले में, आप करना चाहते हैं चाहे आप सुनिश्चित करें कि क्वेरी झूठी लौटे. और कहा कि ट्रिपल उपयोग करके है वहाँ आपरेशन के बराबर होती है. और फिर मैं एक और है, जो माफी माँगता हूँ एक संदेश में गुजर CS50 समारोह,. और तुम माफी माँगता हूँ, सब इस पर गौर अगर सच है apology.php प्रस्तुत करना है. हाँ. दर्शक: तुम क्या है कि समझा सकता है स्टार चुनें और से के बीच करता है? ZAMYLA चान: हाँ, बिल्कुल. इसलिए चयन करें और से के बीच में सितारा मैं पूरी चयन करना चाहते हैं इसका मतलब है कि मेरी मेज से पूरी पंक्ति. मैं चयन संकेत दिया है सका , वर्ष, घर का नाम. और मैं केवल उन तीन मिलेगा मेरी तालिका में स्तंभों. मैं चयन * कहते हैं, तो मैं हूँ उस स्तंभ में सब कुछ मिलता है. तो मैं तुम्हें जाने के लिए जा रहा हूँ पहले पीठ में. दर्शक: तो यह अभी भी है एसक्यूएल में, सही? इस क्वेरी है या इस PHP है? ZAMYLA चान: हम एक क्वेरी में हैं. तो यह PHP में है. इसलिए PHP समारोह क्वेरी का उपयोग कर, हम एक एसक्यूएल क्वेरी को क्रियान्वित कर रहे हैं. दर्शक: एसक्यूएल में कुछ भी है मामले के प्रति संवेदनशील, की तरह का चयन या जादूगरों या घर? ZAMYLA चान: कुछ भी है एसक्यूएल केस संवेदी में? मैं हाँ, इतना विश्वास करते हैं. मेरा मानना ​​है कि चुने और से और मामले के प्रति संवेदनशील होते हैं. नहीं? आरओबी BOWDEN: तो, यह विपरीत है. स्तंभ नामों और तालिका का मतलब है, उन सभी के मामले के प्रति संवेदनशील हैं. लेकिन MySQL कुंजी शब्दों के किसी भी तरह, से चुनें, और, उन कहां नहीं हैं मामले के प्रति संवेदनशील. ठीक है. तो मैंने क्या कहा के विपरीत. तो MySQL सभी कीवर्ड - उन - जहां से, चयन मामले के प्रति संवेदनशील नहीं हैं. लेकिन सब कुछ है. ठीक है. सामने तुम. दर्शक: मैं के संदर्भ में पंक्तियों डॉलर के हैं एक से अधिक पंक्ति, इसका मतलब है करता है सिर्फ एक साहचर्य सरणी हो जाता है? ZAMYLA चान: तो सवाल था अगर पंक्तियाँ , उस में एक से अधिक पंक्ति करता है यह एक साहचर्य सरणी हो गया है? तो यह साहचर्य की एक सरणी है पहले से ही सरणियों. केवल एक ही पंक्ति नहीं है तो भी अगर लौटे, तो आपको जाना होगा नतीजा है कि के सूचकांक 0. और फिर आपको लगता है कि पहली पंक्ति के लिए होगा. हाँ, बेलिंडा? दर्शक: आप === का उपयोग करते हैं, यह केवल उदाहरण है? या दूसरों रहे हैं? ZAMYLA चान: तो इस मामले में, === प्रकार भर में एक तुलना है. माफ़ कीजिए. === तुलना है उस प्रकार के मुकाबले बेहतर है. और फिर == सभी प्रकारों में तुलना. दर्शक: आप क्या व्याख्या कर सकते हैं पंक्तियों को इस स्थिति में है? यह डेटा की पंक्ति है? ZAMYLA चान: अगली स्लाइड में, मैं कर रहा हूँ क्या है पंक्तियों समझा जा रहा. तो तुम पकड़े मन नहीं है बंद उस पर. और फिर तुम वापस में? दर्शक: क्वेरी जैसे कार्यों के लिए, प्रस्तुत करना और [सुनाई] माफी माँगता हूँ? ZAMYLA चान: सवाल था कि क्या इन कार्यों - क्वेरी, माफी माँगता हूँ, और प्रस्तुत करना - PHP भर में आम हैं. ये लोग कर रहे हैं कि CS50 pset7 के लिए लिखा था. और जे? दर्शक: तुम कहते हो की जरूरत है $ देखना, है ही आईडी के लिए है? या आपको लगता है कि यहाँ कहा जा सकता था? ZAMYLA चान: तो सवाल था, जब हम चाहते हैं कि एक विशिष्ट था, $ देखना उपयोग हम प्रयोग कर रहे हैं कि वैश्विक चर. यहाँ इस चर के लिए जा रहा है हमारे कार्य करने के लिए स्थानीय हो. तो हम सिर्फ घोषणा कर रहे हैं एक नया चर. दर्शक: कैसे माफी माँगता है कार्यान्वित? ZAMYLA चान: सवाल था, कैसे कार्यान्वित माफी माँगता हूँ है? और मैं यह वास्तव में एक बहुत लगता है आप लोगों में जाने के लिए अच्छा अभ्यास functions.php अनुभाग और को देखो माफी माँगता हूँ और तुम हो सकता है कि कैसे देखते हैं यह अपने आप से किया. इसलिए मुझे लगता है कि आप को छोड़, लेकिन अभी सकता है अगर तुम देखो माफी माँगने का कहना है कि, तो यह है कि आप संदेश लेता है यह तो माफी माँगने के लिए प्रस्तुत है, और उस संदेश देता है. कोई और सवाल? मैं सवालों से प्यार है. इसलिए उन्हें आते रहते हैं. दर्शक: [सुनाई] गूंज या वहाँ प्रिंट? ZAMYLA चान: सवाल था, हम बस डाल नहीं हो सकता था गूंज या वहाँ प्रिंट. इसलिए कि कुछ किया होता थोड़ा अलग. उस क्वेरी मुद्रित होगा उस में विफल रहा है - खैर, अब ठीक है, हम वास्तव में कर रहे हैं हमारे नियंत्रक में. इसलिए हम वास्तव में नहीं है एचटीएमएल यहाँ की स्थापना की. Apologize.php प्रतिपादन से माफी माँगता हूँ वास्तव में apology.php को आप पुनर्निर्देश. ठीक है. तो अब, के अभिभाषण पर जाना है के बारे में पहले से क्या सवाल वास्तव में पंक्तियाँ है. खैर, इस प्रश्न को वापस आ जाएगी पंक्तियों की एक सरणी. और हर पंक्ति में प्रतिनिधित्व किया है एक साहचर्य सरणी से. मैं कुछ एसक्यूएल क्वेरी और मार डाला गया है तो अगर मैं तो पंक्तियों में परिणाम संग्रहीत किया है एक foreach पाश का उपयोग कर, तब सरणी पंक्तियाँ - नाम वहाँ पहले से एक है. और फिर मैं फोन करने के लिए जा रहा हूँ वहाँ $ पंक्ति में हर पंक्ति. तो मुझे लगता है, उस पर फिर सकता है पुनरावृति दी गई पंक्ति का नाम स्तंभ का उपयोग, वर्ष स्तंभ, और घर स्तंभ. मैं करने में सक्षम नहीं होता कि नोट क्योंकि पंक्तियों सूचकांक पंक्तियों के साथ ऐसा कर नाम मौजूद नहीं है. पंक्तियों की सिर्फ एक सरणी है साहचर्य arrays. तो तुम वहाँ दो स्तरों पर है. आप पंक्तियों की सरणी है एक बार, तुम उस में मिलता है. और फिर आप स्तंभों का उपयोग कर सकते हैं. कि यह स्पष्ट कर दिया? हाँ, सामने? दर्शक: [सुनाई] ओपन कोष्ठक [सुनाई] के लिए? ZAMYLA चान: मुझे माफ करना? दर्शक: खुले कोष्ठक. ZAMYLA चान: यहां ये? यही कारण है कि मुझे शामिल करने की इजाजत दी है कि चर. हाँ. दर्शक: आप मुद्रित करते हैं, आप कर रहे हैं एचटीएमएल कोड को मुद्रण? ZAMYLA चान: हाँ. जब मैं प्रिंट, यहां यह अंदर है मेरे टेम्पलेट अब, तो MVC विधि के मेरे विचार. तो मैं HTML में मुद्रण कर रहा हूँ. हम डेवलपर में चला गया तो यदि: दर्शकों उपकरण इस चलाने के बाद, हम कर सकते थे वास्तव में कोड में है? ZAMYLA चान: यह एक बहुत अच्छी बात है सवाल है, हाँ. आप डेवलपर उपकरण में चला गया तो अगर फ़ायरफ़ॉक्स Firebug का उपयोग कर या में क्रोम, तो हाँ, तुम सकता है विशिष्ट HTML देखें. तो यह $ पंक्ति ["नाम"] नहीं दिखा सकते हैं. यह जो भी दिखा सकते हैं नाम है कि पंक्ति में है. दर्शक: बस एक सामान्य मुद्दा है, क्या tr रहे हैं और टीडी के रूप में परिभाषित किया गया? क्यों होता है कि हम [सुनाई]? ZAMYLA चान: टेबल पंक्ति टी.आर., तालिका तब स्तंभ टीडी. ठीक है. दर्शक: हाँ, यह तालिका डेटा है. ZAMYLA चान: टेबल डेटा. हाँ. दर्शक: यह एक पंक्ति है, जिसमें पंक्ति एक स्तंभ की तरह व्यवहार किया जाता है? ZAMYLA चान: क्षमा करें. आप कि दोहरा सकते हैं? दर्शक: आप कैसे होगा पंक्तियों कल्पना? ZAMYLA चान: कैसे आप कल्पना होगा जिस तरह से किस तरह की पंक्तियों? आप इन के बारे में बात कर रहे हैं यहाँ पंक्तियों या टीआर पंक्तियों? दर्शक: पंक्तियों. ZAMYLA चान: यहाँ इन पंक्तियों? मैं इस कल्पना करता हूं मैं अपनी क्वेरी को निष्पादित. और यह ठीक है, मैं एन 0 के पास या तो कहते हैं, मापदंड से मेल खाने वाली पंक्तियों की राशि आप पूछे था. तो मैं पंक्तियों में से कुछ संख्या है. पंक्तियाँ तो, $ पंक्तियों, दुकानों प्रत्येक एक सरणी में उन पंक्तियों में से एक. तो यह सिर्फ उन में से एक है, भले ही यह है अभी भी यह मेल खाने वाली पंक्तियों की एक सरणी. तो फिर, उदाहरण के लिए, यह है आप दिलवाया जब तक समान उपयोगकर्ताओं से कैश. और मापदंड जहाँ वहाँ था आईडी सत्र आईडी के बराबर होती है. वास्तव में केवल एक ही पंक्ति है कि उस मैच सकता है. लेकिन फिर भी पंक्तियों सिर्फ एक पंक्ति लौट आए. तो आप पंक्तियों को जाना होगा, 0 सूचकांक, सूचकांक कैश वास्तव में अपने कैश करने के लिए मिलता है. दर्शक: प्रिंट समारोह है एक ही बात गूंज में? ZAMYLA चान: हाँ. हां. उसी की प्रतिध्वनि प्रिंट. दर्शक: foreach पाश है पंक्तियों में सूचकांक के लिए एक ही रास्ता है? ZAMYLA चान: एक foreach पाश है आप कर सकते हैं कि एक ही रास्ता पंक्तियों के माध्यम से पुनरावृति? नहीं. आप यह भी प्रदान की, पाश के लिए एक का उपयोग कर सकते हैं आप लंबाई पता है कि पंक्ति सरणी की. दर्शक: आप उस तक पहुँच सकते हैं [सुनाई] के रूप में एक पंक्ति का उपयोग कर? ZAMYLA चान: तो आप इसे उपयोग नहीं कर सकते आप नहीं है तो बस पंक्ति का उपयोग कर एक foreach पाश बशर्ते कि आप पंक्ति घोषित नहीं किया है. हां. हाँ, सफेद में. दर्शक: टी.आर. और टीडी तो क्या करें? ZAMYLA चान: तो टी.आर. और टीडी एचटीएमएल टैग कर रहे हैं. टीआर शुरुआत इंगित करता है एक तालिका पंक्ति की. और प्रत्येक टीडी एक इंगित करता है नई तालिका डेटा स्तंभ. दर्शक: क्या एक पंक्ति के एक दृश्य के लिए जैसे, बस एसक्यूएल कल्पना है, कैसे वे एक पंक्ति है. [सुनाई]. ZAMYLA चान: हाँ. यह एक बड़ी बात है. तुम बस के रूप में पंक्तियों कल्पना कर सकते हैं जैसे किसी Excel तालिका में, बस पंक्तियों की सूची. ठीक है. ठीक है. तो अब हम हैं, का चयन अधिक हो गई है कि कोई और सवाल हम हूँ, वहाँ नहीं कर रहे हैं डालने पर खत्म हो जाना. मैं कुछ में सम्मिलित करने के लिए चाहता था तो अगर मेज और कुछ कॉलम डालने मूल्यों, मैं अपने आप को सम्मिलित कर सकता है वर्ष 7 में रेवेनक्ला में. लेकिन कभी कभी डुप्लिकेट हो सकता है मूल्यों, हम pset7 में देखा था जब हम हमारे पोर्टफोलियो अद्यतन कर रहे थे. तो इस मामले में, हम पर उपयोग करना चाहते हैं हम नहीं करते हैं, ताकि कुंजी अद्यतन DUPLICATE एक ही साथ कई पंक्तियों की दुकान मूल्य है, लेकिन बल्कि यह अद्यतन करें. तो फिर हम वास्तव में अद्यतन किया है, जो एक डालने नहीं है. यह आप अद्यतन जहां सिर्फ एक अद्यतन है एक दिया साथ एक निश्चित तालिका में मापदंड और फिर, अंत में, हटाना, जो एक बहुत ही इसी तरह की बात करता है. दर्शक: क्या आप संक्षेप में डुप्लीकेट चाबी से अधिक जाना? ZAMYLA चान: हाँ. मूलतः यहां, मैं इन्सर्ट में है ग्रिनगौट्स, galleons, इन मूल्यों है. लेकिन आईडी, शायद, एक अद्वितीय कुंजी है मूल्य MySQL तालिका में स्थापित की. इसलिए मुझे लगता है कि पहले से ही आईडी का गठन किया है, तो तो मैं एक नई पंक्ति सम्मिलित नहीं कर सकता. यह पहले से ही मौजूद नहीं है तो अगर, तो मैं इसे अद्यतन करने के लिए है. सफेद में बीच में. दर्शक: तो, हटाना, अद्यतन, सम्मिलित और चुनें, उन सभी उपलब्ध हैं स्थानीय स्तर पर [सुनाई]? ZAMYLA चान: तो डालने, अद्यतन, हटाने, और चयन सभी एसक्यूएल प्रश्नों हैं. तो जब भी आप SQL का उपयोग कर रहे हैं, आप उन उपलब्ध होगा. दर्शक: अतीत परीक्षाएँ लिए पीछे - साथ निपटा है कि एक सवाल ही नहीं था आप एक तालिका था और चाहता था एक में परीक्षण स्कोर डालने और आप सम्मिलित अपना नाम नहीं दूँगी तुम्हें यह तो [सुनाई] अपने मित्र का परीक्षण स्कोर. आपको लगता है कि डालने के साथ कैसे होगा? ZAMYLA चान: तो सवाल के बारे में था पिछले एक मध्यावधि प्रश्न. मैं जो के बारे में पता नहीं कर रहा हूँ एक यह अब ठीक है. इसलिए हो सकता है बाद में, यदि आप चाहते हैं मैं कर सकता हूँ, फिर आया और मुझे दिखाओ निश्चित रूप से आप सुझाव दे. लेकिन, जैसे डालने चीजों के बारे में बात जब आप किसी के स्कोर लेने , के बारे में बात करते नहीं होना चाहिए SQL इंजेक्शन हमला करता है. तो एक SQL इंजेक्शन हमले अनिवार्य है जहां किसी लेता है की कम सुरक्षा का लाभ आप डेटा में ले जा रहे हैं कि जिस तरह से. तो यहाँ में, बस CS50 वित्त में जैसे, हम में लॉग इन करते हैं, तो हम एक में प्रवेश कर सकते हैं प्रवेश फार्म में उपयोगकर्ता नाम, पहला पाठ बॉक्स, और तब एक पासवर्ड में प्रवेश करते हैं. शायद हमारे PHP कोड लग सकता है कुछ इस तरह, जहां एक उपयोगकर्ता नाम है के बाद डेटा यूज़रनेम और पासवर्ड बाद डेटा पासवर्ड है. और फिर हम सिर्फ, कहते हैं, हमारे क्वेरी को निष्पादित ठीक है, ठीक है, हमारे क्वेरी जा रहा है हमारे उपयोगकर्ताओं से चयन करें, जहां यूजर का नाम है वे प्रस्तुत करता है. और क्या है, पासवर्ड मेल जिसका अर्थ है कि. अब, क्या हुआ अगर बजाय वास्तव में जैसे, एक वास्तविक पासवर्ड प्रस्तुत करने 12345 और कहते हैं कि शूल में अनुमान लगा पासवर्ड और हैक करने की कोशिश कर उनके खाता, क्या बजाय अगर वे इस प्रस्तुत की. वे शायद में टाइप कर सकते हैं एक पासवर्ड में एक अनुमान. और फिर वे खत्म होगा भाव तो में टाइप करें, या = 1 1. जो SQL में सीधे गति होगी कुछ इस तरह लग करने के लिए क्वेरी. उपयोगकर्ताओं से चयन करें जहां यूजर का नाम = Prongs और पासवर्ड लिली या 1 = 1 के बराबर होती है. तो पासवर्ड या तो है सही या 1 = 1 हो, हमेशा सच है. तो इस मामले में, मूल रूप से, एक उपयोगकर्ता कर सकते हैं इस का लाभ लेने के लिए और बस लॉग इन करें अपने आप में और हैक किसी का खाता. हम बचना चाहते हैं तो इसलिए यह करने के लिए हो रही किसी को. लेकिन सौभाग्य से, क्वेरी समारोह से प्लेसहोल्डर्स में गुजर ले जाएगा आप के लिए इस बात का ध्यान. इसके अलावा, आप आमतौर पर कभी नहीं चाहता हूँ वास्तव में पासवर्ड को प्रस्तुत करने के लिए खुद को. हम टुकड़े किए गए या एन्क्रिप्टेड यही कारण है कि CS50 वित्त में उन्हें. दर्शक: अतीत प्रश्नोत्तरी बात की के बारे में MySQL भागने तार. हम उस के बारे में चिंता करने की ज़रूरत है? ZAMYLA चान: यह एक अच्छा सवाल है. MySQL भागने तार निश्चित रूप से एक हमारे क्वेरी में इस्तेमाल किया गया था कि समारोह. लेकिन निश्चित रूप से उस पर विचार. मुझे लगता है कि पता करने के लिए उचित खेल कहूँगा आपको लगता है कि फोन करने की जरूरत होगी कि एक तार पर कार्य करते हैं. हाँ, बेलिंडा? दर्शक: यह है जब तुम कैसे जानते हो एक उद्धरण या दोहरे उद्धरण? और यह भी, मैं तुम्हें व्याख्यान में की तरह लग रहा है नहीं होने के बारे में कुछ कहा [सुनाई] या कुछ या अंत में एक दूसरा भाव. मैं वह व्याख्यान में कहा कि लगता है कि आप apostrophe 1 है चाहिए रहे हैं और फिर apostrophes जरूरत नहीं या कुछ और. दर्शक: [सुनाई]. दर्शक: बात पिछले एक है कि दूसरे बॉक्स में वहाँ में बोली वहाँ नहीं होना चाहिए. [सुनाई] क्योंकि आपको लगता है कि पिछले एक ले जब बाहर बोली और सामग्री के लिए इन मैच आपको लगता है कि अगर पासवर्ड, जहां क्वेरी, एक ही भाव में वहाँ पहले से ही अंत. तुम्हें पता है कि एकल बोली का उपयोग करना चाहते हैं कि एक चेहरे के रूप में एक [सुनाई]. तो क्या हुआ कि पाठ में वास्तव में है बॉक्स कि नहीं होना चाहिए. ZAMYLA चान: मुझे लगता है कि बदल देंगे. ठीक है. कोई प्रश्न नहीं कर रहे हैं, तो मैं हूँ बात करने के लिए यूसुफ को इस पर गुजरती जावास्क्रिप्ट के बारे में, वगैरह. [वाहवाही] यूसुफ ONG: तो हम चल रहे हैं एक छोटा सा पीछे. आप छोड़ने के लिए है, तो यह ठीक है. लेकिन हम आपको नीचे अपने सिर रखने के लिए कहते आप बीच में हैं, इसलिए यदि आप कैमरा ब्लॉक और आप का उपयोग नहीं करते अगर आप के पास वापस बाहर निकलें. मैं जिस तरह से यूसुफ हूँ. हाय. टेस्ट, परीक्षण. दान, कि अच्छा है? कूल. तो वीडियो भी पोस्ट किया जाएगा उन लोगों के लिए ऑनलाइन कि अब छोड़ दिया है. अजीब. ठीक है. तो प्रश्नोत्तरी समीक्षा. यह एक बिल्ली है. शायद नहीं है, जो अब, जावास्क्रिप्ट, आप लोगों में से कुछ के लिए ओ के रूप में. ठीक है. इसलिए कि पहली बार है, Zamyla से याद करते हैं. PHP है कि याद रखें सर्वर पर चलाते हैं. और समय की बहुत सारी, तुम लोग छोरों लिखा PHP में सही, एचटीएमएल बाहर मुद्रित करने के लिए? उस कोड निष्पादित करता है तो एक बार, कि तुम बाहर प्रिंट कि HTML उत्पादन उपयोगकर्ता के लिए भेजा जाता है. ऐसा होता है और एक बार से अधिक नहीं है PHP सकते हैं आप पृष्ठ पुनः लोड जब तक की,, चला जा PHP reexecutes जो पाठ्यक्रम,. लेकिन आपको लगता है कि एचटीएमएल बाहर प्रिंट एक बार, तुम कहीं नहीं जा सकते. तो यह है कि एचटीएमएल, उपयोगकर्ता के लिए भेजा जाता है यहाँ पर, ब्राउज़र है जो जहां मिलो कंप्यूटर का उपयोग कर रहा है. और तो ठीक है, वहाँ कई चीजें हैं हम उपयोगकर्ता के लिए HTML भेजने एक बार. कभी कभी हम की तरह कुछ करना चाहते हैं आप कुछ पर क्लिक करते हैं, तो हम चाहते हैं , के उन प्रकार के पॉप अप करने के लिए चेतावनी बक्से जब आप प्रेस की तरह बातचीत, कुंजी, आप पर कुछ क्लिक करने पर पेज, मैं ऐसा करने के लिए कुछ करना चाहते हैं. खैर, आप PHP reexecute नहीं कर सकते HTML कि सेट है कोड एक बार. तो तुम यह कैसे करते हो? हम नाम से एक नई भाषा का परिचय ब्राउज़र में चलाता है जो जावास्क्रिप्ट, कि आप बातें करने के लिए अनुमति देता है आप प्राप्त होने के बाद HTML में उन्हें सर्वर से. हम इसे एक क्लाइंट साइड कॉल और यह कारण है प्रोग्रामिंग भाषा. यह आपके कंप्यूटर पर काम करता है - ग्राहक. अब तक इस बारे में कोई सवाल? प्रतिमान है कि लोगों को समझ में आता है? ठीक है. अच्छा. ठीक है. तो पहली बात नोट करने के लिए जावास्क्रिप्ट PHP नहीं है. वे कुछ अलग वाक्यविन्यास है, जो हम में जाना होगा. और वे बहुत अलग का उपयोग करता है. जावास्क्रिप्ट, फिर से, के लिए अपने ग्राहक के लिए ब्राउज़र,. सर्वर किसी और की पर कहीं चलाता सूचना भेजता है कि कंप्यूटर आप के लिए, सही? इसलिए हम PHP कोड लिखने के लिए आप से पूछना अगर एक परीक्षा के प्रश्न पर, नहीं लिख सकता हूँ जावास्क्रिप्ट और इसके विपरीत. तुम बस अंक खो देंगे, और यह सही नहीं होगा. तो चलो कुछ में मिलता है वाक्यविन्यास मतभेद - बाईं तरफ जावास्क्रिप्ट और सही पर PHP. आप के साथ नोटिस करेंगे पहली बात जावास्क्रिप्ट, हम साथ चर घोषणा var कीवर्ड - वी ए आर. PHP डॉलर के हस्ताक्षर का इस्तेमाल किया, Zamyla पहले चर्चा के रूप में. आप एक साहचर्य घोषित करना चाहते हैं सरणी, हम पर परिचित वाक्यविन्यास देखना PHP के साथ दाएं. बाईं ओर, बजाय आप घुंघराले ब्रेसिज़ का उपयोग करें. और फिर अपनी चाबी बाईं तरफ हैं. तो फिर तुम एक आंतों. और फिर आप मूल्यों है आप चाहते हैं कि. तो यह आप PHP में यह कैसे करना है कि दूसरे के साथ सही पक्ष पर मिलो में शुरू होता है कि लाइन. और कहा कि तुम पर यह कैसे करना है अगर आप चाहते हैं जावास्क्रिप्ट में पक्ष छोड़ा हम एक वस्तु क्या कहते हैं. और जावास्क्रिप्ट में वस्तुओं रहे हैं सिर्फ साहचर्य arrays. तो तुम में, क्षेत्रों का उपयोग करना चाहते हैं PHP यदि आप इस ब्रैकेट वाक्यविन्यास का उपयोग करें. और इस तरह, आप पुन: असाइन कर सकते हैं लॉरेन को इस स्वामी क्षेत्र. खैर, जावास्क्रिप्ट में, अगर एक करना चाहते हैं आप कर सकते हैं, एक क्षेत्र तक पहुंचने और इसे बदलना डॉट वाक्यविन्यास का उपयोग करें. तुम भी ब्रैकेट सिंटैक्स का उपयोग कर सकते हैं. लेकिन आप का उपयोग नहीं कर सकते PHP में डॉट वाक्यविन्यास. यह काम नहीं करेगा. यह केवल PHP में काम करता है. और अंत में, बातें करने के लिए मुद्रित करने के लिए कंसोल, आप console.log, जो प्रयोग तुम लोग pset8 में एक बहुत का उपयोग करें. तुम्हें पता है कि console.log कर सकते हैं. आप में एक सरणी मुद्रित करना चाहते हैं पीएचपी, आप प्रिंट R उपयोग करने के लिए है. और सही पक्ष पर, तुम मैं हैश देखना वहाँ पर स्ट्रिंग संयोजन. किसी ने पहले पूछा. मैं जावास्क्रिप्ट में एक से अधिक उपयोग करें. मैं कुछ जोड़ना चाहते हैं PHP में, मैं डॉट का उपयोग करें. ये अलग हैं. आप PHP कोड लिख रहे हैं, एक से अधिक उपयोग नहीं करते. आप जावास्क्रिप्ट लिख रहे हैं कोड, एक डॉट लिख नहीं है. यह गलत होगा. और तुम दुखी हो जाएगा. तो वाक्यविन्यास मतभेद. , अपने वाक्यविन्यास पता है क्योंकि अगर आप के पास एक प्रश्न लिखने के लिए और आप सिंटैक्स का उपयोग गलत भाषा से, यह काम नहीं करेगा. और यह गलत होगा. तो चलो कुछ नियंत्रण के बारे में बात करते हैं आप का उपयोग कैसे, मतभेद प्रवाह उनमें से प्रत्येक में छोरों. Zamyla दाएं खत्म हो गया था. सही पक्ष पर सामग्री परिचित होना चाहिए. के बाईं ओर पर देखें. आप जावास्क्रिप्ट में n पाश के लिए उपयोग करते हैं, अपने पाश चर, वर वहाँ पर मैं, सरणी की चाबियाँ पर पाश. तो आप नाम, घर, और भूमिका देखते हैं. मैं मैं console.log, तो मैं मिल नाम, घर, और भूमिका. उन कुंजी हैं. जावास्क्रिप्ट में, एक foreach पाश में चला जाता है इस सरणी के मूल्यों पर. तो आप वे मैं दोनों कर रहे हैं नोटिस. लेकिन यहाँ PHP पक्ष पर, यह प्रिंट मिलो, CS50, और शुभंकर बाहर. उन PHP में मान रहे हैं. तो ये है कि इन दो अलग कैसे कर रहे हैं विभिन्न भाषाओं में. तो तुम एक foreach का उपयोग कर रहे हैं पाश, मान नहीं है कि यह आप कुंजी देता. आप n पाश के लिए एक का उपयोग कर रहे हैं, नहीं करते यह आप मान देता मान. यह अब तक समझ पड़ता है? अगली स्लाइड आपको दिखाने जा रही है आप में विपरीत का उपयोग कैसे कर सकते हैं उनमें से प्रत्येक. खैर, आप जावास्क्रिप्ट में कुंजी है और तुम, मूल्य बाहर करना चाहते हैं में आप सिर्फ सूचकांक उस के साथ सरणी. तो मैं की मिलो तुम क्या हो जाएगा आप चाहते हैं - मूल्यों. PHP में यह अलग वाक्यविन्यास है. आप वास्तव में यह जानना चाहते हैं, मुझे नहीं पता हम अभी तक यह आप के लिए दिखाया गया है. आप रुचि रखते हैं, तो आप उपयोग कर सकते हैं सही पर इस अतिरिक्त वाक्यविन्यास वास्तव में आप प्राप्त कर दूँगी कि ओर PHP में चाबियाँ आप प्रयोग कर रहे हैं जब एक foreach पाश. सामान्य ज्ञान की तो बस थोड़ा सा अगर आप रुचि रखते. तो यह है कि अभी प्रदर्शित करने के लिए है इन दो छोरों के बीच मतभेद. आप कर रहे हैं जब उन्हें मिश्रण नहीं एक प्रश्न प्रोग्रामिंग. इस बारे में कोई सवाल नहीं. कूल. ठीक है. जावास्क्रिप्ट वस्तुओं. मैं उनके बारे में बात की थी. वे साहचर्य arrays की तरह हो. मैं आप ध्यान दें करने के लिए करना चाहते हैं एक बात यहाँ है कि एक साहचर्य में एक मूल्य सरणी जावास्क्रिप्ट में कुछ भी हो सकता है. यह भी एक समारोह हो सकता है, वहाँ की तरह. मैं एक समारोह है कि एक चाबी का एक मूल्य है. और मुझे लगता है कि समारोह कॉल करना चाहते हैं, मैं सिर्फ छाल का उपयोग. और फिर मैं कोष्ठकों डाल उसके बाद. और वह काम करता है. तो कोई सवाल? नहीं? ठीक है. अच्छा. PHP तरह जावास्क्रिप्ट,, शिथिल लिखा गया है. इसका क्या मतलब है? यह प्रकार है. लेकिन अगर आप एक जावास्क्रिप्ट घोषित चर, तुम्हें वर मैं कहता हूँ. आप यह मत कहो. यही एक बात नहीं है. तुम बस इसे एक चर का कहना है. और फिर जावास्क्रिप्ट संभाल लेंगे आप के लिए हुड के तहत प्रकार. हम आज़ादी के बीच में बदल सकते हैं इस वजह प्रकार. इसलिए मैं एक संख्या के रूप में बाहर शुरू होता है इस मामले में. और फिर मैं एक स्ट्रिंग है. और मैं यह करने के लिए मैं जोड़ने. और मुझे लगता है कि मैं इसे वापस फिर. , कि पहली पंक्ति पर तो मैं संख्या है. दूसरी पंक्ति में, मैं अब एक हो जाता है मैं reassignment कर स्ट्रिंग के बाद. और यहाँ, मैं सिर्फ concatenating हूँ स्ट्रिंग पर उस नंबर. तो आप देखते हैं कि मैं एक था, भले ही पहले भाग में पूर्णांक, यह की तरह है के एक करने के लिए परिवर्तित किया जा रहा है जैसे स्ट्रिंग और फिर जोड़ा जा रहा है कि हैलो स्ट्रिंग पर. और इतना है कि मैं क्या मतलब है ढीले टाइपिंग द्वारा. यही कारण है कि आप बीच में परिवर्तित कि बहुत आसानी प्रकार. और यह चेतावनी फेंक नहीं है पर आप सी की तरह. इसलिए मैं अब हैलो शामिल स्ट्रिंग के लिए 123. अगला. हम भी स्वतंत्र रूप से तुलना कर सकते हैं प्रकार के बीच. तो तुम सिर्फ == का उपयोग करते हैं, बहुत ज्यादा पीएचपी, जावास्क्रिप्ट में की तरह एक ऐसी ही बात करता है. स्ट्रिंग 123 संख्या के रूप में ही है 123 आप डबल बराबरी का उपयोग करें. ट्रिपल बराबरी इस्तेमाल किया, यह भी यकीन है कि बनाना चाहता है प्रकार एक ही है. कि एक स्ट्रिंग है और वह यह है इसलिए क्योंकि वे दोनों कर रहे हैं, भले ही एक नंबर, 123, आप ट्रिपल उपयोग करते समय आप गलत मिलता है, के बराबर होती है. डबल मामला बराबर होती है में, आप सच मिल डबल बराबरी नहीं करता है क्योंकि प्रकार के बारे में परवाह है. ट्रिपल बराबरी प्रकार के बारे में परवाह है. प्रश्न? ठीक है. और जावास्क्रिप्ट के बारे में एक और बात है जब तक आप गुंजाइश वैश्विक की तरह है एक समारोह में. और यह एक ही काम करता है वास्तव में PHP में रास्ता. तो चलो इस उदाहरण के माध्यम से चलते हैं. मैं 999 तक मैं निर्धारित किया है. और फिर मैं पाश के लिए इस में जाने. इसलिए मैं के लिए इस में मैं बाहर मुद्रण कर रहा हूँ अगर पाश, मैं 0, 1, 2, 3, 4 की उम्मीद है. मैं मैं = 4 के लिए मिलता है. यह कम करने के लिए 5 अब मैं वेतन वृद्धि के लिए लूप के अंत. और फिर यह लूप के बाहर टूटता है, यह पूरा नहीं करता है, क्योंकि अब और हालत. आपको क्या लगता है कि अगले console.log बाहर प्रिंट? ताकि, यह सी में सी में क्या करना होगा क्योंकि तुम मैं बाहर वर की तरह है और आप एक तरह, एक पाश अंदर वर मैं है पाश के लिए, तो यह है कि इस तरह बना देता है यह scoped है कि दो मैं अलग हैं. जावास्क्रिप्ट में, यह सिर्फ होगा एक ही मैं के रूप में व्यवहार. कि मूल्य था, क्योंकि मैं 5 मिल यह लूप के बाहर से बाहर निकल जाने के बाद. तो उन मैं एक ही मैं कर रहे हैं. कि मतलब? खैर, यह से समझ में आता है एक जावास्क्रिप्ट दृष्टिकोण. लेकिन एक ही प्रतिमान नहीं करता वे सेल्सियस पर ले जाने के विभिन्न scoping नियम. हां. दर्शक: [सुनाई] [सुनाई] समारोह के बाहर? यूसुफ ONG: तो जो समारोह के बाहर? तो मैं बस एक दूसरे में मिल जाएगा. तो हम (मैं) foo कहते हैं. यह मैं foo में, वेतन वृद्धि गुजरता तो यह है, और यह लॉग करता है. तो यह 5 था. तो यह 6 बन जाता है. लेकिन क्या मैं के बारे में बात कर रहा हूँ है उस समारोह में कहा कि मैं. यह एक पैरामीटर है, यह है क्योंकि उस समारोह के लिए scoped. तो एक बार मैं वास्तव में उस से बाहर निकलना समारोह, यह अब जाना जा रहा है वापस पुराने मैं करने के लिए. यही कारण है कि मैं केवल scoped है क्योंकि यह एक समारोह में है. और हम गुंजाइश है और कार्य किया है. लेकिन हम बाहर गुंजाइश नहीं है जावास्क्रिप्ट में कार्यों की. कि मतलब? हां. प्रश्न. दर्शक: [सुनाई] में भी? यूसुफ ONG: तो हाँ. PHP में, यह बात की ही तरह है. वास्तव में एक मामूली सूक्ष्मता है. लेकिन मुझे तुम्हारे बारे में पूछ सकते हैं समीक्षा के बाद कि. तुम सच में पता करने की जरूरत नहीं है प्रश्नोत्तरी के लिए कि सूक्ष्मता. सभी intents और प्रयोजनों, के लिए की तरह चर, वैश्विक और पीएचपी, जब तक वे एक समारोह में एक ही कर रहे हैं जावास्क्रिप्ट में बात. हां. दर्शक: क्यों इस में अनुमति दी है जावास्क्रिप्ट और जहां कोई और नहीं? यूसुफ ONG: तो क्यों यह अनुमति दी है जावास्क्रिप्ट में और नहीं सी में? यह बस के साथ आया है जो कोई भी जावास्क्रिप्ट इस में ठीक था कि निर्णय लिया जावास्क्रिप्ट. तो यह सिर्फ एक प्रोग्रामिंग भाषा की तरह है हम कह सकते हैं कि के रूप में सम्मेलन. हां. दर्शक: तो क्यों किया यह 6-5 जाना? यूसुफ ONG: तो यह, 6-5 चला गया मैं foo में मैं पारित कर दिया है, जब कि क्योंकि foo के अंदर मैं अब, foo के लिए scoped है दायरे में कार्यों में मौजूद है क्योंकि जावास्क्रिप्ट. लेकिन एक बार मैं यहाँ से चले जाओ यह क्योंकि समारोह को scoped था, मैं कर रहा हूँ बस अंदर था कि नियमित रूप से मैं का उपयोग नियंत्रण के प्रवाह के बाकी. भावना करें? मैं पर स्थानांतरित कर सकते हैं? ठीक है. कूल. इस की स्वीकृति वस्तुओं है संदर्भ द्वारा पारित कर रहे हैं. आप पारित कैसे पता है जब तुम सकता है सी में एक सरणी वास्तव में सरणी संशोधित? यह जावास्क्रिप्ट में एक ही बात है. मैं इस मामले में, एक वस्तु से गुजारें, मैं इस catify समारोह में मिलो पारित कर दिया. मिलो बाहर शुरू होता है. उसका नाम मिलो केले है. मैं एक समारोह में उस वस्तु पारित यह एक वस्तु, एक साहचर्य है क्योंकि जावास्क्रिप्ट में सरणी. मैं एक कार्रवाई करते हैं उस समारोह में, यह होगा वास्तव में वस्तु बदल जाते हैं. तो यह केवल वस्तुओं के लिए कुछ नहीं होगा जावास्क्रिप्ट में, बस ऐसा होता है पसंद सी. तो मिलो के नाम के अंदर सरणियों के लिए वास्तव में अब बिल्ली बन जाएगा. कि मतलब? तो यह केवल वस्तुओं के लिए काम करता है. वस्तुएँ संदर्भ द्वारा पारित कर रहे हैं. हां. दर्शक: तो तुम कह रहे हो कि चर मैं के विपरीत. यूसुफ ONG: हाँ. जो चर मैं बस गया था एक नंबर, है ना? आप एक पारित जब यह सी में की तरह है एक पूर्णांक है, यह एक प्रतिलिपि बनाता है. और तुम एक सरणी के पास है, यह वास्तव में में वास्तविक सरणी में परिवर्तन सी. एक ही बात के साथ होता है इस मामले में JavaScript. ठीक है. और अगले, मिलो दुख की बात है क्योंकि वह अब एक बिल्ली है. उसके बाद वास्तव में मिलो था डॉक्टर के लिए कुछ यात्रा. तो कैसे हम जावास्क्रिप्ट का उपयोग करते हैं एक वेब पेज में? हम इसे शामिल कर सकते हैं. इस पट्टी टैग के साथ HTML कोड है. तो मैं वहाँ पट्टी टैग नहीं है. और फिर मैं कुछ जावास्क्रिप्ट डाल स्क्रिप्ट टैग के भीतर कोड. और फिर यह इस कार्यान्वित. मैं बस इसे इस तरह करते हैं, यह बात है इनलाइन जावास्क्रिप्ट कहा जाता है. यह गंदा की तरह है क्योंकि जावास्क्रिप्ट HTML में वास्तव में है. बहुत अच्छे ऐसा करने का एक बेहतर तरीका है,, एक में आपकी जावास्क्रिप्ट को लिखने के लिए है बाहरी फ़ाइल और फिर प्रदान एक स्रोत के साथ स्क्रिप्ट टैग. और यह कि जावास्क्रिप्ट फ़ाइल के लिए जाना जाएगा और जावास्क्रिप्ट कोड को पढ़ने के लिए कि बजाय फाइल. और इस तरह, आप का एक बहुत कुछ नहीं है अपने की शुरुआत में जावास्क्रिप्ट बनाता है जो HTML फ़ाइल, यह वास्तव में गन्दा. तुम बस कहीं और रख दिया. और फिर वह वहाँ से इसे पढ़ा होगा. कि समझ में आता है क्या? प्लेसमेंट मायने रखती है. इस विशेष मामले में, स्क्रिप्ट शरीर से पहले है. मुझे लगता है कि अमल तो, जब वहाँ अभी तक शरीर में कुछ भी नहीं है. शायद यह एक छोटा सा और कर देगा मैं यह अगले भाग को दिखाने जब भावना. इस मामले में, स्क्रिप्ट div के बाद आता है. इसलिए div वास्तव में प्रकट होता है पहले पेज पर. यहीं इस छोटे लाल घेरे में, आप पाठ प्रकट होता है देखना. और फिर चेतावनी को दिखाता है. पहले मामले में, क्योंकि स्क्रिप्ट div पहले था, चेतावनी पहले से पता चलता है. और फिर div के बाद ऊपर से पता चलता है आप बॉक्स को खारिज. इसलिए निष्पादन मायने रखती है. इसलिए हम इसे ध्यान में रखेंगे. यह महत्वपूर्ण होगा एक छोटा सा में. ठीक है. तो ठीक है, आप कैसे जब तक इंतजार करते हैं पूरे पृष्ठ आप पहले तो भरी हुई है कुछ कोड निष्पादित? हम इस एक छोटी सी में मिल जाएगा थोड़ा बाद में भी. लेकिन अभी इस नियुक्ति रखना जब हम के लिए मन में मामलों एक और स्लाइड के लिए आते हैं. तो क्या अब हम डोम को मिलता है. और डोम क्या है? आप HTML कोड को देखो तो, अगर यह सिर्फ है स्क्रीन पर पाठ का एक गुच्छा. तो कैसे जावास्क्रिप्ट कि जानती है इस एक HTML तत्व है? इसलिए हम कुछ स्मृति के लिए है इस का प्रतिनिधित्व हम हैं कि संरचना. और हम स्मृति में यह है कि जब भी जावास्क्रिप्ट में प्रतिनिधित्व, हम फोन डोम कि. और यह लोगों का निर्णय लिया है कि सिर्फ एक रास्ता है हम इस का प्रतिनिधित्व करना चाहिए कि के रूप में HTML संरचना. और इस डोम कैसी दिखती है? खैर, स्मृति प्रतिनिधित्व में, हम इस पाठ ले. और हम स्मृति में बारी प्रस्तुति. तो इस HTML है. इसलिए हम पहले पता है कि हर डोम वृक्ष एक दस्तावेज है. यह एक पेड़ की तरह दिखता है. और दस्तावेज़ एचटीएमएल शामिल टैग, वास्तव में सब कुछ अब इस के अंदर. एचटीएमएल टैग दो बच्चों की है. यह एक सिर है. कि सिर, आप खरोज पर लगता है कि वहाँ पर यह संरचित है कैसे करीब टैग के बीच, सिर एक बच्चा है. बच्चे शीर्षक है. बिल्कुल सही. अब, हम एक शरीर बच्चा है. और फिर उस शरीर एक है बच्चे परिवार कहा जाता है. और उस परिवार के तीन बच्चों की है - , सबसे पुराना मध्य, और सबसे कम उम्र के. तो आप एक चित्र आकर्षित करने के लिए पता होना चाहिए इस तरह से हम कैसे जब आप से पूछना हम दे जब एक चित्र आकर्षित करने के लिए आप बाईं तरफ एचटीएमएल. डोम वृक्ष का निर्माण करने के लिए पता है. और इन बातों के अंदर, बस वहाँ है मैं प्रतिनिधित्व किया है, जो कुछ पाठ, के रूप में छोटे बक्से. इस डोम वृक्ष संरचना पड़ता है भावना और डोम क्या है? तो पी के लिए क्या अर्थ होता है? यहाँ पर, पी वहाँ पर कि टैग में प्रतिनिधित्व करता है एक एचटीएमएल में पैरा टैग. तो आप यह देख सकते हैं. लेकिन यह सिर्फ कुछ है इसका मतलब कुछ पाठ के लिए अंतरिक्ष. और यह कुछ डिफ़ॉल्ट सीएसएस स्टाइल है, यह एक पैरा टैग है क्योंकि. लेकिन वास्तव में के बारे में चिंता मत करो वह हिस्सा बहुत ज्यादा. बस इसे एक प्लेसहोल्डर है पता कुछ पाठ के लिए. हां. प्रश्न? हां. दर्शक: तुम बस सीएसएस उल्लेख किया है. हैश परिवार और हैश वह सब सामान मूल रूप से है सीएसएस में आईडी का प्रतिनिधित्व करने वाले? यूसुफ ONG: हाँ, बिल्कुल. मैं क्या इन हैश को मिलेगा एक दूसरे में मतलब है. एंजेला सीएसएस खत्म हो गया था, जब वह सीएसएस चयनकर्ताओं के बारे में बात की थी. ये सीएसएस चयनकर्ताओं हैं कि वह बारे में बात कर रहा था. हाँ, रोब? आरओबी BOWDEN: मैं भी टिप्पणी करेंगे शीर्षक टैग के अंदर है कि डोम यह भी एक पाठ नोड है. यूसुफ ONG: ठीक है. , शीर्षक टैग के अंदर तो मैं कुछ पाठ डोम है. तो सच में, इस शीर्षक एक तरह होना चाहिए छोटे से बॉक्स के रूप में अच्छी तरह से इसे दूर आ रहा है. लेकिन यह वास्तव में कोई फर्क नहीं पड़ता इस मामले में बहुत ज्यादा. हम वास्तव में पाठ नोड्स के बारे में परवाह नहीं है, हम बहुत ज्यादा है, उन्हें फोन के रूप में. ठीक है, हम करते हैं. जाहिर है, हम करते हैं. और मैं ठीक कर देंगे कि जब मैं इसे फिर से अपलोड करें. कि मतलब? तो कैसे हम डोम के साथ काम करते हो? आप में डोम के साथ सौदा जब भी जावास्क्रिप्ट, दो चरण हैं. आप एक डोम तत्व का चयन करें. और फिर आप इसे करने के लिए काम करते हैं. तो इस मामले में, सूक्ष्म रूप में, मैं मध्य तत्व का चयन किया. और फिर सामान कर का एक उदाहरण यह करने के लिए पाठ को बदलने की जाएगी. यही कारण है कि बॉब हुआ करते थे. अब, क्या मैं इसे करने के लिए किया था मैं बदल गया था इस मामले में मिलो के लिए बॉब. तो कैसे हम वास्तव में यह क्या करते हो? हम चयन कैसे करते हो? और कैसे हम करने के लिए सामान कर रही है है बात एक बार हम इसे ले लिया है? वैसे, जिस तरह से तुम लोगों को यह सीख लिया है इस वर्ग में कुछ हम उपयोग कर रहा है jQuery कहा जाता है. तो jQuery क्या है? jQuery करता है एक पुस्तकालय है लिखने के लिए आसान जावास्क्रिप्ट. इसलिए किसी समय लिया और jQuery लिखा था. jQuery वास्तव में लिखा है जावास्क्रिप्ट में. और फिर वे हम अब, यह किया है क्योंकि कार्यों की एक पूरी गुच्छा है कि हम उस बनाने का उपयोग कर सकते हैं हमारे वास्तव में आसान रहता है. तो क्या कुछ कर रहे हैं यह बातें करता? यह आसान तत्वों का चयन करता है. यह HTML बदलते बनाता है, आसान वर्गों को जोड़ने. यह अजाक्स आसान बना देता है. हम एक दूसरे में मिल जाएगा. और यह सी पुस्तकालयों के अनुरूप है. तो तुम string.h शामिल आप strlen मिलता है. आप इन सब बातों के strcpy मिलता है. तुम jQuery शामिल करते हैं, तो आप अच्छा मिलता है परिवर्तन के तत्वों का चयन करने के तरीके बातें, वगैरह. आप अतिरिक्त कार्यक्षमता मिलता है जावास्क्रिप्ट आप देना नहीं है. तो jQuery जावास्क्रिप्ट नहीं है. jQuery में लिखा है कि एक पुस्तकालय है जावास्क्रिप्ट करता है कि जावास्क्रिप्ट लिखने के लिए आसान. तो jQuery एक प्रोग्रामिंग नहीं है भाषा. लेकिन जावास्क्रिप्ट है. बनाते हैं. सुनिश्चित करें कि आप सही अपने शब्दावली मिलता है. कोई सवाल? हां. एक सवाल है कि? ठीक है. तो आप कैसे jQuery का उपयोग करते हैं? ठीक है, तुम कुछ लिख रहे हैं जब आप एक शामिल जावास्क्रिप्ट कोड और jQuery आपकी फ़ाइल के शीर्ष पर एक के रूप में स्क्रिप्ट फ़ाइल, तुम डॉलर के हस्ताक्षर का उपयोग अब jQuery के लिए उपयोग हो लिए. और इस से अलग है PHP में डॉलर के हस्ताक्षर. यह एक ही प्रतीक तुम हो अपने कीबोर्ड पर टाइप करें. लेकिन वे बहुत अलग अलग बातें मतलब है. PHP में डॉलर के हस्ताक्षर इसका मतलब मैं एक चर घोषणा कैसे है. आप को शामिल किया है जब जावास्क्रिप्ट में jQuery, यह jQuery के लिए खड़ा है. तो मन में रखना है कि. तो कैसे हम डोम तत्वों का चयन हो सकता है? खैर, जब आप यह बदसूरत जावास्क्रिप्ट करना इस तरह, आप का उपयोग वैश्विक चर दस्तावेज़. और फिर आप आईडी परिवार द्वारा तत्व मिलता है. यह वास्तव में लंबे समय तक और Wordy है और न बहुत अच्छा. या फिर आप सभी तत्वों को प्राप्त कर सकते हैं कि एक पी टैग कर रहे हैं. जावास्क्रिप्ट में भी काम करता है. लेकिन हम वास्तव में कभी नहीं दिखाया आप वाक्यविन्यास बहुत ज्यादा. हम क्या दिखाया तुम jQuery था. वहाँ तो यह है कि पूरे चयनकर्ता कि बस हो जाता है जावास्क्रिप्ट में व्यक्त की गई थी यह बहुत अच्छा डॉलर के लिए सघन हैशटैग परिवार पर हस्ताक्षर. और $ पी, ऐसा है जहां सिर्फ. आप सभी पी टैग का चयन करना चाहते हैं एक परिवार के अंदर, हम एक अंतरिक्ष डाल दोनों के बीच. और अब, हम सभी पी मिल एक परिवार के अंदर टैग. और परिचित लग रही है? खैर, एंजेला के बारे में बात की थी सीएसएस चयनकर्ताओं. मुझे एक दूसरी दे. और इसलिए एक तत्व का चयन करने के क्रम में, आप तो बस आप के रूप में एक ही बात का उपयोग एक सीएसएस चयनकर्ता के साथ क्या होगा. आप सामने एक हैश रखा है इसके बारे में, यह आईडी के आधार पर चयन करता है. एक डॉट कक्षाओं से चयन करता है. आप बस बिना बात है, तो हैश या डॉट्स, यह उन टैग का चयन करता है. प्रश्न. हाँ? दर्शक: हम में डॉट का उपयोग करते हैं हमारे एचटीएमएल, jQuery कि नहीं है? यूसुफ ONG: हमारे HTML में डॉट एक जावास्क्रिप्ट बात है. यह एक jQuery बात नहीं है. तुम लोगों के साथ यह सीखा तरीका jQuery. HTML का उपयोग करने के लिए है. और फिर आप इसे पारित कर दिया जो कुछ भी एचटीएमएल होने जा रहा है. तो मैं बस में है कि मिल जाएगा वास्तव में एक दूसरा. तो कैसे हम तत्व के लिए सामान नहीं है एक बार हम यह चयन किया है? तो इस बात का एक उदाहरण है एक तत्व का चयन. तो अब, हम यह करने के लिए सामान करना चाहते हैं. तो इस मामले में, मुझे वापस जाओ पिछली स्लाइड पर. यह पहले बॉब था. और मुझे लगता है कि बदलना चाहते हैं मिलो करने के लिए HTML के अंदर. तो मैं HTML समारोह फोन तत्व से. HTML कि समारोह है तत्व की एक विधि. और फिर मैं यह क्या दे मैं HTML होना चाहते हैं. और यह सिर्फ के अंदर क्या बदलता है मैं दे साथ जो कुछ भी है कि टैग. हां. प्रश्न? दर्शक: हैशटैग प्रयोग किया जाता है केवल jQuery के लिए. [सुनाई] हम उस का उपयोग नहीं होता. यूसुफ ONG: हाँ, बिल्कुल. लेकिन बहुत ज्यादा चिंता मत करो के बारे में शुद्ध जावास्क्रिप्ट. मैं सिर्फ तुम लोगों पर ध्यान केंद्रित करना चाहते हैं कि कैसे आप , jQuery के साथ ऐसा होता है क्योंकि कि महत्वपूर्ण होने जा रहा है प्रश्नोत्तरी पर हिस्सा. ठीक है. बिल्कुल सही. तो तुम उस हैशटैग देखते हैं, तो यह है कि साथ तत्व का चयन करने के लिए संगत ऐसा इसलिए है क्योंकि हैशटैग का आईडी बीच. हैशटैग आईडी मतलब है. और इस तत्व बीच की एक पहचान है. इसलिए कि हम चयन तत्व है. दर्शक: [सुनाई]. डॉलर के हस्ताक्षर हैशटैग [सुनाई]? यूसुफ ONG: तो कोई. सवाल आप उपयोग कर सकते है. मूल्य. और. मूल्य केवल तत्वों पर काम करता है आदानों कि कर रहे हैं. JQuery में, यह होगा . वैल, नहीं. मूल्य. तो मैं एक छोटा सा उदाहरण के लिए मिल जाएगा कि संयोजन में यह सब दर्शाता एक दूसरे में. लेकिन मैं यह एक छोटा सा टुकड़ा में कार्य करता है लगता है अब तक लोगों को समझ में आता है. एचटीएमएल बदलना चाहते हैं, एचटीएमएल विधि कहते हैं. हां. दर्शक: आप व्याख्या कर सकते हैं फिर विधि? यूसुफ ONG: तो एक विधि है सिर्फ एक इस में से एक है कि समारोह, मामला, इन डोम तत्वों में से एक, आपको मैं देख रहा हूँ क्योंकि पहला तत्व का चयन किया. दरअसल, मुझे माउस का उपयोग करते हैं. मैं पहले तत्व का चयन किया. और फिर मैं इस HTML बुलाया यह था कि समारोह. और इस समारोह के अंतर्गत आता है क्योंकि इस बात को, हम एक विधि कहते हैं. यही कारण है कि इसके लिए सिर्फ एक काल्पनिक नाम है. फिर से कहो. इसलिए हम चयनित, याद अब तत्व. और हम के अंदर रख दिया गया है तत्व चर. सही? इसलिए हम पर HTML बदलना चाहते हैं अंदर, यह आप, पहले बॉब था क्योंकि मिलो को उस पाठ को बदलना चाहते हैं. इसलिए हमने HTML कहते हैं. और हम यह बताना क्या अंदर एचटीएमएल उस तत्व अब होना चाहिए. और इसलिए यह मिलो करने के लिए यह परिवर्तन मैं यह मिलो दे दी है. दर्शक: तो वे एक साथ काम कर रहे हैं. [सुनाई] यूसुफ ONG: हाँ, हाँ. वे एक साथ काम कर रहे हैं. तो उनमें से एक का चयन करता है तत्व पहले. और दूसरा एक करता है यह करने के लिए कुछ. हां. दर्शक: [सुनाई]. इस विधि एचटीएमएल में से अलग है आप वास्तविक बराबर विधि है. यूसुफ ONG: हाँ. यह एक अलग तरीका है. यह एक अलग तरीका है. और हम बस एक दूसरे में कवर कर सकते हैं हम एक उदाहरण के लिए मिलता है. मुझे यकीन है कि हम तेजी लाने बनाना चाहते हम समय से बाहर चल रहे हैं. लेकिन अब हम समय के साथ जिस तरह से चलाने की है. ठीक है. कूल. आप एक वर्ग को जोड़ने के लिए चाहते हैं, तो वहाँ यह भी एक ऐड वर्ग विधि. यह क्या है की सिर्फ एक उदाहरण है आप jQuery के साथ कर सकते हैं. वह सिर्फ एक वर्ग के लिए कहते हैं. आप इसे निकालना चाहते हैं, आप निकालना कॉल कर सकते हैं. यही कारण है कि आप कर सकते हैं बस एक और बात है. आप कर सकते हैं की इतनी अधिक उदाहरण हैं. तो मैं बस में डाल सकते हैं इस तरह से शीर्ष? सबसे कम उम्र हटा दें. मैं बस पर कि जावास्क्रिप्ट निष्पादित मेरी फाइल के ऊपर, यह काम करेगा? ठीक है. बीच अभी तक अस्तित्व में नहीं है. तो यह काम करने के लिए नहीं जा रहा है. निष्पादन के आदेश. यह पहली बार शीर्ष पर चला जाता है. क्या? दर्शक: सबसे कम उम्र अभी तक अस्तित्व में नहीं है? यूसुफ ONG: हाँ. सबसे कम उम्र अभी तक मौजूद नहीं है. बिल्कुल सही. दर्शक: आप बीच कहा. यूसुफ ONG: क्षमा करें. सबसे कम उम्र अभी तक मौजूद नहीं है. और दूसरी बात यह है कि मैं नहीं किया है jQuery शामिल स्क्रिप्ट स्रोत पूछने फ़ाइल. तो यह है कि काम करने के लिए नहीं जा रहा है. असल में, मैं में ऐसा नहीं था कि है जो अगली स्लाइड, या तो तय है कि अपेक्षा की. लेकिन हम यह कर रास्ता जावास्क्रिप्ट है घटना प्रेरित है. तो हम क्या हम एक घटना का उपयोग है ऐसा करने के लिए हैंडलर. और इसलिए मैं दस्तावेज़ का चयन पहला सेट. मैं दस्तावेज़ है, तो ठीक कहते हैं, तैयार, मुझे एक समारोह चलाते हैं. तो यह है कि सभी कि वाक्यविन्यास साधन है. मैं दस्तावेज़ का चयन किया. अब, जब दस्तावेज़ है तैयार, समारोह चलाते हैं. और इसलिए यहाँ पर दस्तावेज़ है जब सभी HTML है, जिसका मतलब है तैयार भरी हुई, तो मैं इस समारोह को चलाने कि उस तत्व को हटा. और तो अब, मैं इस समारोह चलाते समय मैं तैयार में पारित कर दिया है कि, मैं हूँ गारंटी है कि पर सभी HTML पेज पहले से मौजूद रहा है. हां. प्रश्न? दर्शक: घटना कीवर्ड क्या है समारोह के भीतर? यूसुफ ONG: तो में उस घटना कीवर्ड समारोह सिर्फ एक पैरामीटर है कि समारोह के लिए पारित हो जाता है किसी भी घटना के लिए. ऐसा नहीं है कि सिर्फ कुछ है तुम मुक्त करने के लिए मिलता है. आप में महत्वपूर्ण हैंडलर का उपयोग कर रहे हैं pset8, कि घटना के लिए, आपको बता सकता है उदाहरण के लिए, जो महत्वपूर्ण है कि आप पर दबा दिया. इस मामले में, एक तैयार घटना के लिए, यह वास्तव में सुपर उपयोगी नहीं है. लेकिन एक चाबी नीचे घटना के लिए, यह अधिक है उपयोगी, आप जानते हैं, क्योंकि जो आप कुंजी तक पहुँचने से दबाया कुंजी उस घटना बंद वस्तु कोड. सही? कि मतलब? ठीक है. हां. प्रश्न? दर्शक: तो तुम डाल सकते हैं नीचे स्क्रिप्ट टैग कम? यूसुफ ONG: तो हाँ. आप स्क्रिप्ट डाल सकता है नीचे कम से टैग. लेकिन तब यह सिर्फ सच में गंदा हो जाता है. और हम सब को केंद्रीकृत करने की तरह एक जगह में हमारे कोड की. और यह हमें ऐसा करने की अनुमति देगा. याद रखें कि पहले मैं एक अच्छे कहा कि वहाँ तत्व हैं कि यह सुनिश्चित करने के लिए रास्ता आप कोड लागू करने से पहले पेज पर? और यह सिर्फ एक अच्छा तरीका है आपको लगता है कि पूरा होगा. दर्शक: [सुनाई]. यूसुफ ONG: हाँ. आप अभी भी ठीक है, होगा? याद है, क्योंकि आप शामिल पृष्ठ के शीर्ष पर फ़ाइल. तो यह पहले से पहले निष्पादित करने के लिए जा रहा है आप पृष्ठ के नीचे करने के लिए मिलता है. ठीक है. तो आप भी एक अलग जोड़ सकते हैं ईवेंट हैंडलर के प्रकार. यह एक बस क्लिक्स प्रक्रियाओं. मैं तो, सबसे कम उम्र पर क्लिक करते हैं यह एक चेतावनी के साथ पॉप जाएगा. यह सिर्फ एक अलग है घटना के प्रकार. तैयार घटना का विरोध करने के रूप में, आप अब आप प्राप्त जब क्लिक करें घटना का उपयोग एक तत्व पर क्लिक करता है. और हां, इस मामले में, क्लिक करें याद हैंडलर कम उम्र से जुड़ा हुआ है. इसलिए जब यह तभी होता है मैं सबसे कम उम्र पर क्लिक करें. और एक दूसरे को, तैयार घटना में दस्तावेज़ से जुड़ा था. तो यह दस्तावेज़ के लिए इंतजार कर रहा है तैयार होने के लिए. भावना करें? मैं मैं पर स्थानांतरित कर सकते हैं. हां. प्रश्न? दर्शक: [सुनाई]. इस मामले में आप [सुनाई] का उपयोग करें. यूसुफ ONG: ओह, हाँ, क्योंकि इस में मामला है, मैं सबसे कम उम्र के लिए इंतज़ार करना होगा पहले स्क्रीन पर प्रदर्शित करने के तत्व मैं एक क्लिक हेन्डलर संलग्न कर सकते हैं पहले यह, जो मैं अंदर डाल क्यों है एक दस्तावेज़ तैयार की. ठीक है. और अगले, तो इस बात का एक बड़ा उदाहरण है आप सब कुछ गठबंधन होगा कैसे. यह सिर्फ एक फार्म का सत्यापन उदाहरण है आप व्याख्यान में देखा है. तो यह रूप में कदम से कदम उठाना आप इस माध्यम से जाना. और यह पूरी तरह से ठीक हो जाएगा. बस ऊपर से नीचे तक इसे पढ़ा. मैं नीचे एक रूप है. दस्तावेज़ तैयार है, मैं एक देते हैं ऐसा है कि फार्म के लिए हैंडलर प्रस्तुत मैं फार्म जमा करते हैं, तो मैं मान प्राप्त उन निवेशों में से प्रत्येक के अंदर. यह खाली है और अगर मैं देखता. यह रिक्त है, तो मैं वापसी झूठी क्योंकि मैं फार्म जमा नहीं करना चाहते, फार्म गलत है क्योंकि. पासवर्ड रिक्त है या यह कम है तो आठ वर्णों से, मैं प्रस्तुत नहीं है फार्म, वह भी गलत है क्योंकि. और बदले झूठे बस रोकता है प्रस्तुत करने और से फार्म एक नया पृष्ठ के लिए जा रहा. और उम्मीद है, यह समझ में आता है. मैं आप लोगों के माध्यम से चलना चाहिए लगता है अपने दम पर कदम से इस कोड कदम. और आप को चुनें जो समझ में एक बार तत्वों और इसे करने के लिए सामान करना वास्तव में यह कर देगा, जरूरत पर जोर देता आप के लिए भावना का एक बहुत. हाँ? दर्शक: क्या करता है नाम = उपयोगकर्ता नाम क्या मतलब है? यूसुफ ONG: तो नाम = यूज़रनेम और नाम = पासवर्ड बस पर देखने का मतलब जो कुछ की विशेषता आप का चयन कर रहे हैं. और फिर उस मैच है. इसलिए हम पंजीकरण में चलते हैं. और फिर हम सभी सूचनाओं को देखो और पंजीकरण. और फिर हम एक जहां नाम लेने विशेषता उपयोगकर्ता नाम के बराबर है. इसलिए कि पहले चयनकर्ता केवल चयन उपयोगकर्ता नाम इनपुट. और वह दूसरे चयनकर्ता केवल चयन करता है उन है एक, क्योंकि पासवर्ड उनके नाम विशेषताओं के रूप में सेट क्या वे होना चाहिए रहे हैं. प्रश्न? दर्शक: प्रस्तुत करने पर, कैसे करता है नीचे हिस्से शीर्ष भाग को हल? यूसुफ ONG: तो है कि क्योंकि ईवेंट हैंडलर की. तो हम एक प्रस्तुत घटना के लिए प्रतीक्षा कर रहे हैं उस प्रपत्र से निकाल दिया जाता है. और वह प्रस्तुत है वह सब है. क्यों मैं वहाँ ऊपर प्रस्तुत कहते हैं? यह फार्म प्रस्तुत है, कहते हैं, मैं एक प्रस्तुत घटना मिलता है. तो मुझे सिर्फ इतना है कि अवरोधन जाने और तो बजाय इस कोड को चलाने. हाँ? दर्शक: क्यों तुम्हें क्या ज़रूरत है समारोह घटना है? क्यों सिर्फ [सुनाई] तुम नहीं कर सकते? यूसुफ ONG: जावास्क्रिप्ट में, तुम क्योंकि कार्यों की घोषणा करनी है. यही कारण है कि यह काम करता है बस कैसे जावास्क्रिप्ट में. आप यह जा रहा है कहने के लिए है एक समारोह को चलाने के लिए. तो अगर आप कर रहे हैं कि यह कह रहे हैं यहां एक समारोह उम्मीद के बजाय बस घुंघराले ब्रेसिज़. दर्शक: और समारोह इस प्रकार है जो कुछ भी है? यूसुफ ONG: हाँ. समारोह के अंदर जो कुछ भी है घुंघराले ब्रेसिज़ के बाद उस समारोह कीवर्ड. हाँ? दर्शक: [सुनाई]. यूसुफ ONG: के लिए सबमिट करें? दर्शक: नहीं, समारोह के लिए घटना के बिना. यूसुफ ONG: हाँ. घटना के बिना तो, आपको लगता है कि हो सकता है. आप घटना की जरूरत नहीं है, तो आप बस इसे छोड़ सकते हैं. लेकिन यदि आप करते हैं, तो आप बस वहाँ रखा. हां. त्वरित सवाल? दर्शक: [सुनाई]. यूसुफ ONG: हाँ. तुम क्या करने की जरूरत है, क्योंकि document.ready अभी सभी के लिए इंतजार करना कहते हैं पृष्ठ पर HTML पहले लोड करने के लिए. और आम तौर पर, आप अपने तत्वों चाहते हैं आप किसी भी कोड को चलाने से पहले स्थान पर. ठीक है. हम अजाक्स को पाने के लिए है. हम ज्यादा समय नहीं है. तो भला और बुरा. जावास्क्रिप्ट आसान कोशिश है jQuery के साथ लिखें. लेकिन jQuery धीमी की तरह है. PHP सी की तुलना में धीमी है जैसे यह है यह व्याख्या की है क्योंकि. सर्वर की तुलना में थोड़ा धीमी है जावास्क्रिप्ट, इसके बारे में एक बहुत कुछ करता है क्योंकि हुड के नीचे बातें. आप का उपयोग कर रहे हैं और अगर ऐसा है, तो यह बात है की तुलना में सिर्फ एक छोटा सा धीमी जावास्क्रिप्ट, भले ही यह आप अच्छा लालित्य देता है. और अंत में, अजाक्स. अब तक अजाक्स के साथ, आप अजाक्स नहीं देखा है अभी तक pset7 के मामले में, क्योंकि जब आप ऐसा करेंगे, आप सबमिट बोली के लिए एक फार्म. यह एक नया पेज लोड करता है. तो आप इस बड़े सफेद फ्लैश मिल पेज पर है कि जबकि दूसरे पेज लोड, सही? यह वास्तव में अच्छा होगा कि आप अगर इस फ्लैश नहीं था. फेसबुक की तरह, अगर आप अभी तक स्क्रॉल नीचे, यह नई सामग्री के लिए कहते हैं पूरे पृष्ठ ताज़ा बिना. तो इस तरह से कुछ अच्छा होगा. यह जावा स्क्रिप्ट कोड है बाईं ओर. तुम्हें पता है कि इनपुट के अंदर है क्या मिलता है. आप याहू से स्टॉक की जानकारी मिल और फिर आप एक बड़ा स्ट्रिंग बनाने कि ठीक है, यह मैं चाहता हूँ कि संदेश है, कहते हैं स्क्रीन पर दिखाने के लिए. और फिर तुम अंदर उस संदेश दिया हो जाता है कि कुछ HTML तत्व की स्क्रीन पर प्रदर्शित होता है. इसलिए कि यहां क्या हो रहा है वह सब है. तो बुनियादी तौर पर, यह सब है क्योंकि जावास्क्रिप्ट और आप को चलाने की जरूरत नहीं है अब और पीएचपी, यह सुनिश्चित कर देगा पृष्ठ ताज़ा नहीं करता. तो यह सिर्फ एक अमूर्त विचार है मैं अब के लिए यहाँ कह रहा हूँ कि. अमूर्त विचार है कि आप इसे करते हैं जावास्क्रिप्ट में सभी, तुम नहीं है एक पृष्ठ ताज़ा. लेकिन वास्तव में आप कैसे यह क्या करते हो? खैर, असल में, के बारे में बात करते हैं इस पहले के साथ एक समस्या है. एक समस्या यह है कि जावास्क्रिप्ट में है निष्पादन तुल्यकालिक है. तो आप एक के लिए इंतज़ार करना होगा आप से पहले खत्म करने के लिए लाइन अगली पंक्ति पर अमल. और क्या मैं याहू में खत्म हो जा रहा हूँ, और अपने सर्वर वास्तव में धीमी गति से कर रहे हैं, और यह करने के लिए उन्हें तीन सेकंड लेता है कि स्टॉक की जानकारी मुझे वापस दे? अगर मुझे लगता है कि कीमत लाइन मारा यह द्वारा के रूप में निष्पादन, तुल्यकालिक है Default, क्या यह सिर्फ करने के लिए जा रहा है अपने ब्राउज़र के लिए स्टाल जा रहा है तीन सेकंड. और अगर आप ऐसा करने में सक्षम होने के लिए नहीं जा रहे हैं कुछ भी यह है कि डेटा हो जाता है. यह जमे हुए किया जा रहा है. और यह बुरी बात है. आप एक उपयोगकर्ता नहीं करना चाहती एक जमे हुए वेब पेज है. सही? वह सिर्फ बुरा है. हर कोई इससे सहमत हैं? आप फेसबुक और यह ब्राउज़ कर रहे हैं जमा देता है और आप, आप कुछ नहीं कर सकते वास्तव में निराश हो जाओ. तो समाधान हम कुछ करना है अतुल्यकालिक बजाय. तो यह सब अतुल्यकालिक बात कहते हैं , मैं यह पूछने के लिए जा रहा हूँ है कुछ डेटा के लिए यूआरएल. और फिर मैं जा रहा रखने के लिए जा रहा हूँ. मैं बस को क्रियान्वित रखने के लिए जा रहा हूँ जो कुछ भी है कि बाद किया गया है कि कोड. और फिर उस डेटा तैयार है, जब भी तो मैं यह कार्रवाई करेंगे. यह बात कह रहा है सब है. दर्शक: अजाक्स सिर्फ बनाता है कोड अतुल्यकालिक? यूसुफ ONG: यह एक अतुल्यकालिक है दिलकश डेटा का तरीका. तो अजाक्स के बारे में पहले बात यह मेरे डेटा प्राप्त करने देता है एक बाहरी वेबसाइट से. और दूसरी बात यह है कि यह सुनिश्चित करता है मैं कर रहा हूँ, जबकि मेरे पेज स्टाल नहीं करता उस डेटा दिलकश. यह बात की अतुल्यकालिक हिस्सा है. यह कहीं और बंद हो जाता है, क्योंकि मैं कहता हूँ क्योंकि मैं समय पर जा रहा रखने यह, कि डेटा दिलकश है कि यह अतुल्यकालिक बनाता है. मैं निष्पादित कर रखना. इसलिए कि अतुल्यकालिक रखना मन में विचार. और मैं तुम्हें दिखाता हूँ क्या फर्क है. तुल्यकालिक संस्करण बाईं तरफ है. अतुल्यकालिक संस्करण सही पक्ष पर है. देखने के लिए नंबरों को देखो जो कदम के अनुरूप क्या प्रत्येक पंक्ति में कार्यान्वित. वहाँ पर, चेतावनी पहले से पता चलता है. क्योंकि याहू से स्टॉक की जानकारी हो रही है तीन सेकंड लेता है, यह स्टालों तीन सेकंड के लिए. और फिर यह कीमत अलर्ट उन तीन सेकंड के बाद. तो अब, कि चेतावनी शो उस समय ऊपर - अंदर तीन सेकंड और फिर यह है कि उसके बाद से सचेतक हैं. तो यह सिर्फ कदम से कदम चला जाता है. यह क्या तुम लोगों की तरह है , सही स्वीकार करेंगे? अतुल्यकालिक निष्पादन के साथ, आप पहले सचेत. तो फिर आप इस URL के लिए रवाना हो जाओ. और तुम मैं जा रहा हूँ, कहते हैं सिर्फ डेटा के लिए पूछना. और फिर मैं जा रहा हूँ बाद में यह प्रक्रिया. इसलिए इसे तुरंत कार्यान्वित मुझे लगता है कि बनाने के बाद अगली पंक्ति अतुल्यकालिक अनुरोध. तो एक 0.001 सेकंड, आप सतर्क हाय देखते हैं. उस समारोह, चेतावनी अलविदा निष्पादित करें. और मैं एक वादा किया था कि क्योंकि मैं , बाद में डेटा की प्रक्रिया क्या होगी उस डेटा वापस आता है जब होता है तीन सेकंड के बाद, तो मैं चला कि मैं वहाँ है कि समारोह. हाँ? दर्शक: आपके द्वारा निर्दिष्ट या सका अजाक्स का अर्थ स्पष्ट क्या? यूसुफ ONG: तो अजाक्स एक तरीका है कि अगर मैं मैं एक वेबसाइट पर कर रहा हूँ और मैं जब डेटा की जरूरत फिर, पेज को ताज़ा करने के लिए नहीं करना चाहती मैं अजाक्स नामक इस तकनीक का उपयोग करें. यह अनिवार्य रूप से बस का अर्थ है, लाने जाना एक अन्य वेबसाइट से डेटा. और वह सिर्फ एक तरह से इसे करते हैं अपने वेब पेज स्टाल नहीं है. दर्शक: तो है कि एक अंतर्निहित है जावास्क्रिप्ट या jQuery का हिस्सा है? यूसुफ ONG: तो किसी को ऐसा करने के लिए एक तरह से लिखा यह एक लंबे समय से पहले जावास्क्रिप्ट में. एक बिंदु पर, यह मौजूद नहीं था. और इसलिए किसी को इस तकनीक का आविष्कार लोगों को इस डेटा का अनुरोध करने के लिए अनुमति देने के लिए इस फैशन में. और वे कुछ सामान लिखा आप के लिए यह करने के लिए. सर्वर सिर्फ आप इस देता है यह करने के लिए बहुत अच्छा तरीका इस $ के साथ. समारोह मिलता है. सवाल? मैं के बारे में सवालों के जवाब कर सकते हैं अजाक्स बाद में भी. मैं यहाँ हो जाएगा. तो यह हमारे बिना डेटा लाने चलो पृष्ठ ताज़ा. और यह हम में यह करते हैं एक अतुल्यकालिक तरीका है कि पेज स्थिर नहीं है. बहुत लंबा है, नहीं पढ़ा था कि विवरण आप के लिए बहुत लंबा था. तो अंत में, क्रॉस साइट स्क्रिप्टिंग हमलों. हम Zamyla साथ यह देखा. अपने डेटाबेस में किसी को यह नाम दिया है, इस स्क्रिप्ट टैग, और मैं जो मेरे पृष्ठ पर कुछ कोड है कि प्रिंट लोगों की एक पंक्ति में नाम, या मेरे पास बाहर सम्मिलित करता है कि कुछ जावास्क्रिप्ट कोड पेज में इस नाम, क्या एचटीएमएल का उत्पादन हो जाता है? खैर, मैं HTML टैग बाहर प्रिंट. मैं इन सभी टैग बाहर प्रिंट. मैं मैं मुद्रण कर रहा हूँ जहाँ हिस्सा करने के लिए अपने दोस्तों के साथ बाहर. मैं लॉरेन बाहर प्रिंट. यह मिलो बाहर प्रिंट. और तब डेटाबेस में मेरा नाम स्क्रिप्ट पोस्ट है unflattering Facebook स्थिति. मैं पृष्ठ में डाला क्योंकि यह जावास्क्रिप्ट, की तरह लग रहा है, क्योंकि जब इस पृष्ठ उपयोगकर्ता के लिए भेजा जाता है, यह जावास्क्रिप्ट के रूप में मार डाला जाता है. और तो यह है कि हम एक कॉल क्या है क्रॉस साइट स्क्रिप्टिंग हमले. किसी में दुर्भावनापूर्ण जानकारी डालता है के अनुरूप सकता है कि अपने डेटाबेस कुछ अतिरिक्त स्ट्रिंग या कुछ जावास्क्रिप्ट स्ट्रिंग. और यह करने के लिए बाहर मुद्रित हो जाता है जब इस फैशन में पेज, तो क्या होता है बुरा कोड मार डाला जाता है मैं इरादा नहीं था कि इसे क्रियान्वित करने के लिए. और यह सब एक क्रॉस साइट है पटकथा हमला है. और आप के आसपास पाने के रास्ते Zamyla कहा की तरह यह है. तुम बस में बातें लपेट एचटीएमएल विशेष घर का काम. और इस HTML विशेष वर्ण एक PHP है इस तरह नहीं कर पाएगा कि समारोह आप के लिए हो रहा से बात की आप एक दुर्भावनापूर्ण है अगर अपने डेटाबेस में स्ट्रिंग. यदि ऐसा नहीं होता तो यह है कि यह सिर्फ यह पलायन HTML के रूप में व्याख्या हो. यह थोड़ा कोष्ठक बदलता है हम संस्थाओं क्या कॉल के साथ. और हम भी व्याख्यान में यह खत्म हो गया था. तो मैं तुम लोगों को होना चाहिए उस पर एक अच्छी समझ. प्रश्न? हां. दर्शक: तो कैसे होगा [सुनाई]? यूसुफ ONG: फिर से कहो. दर्शक: निगरानी कैसे होगा - यूसुफ ONG: ठीक है. तो आप कहते हैं कि कुछ है, जब मैं अपने नाम में, टाइप करें. मैं सिर्फ इतना है कि क्षेत्र में टाइप करें, मेरा नाम है stript पोस्ट unflattering फेसबुक स्थिति करीब स्क्रिप्ट टैग. और वह बस में डाल दिया जाता है डेटाबेस, मैं नहीं कह सकता, क्योंकि किसी को दुनिया में एक नाम नहीं है एक बाईं इसमें तीर या साथ यह शब्द स्क्रिप्ट. यह वास्तव में मतलब नहीं है. तो मैं सिर्फ यह सुनिश्चित करना है कि मैं मैं यह मुद्रित करने से पहले सामान स्वच्छ बनाना पेज के लिए बाहर. दर्शक: तो एचटीएमएल विशेष कार्ड स्क्रिप्ट टैग रोकता है? यूसुफ ONG: हाँ. तो यह स्क्रिप्ट टैग नहीं रोकता है. यह सिर्फ यकीन है कि बनाता है स्क्रिप्ट टैग नहीं मिलता HTML या के रूप में व्याख्या - हाँ. यह बस के रूप में क्या आता है यह वास्तव में है. ठीक है. इसलिए कि प्रश्नोत्तरी समीक्षा की गई. कूल. [वाहवाही]