[Powered by Google Translate] [অনুচ্ছেদ 8 - আরো আরামদায়ক] [Rob Bowden - হার্ভার্ড বিশ্ববিদ্যালয়] [এটি CS50. - CS50.TV] এই সপ্তাহে অধ্যায় নোট প্রশংসনীয় ছোট হতে যাচ্ছে, তাই আমি ঠিক বলছেন রাখা যাচ্ছে না, আপনি না যাও প্রশ্ন জিজ্ঞাসা রাখা যাচ্ছে, এবং আমরা যতটা সম্ভব পূরণ হিসাবে অনেক সময় আপ করার চেষ্টা করব. মানুষ অনেক মনে করেন যে এই pset অগত্যা কঠিন হয় না, কিন্তু খুব দীর্ঘ. pset বৈশিষ্ট নিজেই একটি ঘন্টা পড়া লাগে. আমরা আপনাকে এসকিউএল অনেক সম্ভবত আপনি ব্যবহার করতে দিতে পারে. আমরা এটা অনেকটা করতে পারবেন, তাই খুব খারাপ হবে না. শুরু করেনি কেউ বা সমাপ্ত? এটা শেষ pset. ওহ, আমার ঈশ্বর. সাধারণত একটি জাভাস্ক্রিপ্ট এক এই পরে আছে, কিন্তু ক্যালেন্ডারে পরিবর্তন জিনিস সবকিছু 1 সপ্তাহ খাটো করে তোলে, এবং আমরা আর একটি জাভাস্ক্রিপ্ট pset আছে. আমি যে কিভাবে প্রভাবিত করে কিনা জাভাস্ক্রিপ্ট পরীক্ষা উপস্থিত হবে না বা 1 ক্যুইজ. আমি কল্পনা করে কিছু ভালো আপনাকে জাভাস্ক্রিপ্ট সম্পর্কে উচ্চ পর্যায়ের জিনিস জানা প্রয়োজন হবে, কিন্তু আমার সন্দেহ হয় আমরা ঠিক দিতে সোজা জাভাস্ক্রিপ্ট কোড করতে চাই যেহেতু আপনি একটি pset ছিল তা না. কিন্তু যে ব্যঙ্গ পর্যালোচনার জন্য স্টাফ আগামী সপ্তাহে হবে. প্রশ্নের ধারা. এই উপাদান অনেক হয় কিছুটা দুর্বল worded, কিন্তু আমরা কেন আলোচনা করব. সি ভিন্ন, পিএইচপি হল একটি "পরিবর্তনশীল-টাইপ" ভাষা. এর মানে কি, আপনাকে জিজ্ঞাসা? আচ্ছা, বলুন বিদায় যারা টুকিটাকি কাজ, float, int, এবং অন্যান্য কীওয়ার্ড সমস্ত আপনাকে ব্যবহার করতে হবে যখন ভেরিয়েবল এবং সি ইন ফাংশান উপস্থিত করা প্রকাশক পিএইচপি, একটি পরিবর্তনশীল এর টাইপ মান যে বর্তমানে এটি হোল্ডিং এর দ্বারা নির্ধারিত হয়. তাই আগে আমরা একটি ফাইল নামক dynamic.php এই কোডটি টাইপ করুন, পিএইচপি পরিবর্তনশীল টাইপ করা হয়. এটা সত্য. আমি যে তার মানে আমরা গৃহস্থালি, float করছি বিদায় বলছে, int-সঙ্গে অসম্মত হন, এবং অন্যান্য কীওয়ার্ড. পরিবর্তনশীল টাইপ করা এবং সঠিক বিকল্প মধ্যে পার্থক্য, যা statically হয় টাইপ করা, টাইপ করা হয় যে পরিবর্তনশীল, আপনার টাইপ পরীক্ষণ এবং পণ্যদ্রব্য সব এরকম চালানোর সময়, যখন statically টাইপ এটা কম্পাইল সময়ে ঘটবে. শব্দ সাধারণভাবে স্ট্যাটিক যাও কম্পাইল সময় জিনিষ মানে বলে মনে হয়. আমি এটা অনুমান করার জন্য অন্যান্য ব্যবহার রয়েছে, কিন্তু C-যখন আপনি একটি স্ট্যাটিক ভেরিয়েবল ডিক্লেয়ার, সেটির সংগ্রহস্থল একটি কম্পাইল সময় বরাদ্দ করা হয়. এখানে, শুধু পরিবর্তনশীল টাইপ মানে হল - ইন সি যদি আপনি একটি স্ট্রিং এবং একটি পূর্ণসংখ্যা, যোগ যখন আপনি এটা কম্পাইল করার চেষ্টা করুন, এটি কারণ এটি যে আপনি কোন int এবং একটি পয়েন্টার যুক্ত করতে পারবেন না বলে যাচ্ছে অভিযোগ করে যাচ্ছে. শুধু একটি বৈধ অপারেশন না. এটা অন্য বিষয় যে আমরা একটি দ্বিতীয় মধ্যে পাবেন. কিন্তু পরীক্ষণ যে সাজানোর যে, আসলে এটা কম্পাইল সময়ে complains, স্থির টাইপ পরীক্ষা করা হয়. ভাষা যেখানে আপনি গৃহস্থালি, float, int-বলতে করার প্রয়োজন হবে না, এবং যারা সব জিনিস আছে, কিন্তু ভাষা জিনিস কনটেক্সট থেকে কি ধরণের এটা অনুমিত এর বলতে পারেন, কিন্তু এখনও এটি statically এর টাইপ করা. তাই আপনি যদি 51, OCaml নিতে, আপনি এই ধরনের কোনো ব্যবহার করতে হবে না, কিন্তু এটি এখনও কম্পাইল সময়ে আপনি এই কারণে আপনি কোন int এবং একটি স্ট্রিং মিশ করছি না পারে বলতে হবে. পরিবর্তনশীল টাইপ ঠিক মানে হল একদা চালানোর সময় আপনি একটি অভিযোগ পেতে যাচ্ছেন. এছাড়াও আপনি যদি জাভা ব্যবহার করে সাধারণ আগে, প্রায়, কোনো সি টাইপ ভাষা যাও statically, টাইপ করা, তাই সাধারণত সি, সি + +, জাভা, যারা সব statically হয় টাইপ করা যাচ্ছে না. জাভা যখন আপনি কিছু কম্পাইল এবং আপনি বলছে স্ট্রিং গুলি নতুন কিছু যে একটি স্ট্রিং নয় সমান, যে কারণে শুধু ঐ ধরনের আপ না মেলে অভিযোগ করে যাচ্ছে. যে কম্পাইল সময়ে অভিযোগ করতে যাচ্ছে. তবে এটা কিছু সময় গতিশীল ভীষণ পছন্দ হয়েছে, যদি আপনি কিছু নিক্ষেপ চেষ্টা একটি টাইপ যে তার বর্তমান টাইপ তুলনায় আরো নির্দিষ্ট, কিছুই এটি কিনা তা যে ঢালাই সফল হবে চেক সময়ে কম্পাইল করতে পারেন. জাভা কিছু গতিশীল টাইপ যে পরীক্ষণ আছে যত তাড়াতাড়ি এটা কোড যে লাইন বল যখন প্রকৃতপক্ষে এটি নির্বাহ এর, এটা কাস্ট করতে যাচ্ছে, যদি যে ঢালাই প্রথম স্থানে ছিল বৈধ চেক, এবং যদি তাই না হয় তাহলে সেটা যে আপনি একটি অবৈধ টাইপ আছে অভিযোগ করে যাচ্ছে. ডায়নামিক টাইপ চেকিং. নামক কোনো ফাইল dynamic.php মধ্যে এই টাইপ করুন. Dynamic.php. আমি যে বিন্যাস আনজিপ হবে. আমরা একটি পরিবর্তনশীল আছে, আমরা পূর্ণসংখ্যা 7 সেট করুন, তারপর আমরা এবং% s-মুদ্রণ চলুন - ওহ, আমরা এটি ধরণ মুদ্রণ করছি, তাই gettype যাও ভেরিয়েবলের রিটার্ন টাইপ করতে যাচ্ছে. আমরা শুধুমাত্র আপনার টাইপ মুদ্রণ বহুবার. আমরা শুধু php.dynamic.php. আমরা দেখতে পাবেন যে এটি থেকে পূর্ণসংখ্যা বুলিয়ান যাও পংক্তিটি পরিবর্তন হিসাবে আমরা মধ্য দিয়ে যেতে হবে. সি কোন বুলিয়ান ডাটা টাইপ আছে, কোন স্ট্রিং ডাটা টাইপ আছে. * গৃহস্থালির কাজ নেই এবং বুলিয়ান শুধুমাত্র int বা গৃহস্থালির কাজ কিংবা যে কোন কিছু হতে থাকে. পিএইচপি এই ধরনের, অস্তিত্ব নেই এবং যে PHP 'র বড় সি বেশী সুবিধার এক - স্ট্রিং অপারেশন হয় পিএইচপি বহু বহু গুণে সহজ সি ছাড়া তারা শুধু কাজ. সুতরাং আমরা এখানে ফিরে আসা. আমরা dynamic.php দৌড়ে. এই ইন্টারপ্রেটার পিএইচপি, পিএইচপি নামক যাও dynamic.php মধ্যে পিএইচপি কোড রান, বলে. যদি ফাইলটির মধ্যে কোনো ধরনের উত্পন্ন ত্রুটি আছে, দোভাষীর মাধ্যমে আপনাকে জানানো হবে! ইন্টারপ্রেটার, এই একটি পিএইচপি এবং সি মধ্যে বড় পার্থক্য আপনি কিছু কম্পাইল এবং তারপর আপনি যে ফাইল কম্পাইল চালানো সি ইন আছে. পিএইচপি কিছু কম্পাইল না. তাই মূলত পিএইচপি দোভাষী ঠিক হয় লাইন দ্বারা এই লাইন পড়া. এটা হিট var তারপর = 7 এটি হিট printf তাহলে হিট তারপর var এটি হিট printf তাই. কম্পাইল এটি আছে একটি বিট পর্যন্ত, এবং এটি ফলাফল ক্যাশে যাতে পরে যদি আপনি স্ক্রিপ্ট চালানোর জন্য আপনি কিছু করতে পারেন, কিন্তু মূলত এটা ব্যাপার লাইন সাজানোর দ্বারা একটি লাইন. এটার মানে হল যে আমরা যে অপ্টিমাইজেশন সি পেতে অনেক, কম্পাইল মত, এটা তো শুধু সাধারণত কম্পাইলার আপনি ঠাট জন্য অনেক কিছু করতে পারেন. এটি অব্যবহৃত ভেরিয়েবল গ্রহণ করা যেতে পারে, এটি জিনিস এই প্রকারের সমস্ত কাজ করতে পারেন, এটি লেঙ্গুড় recursion করতে পারেন. পিএইচপি আপনি যে সুবিধা পেতে যাচ্ছেন না কারণ এটা পংক্তির দ্বারা পাতিপাতি নির্বাহ শুরু হতেই, এবং এটি সত্যিই ভীষণ হিসাবে স্বীকার করে না সহজে যেহেতু এটি 1 বড় বিষয় সংকলন পাস ওভার এবং তারপর মৃত্যুদন্ড কার্যকর করা; এটা লাইন দ্বারা শুধুমাত্র লাইন. সুতরাং যে দোভাষী. আমাদের ডাইনামিক টাইপিং পশ্চাদপটে: চমত্কার, অঁ্যা? আপনি স্পষ্টভাবে সি যে করা যেত না! এখন, আপনি যদি নিম্নলিখিত মান প্রতিটি টাইপ চিন্তা করতে পারেন. উল্লেখের জন্য এই দেখুন. তাই 3.50. কি মনে করেন যে আপনার কি ধরনের হতে যাচ্ছে? এখানে আমরা ধরনের আছে. আমরা bools, ইন্টিজার, ফ্লোটিং পয়েন্ট, স্ট্রিং, অ্যারে, বস্তু আছে, এবং তারপর সম্পদ, যা অস্পষ্ট ধরনের. আমি মনে করি এর আসলে কোন উদাহরণ এখানে. তারপর শূন্য আছে. শূন্য একটি বিশেষ ধরনের. ভিন্ন সি শূন্য যেখানে শুধুমাত্র ঠিকানা 0 সাথে একটি পয়েন্টার, পিএইচপি, শূন্য হয় তার নিজস্ব ধরন যেখানে শুধুমাত্র ঐ ধরনের বৈধ জিনিস হয় শূন্য. এটি অনেক ত্রুটি পরীক্ষা করা জন্য আরো দরকারী. ইন সি যেখানে যেখানে আমরা এই সমস্যাটি যদি আপনি ফিরে শূন্য ছিল, কিন্তু যে মানে আপনি একটি NULL পয়েন্টার করছি ফিরে যায় অথবা NULL ত্রুটির বোঝান ব্যবহার অথবা যে সকল রকমের বিভ্রান্তি আছে যা আমরা এক পর্যায়ে আমার কাছে ছিল. এখানে, সাধারণভাবে NULL ফেরত ত্রুটি মানে. জিনিস অনেক এছাড়াও ত্রুটির জন্য মিথ্যা ফিরে. কিন্তু বিন্দু হয় শূন্য টাইপ, শূন্য ধরনের কেবল একটি বিষয় শূন্য. তারপর কলব্যাক মত আপনি কিছু বেনামী কর্ম নির্ধারণ করতে পারবেন. আপনি একটি নাম দিন ফাংশন, না আছে কিন্তু আপনি যে এখানে কারবার হবে না. দেখার জন্যে এ ধরনের যে তারা আমাদের প্রত্যাশা করবেন না, না কি আপনি মনে করেন 3.50 প্রকার হল? >> [ছাত্রদের] ভাসা. হাঁ. আমি তখন এখানে কি, আপনি এই প্রকার হল কি? >> [ছাত্রদের] এরে. হাঁ. প্রথমটি ছিল float, দ্বিতীয় এক একটি অ্যারে. উল্লেখ্য, এই অ্যারে সি অ্যারের মত নয় যেখানে আপনি সূচক আছে কিছু 0 মূল্য আছে, সূচক 1 কিছু মূল্য আছে. সূচকগুলি এখানে a, b, এবং c এবং মান 1, 2, এবং 3. পিএইচপি একটি এসসিয়েতিভ আরে এবং শুধুমাত্র একটি নিয়মিত অ্যারের মধ্যে কোনো পার্থক্য হিসাবে আপনি তা সি মধ্যে মনে শুধু এই পর্যন্ত, এবং নিয়মিত একটি অ্যারের ফণা নীচে শুধু একটি মিশুক অ্যারে যেখানে কিছু মান 0 মানচিত্র একই ভাবে কিছু মান একটি মানচিত্র. এই কারণে, পিএইচপি সত্যিই দ্রুত কোড / মাপকাঠিতে জিনিসের জন্য চমত্কার খারাপ হতে পারে যেহেতু সি সালে যখন আপনি একটি অ্যারে ব্যবহার করছেন জানতে পারেন যে কোন সদস্য অ্যাক্সেস সময় ধ্রুবক. পিএইচপি একটি সদস্য অ্যাক্সেস হয় কে কতটা সময় জানে? এটি হয়ত ধ্রুবক যদি এটি সঠিকভাবে hashes. এটি কি সত্যিই ফণা নীচে এর করছে কে জানে? আপনি সত্যিই বাস্তবায়ন সময়ে কিভাবে যে নিয়ে যাচ্ছে দেখুন চেহারা প্রয়োজন. আমি তখন fopen. আমি মনে করি এখানে এর শুধু পিএইচপি ম্যানুয়াল fopen রিটার্ন টাইপ তাকান যাক. আমরা এখানে দেখতে আপনি আপ পিএইচপি পুস্তিকায় চেহারা কোনো ফাংশন কাছাকাছি পারেন এবং এই PHP 'র man পৃষ্ঠা বাছাই করা. রিটার্ন টাইপ যাও সংস্থান হবে. এটা কেন আমি এটি তাকিয়ে, কারণ আমরা সত্যিই সম্পদ বার নিরূপণ করে না. সি সম্পদ ধারণা, আপনি যে ধরনের একটি ফাইল * বা যাই হোক না কেন না; পিএইচপি সংস্থান হয় আপনার ফাইল *. এটা কি থেকে পড়া হবে করছেন, এটি কি আপনি লেখার করা চলুন. এটা সাধারণতঃ বহিরাগত, তাই একটি সংস্থান আপনি জিনিষ থেকে এবং বৈঠাচালনা জিনিষ নিক্ষেপ করতে পারেন. এবং পরিশেষে, কি শূন্য ধরণ? >> [ছাত্রদের] শূন্য. হাঁ. তাই শুধু যে শূন্য হয় শূন্য. শূন্য হয় শূন্য. পিএইচপি এর টাইপ সিস্টেম (ভালো বা খারাপ জন্য) এক বৈশিষ্ট্য হল তার ক্ষমতা ধরনের প্রতারণা. আপনি যখন পিএইচপি কোড যে বিভিন্ন ধরনের মান সম্মিলন একটি লাইন লিখুন, পিএইচপি যাও ইন্দ্রিয়গ্রাহ্য জিনিস করতে চেষ্টা করবে. পিএইচপি কোড নিম্নলিখিত পংক্তিগুলি প্রতিটি ব্যবহার করে দেখুন. প্রিন্ট আউট কি করছেন? এটা কি আপনার প্রত্যাশিত? কেন অথবা কেন নয়? পিএইচপি সম্পর্কে এই সত্যটি কি এটা কি আমরা কল স্বাস্থ্যহীন টাইপ. স্বাস্থ্যহীন টাইপ করা এবং দৃঢ়ভাবে টাইপ, ঐ পদের জন্য বিভিন্ন ব্যবহার রয়েছে, কিন্তু অধিকাংশ লোক জিনিস থেকে এই সাজানোর মানে স্বাস্থ্যহীন টাইপ এবং টাইপ জোরালোভাবে ব্যবহার যেখানে ("1" + 2); যে কাজ করে. সি ইন না যে কাজ করবে. আপনি এই কাজ না কল্পনা করতে পারেন. মানুষ অনেক প্রগতিশীল টাইপ মিশ্রিত করা এবং দুর্বল টাইপিং এবং স্ট্যাটিক টাইপিং এবং শক্তিশালী টাইপ আপ. পাইথন একটি ভাষা যে পরিবর্তনশীল এর টাইপ আরেকটি উদাহরণ. আপনি ভেরিয়েবল এ ধরনের কাছাকাছি এবং এটি চালানোর সময় নির্ধারণ করে যাচ্ছে নিক্ষেপ করতে পারেন কোনো ত্রুটি checkings. Python-এ এটি চালানো এবং এটি ("1" + 2) দেখতে পাবেন যাচ্ছে; এবং এই কারণ এটি আপনাকে একটি স্ট্রিং এবং একটি পূর্ণসংখ্যা যোগ করতে পারেন না বিফল হবে. পিএইচপি, যা শুধু হিসাবে পরিবর্তনশীল টাইপ ইন, এই কর্ম ব্যর্থ হবে না. দুর্বল টাইপ যে এটি ধরনের সঙ্গে জিনিস আছে না আছে যে ইন্দ্রিয় সত্যিই কি না অগত্যা. সুতরাং ("1" + 2); আমি স্ট্রিং 12 হচ্ছে, আমি এটা হচ্ছে স্ট্রিং 3 কল্পনা করা যাবে কল্পনা করতে পারেন, আমি এটা হচ্ছে পূর্ণসংখ্যা 3 কল্পনা করতে পারেন. এটা সংজ্ঞায়িত অগত্যা ভাল না এবং আমরা সম্ভবত করছি এখানে দেখতে যাওয়া যে, যখন আমরা মুদ্রণ ("1" + 2); সম্ভবত এটি এবং শেষ হচ্ছে বিভিন্ন যাচ্ছে তুলনায় প্রিন্টিং (1 + "2"). এবং এই আমার মতে, আরও খারাপ হতে জন্য, থাকে. এখানে আমরা এই চেষ্টা করতে পারেন. অন্য পিএইচপি সম্পর্কে সামান্য কৌতুক হয় আপনি আসলে ফাইলটি লিখতে হবে না. এই কমান্ড মোড আছে ফেলেছেন. সুতরাং এটি php-r, তাহলে আমরা এখানে কমান্ডের মধ্যে নিক্ষেপ করা যাবে: "মুদ্রণ ('1 '+ 2);" এবং আমি একটি নতুন লাইন নিক্ষেপ করা হবে. এই 3 মুদ্রিত. দেখে মনে হচ্ছে এটি 3 ছাপে এবং এটা পূর্ণসংখ্যা 3. তাই এখন যাক এর কাছাকাছি অন্য উপায় চেষ্টা করুন: "মুদ্রণ (1 + '2 '); আমরা 3 পেতে, এবং তা যাও পূর্ণসংখ্যা 3 হতে যাচ্ছে? আমি ভাল কোন ধারণা আছে. মনে যা সামঞ্জস্যপূর্ণ. যে পর্যন্ত এটি হচ্ছে স্ট্রিং 12 বা ভালো কিছু কোন সুযোগ না কারণ পিএইচপি, জাভাস্ক্রিপ্ট এবং অসদৃশ খুব জাভা, একটি সংযুক্তকরণের জন্য পৃথক অপারেটর আছে. পিএইচপি সংযুক্তকরণের হয় বিন্দু. সুতরাং প্রিন্টিং (1 '2 '.); আমাদের 12 দিতে হবে. এই বিভ্রান্তির যেখানে লোকেদের str + = ভালো কিছু করতে চেষ্টা করুন হতে থাকে অন্য কিছু জিনিস যে তারা তাদের স্ট্রিং শেষ উপর যুক্ত করতে চান, এবং যে ব্যর্থ হচ্ছে. আপনি str করতে হবে. = সুতরাং পিএইচপি সংযুক্তকরণের একটি বিন্দু ভুলবেন না. অন্য জিনিষ চেষ্টা: ("সি এস" + 50) মুদ্রণ; আমি আপনাকে বলেন যে এই থাকার কোনও আশা নেই CS50 ফলে আছে যেহেতু সংযুক্তকরণের + নয়. আপনি কি মনে করেন এই পর্যন্ত শেষ হচ্ছে যাচ্ছে? আমি কখনই ভাল কোন ধারণা আছে. দেখে মনে হচ্ছে এটি শুধু 50. এটি স্ট্রিং সূচিত, এবং আমি বাজি ধরতে পারি যদি আমরা 123CS করা - এটা প্রথম পংক্তি দেখে এটা থেকে একটি পূর্ণসংখ্যা বা এটি একটি নম্বর থেকে পড়া চেষ্টা করে. এটি এই ক্ষেত্রে সূচিত 123CS. "এই একটি পূর্ণসংখ্যা হিসাবে না জানার জন্য না, তাই আমি মনে করি 123 নিকট যাচ্ছে." তাই + 123 50 173 হতে চলেছে. এবং এখানে এটি শুরু হয় একটি পূর্ণসংখ্যা হিসাবে এই পড়া. এটা কিছু না দেখতে পাচ্ছেন না, তাই এটা এটা হিসাবে 0 একইরূপে. 0 তাই + 50 থেকে 50 হবে. এই আমি ধৃষ্ট করছি অনুরূপ কিছু করতে হবে. আমি চিন্তা করছি 99. হাঁ, কারণ প্রথম নিতে যাচ্ছে - তাই 99. এখানে (10/7), যদি এই ছিল সি কি, যে ফিরে আসবে? 1 [ছাত্রদের]. >> হ্যাঁ, এটি 1 কারণ 10/7 2 পূর্ণসংখ্যার বিভাজক হয় হবে. পূর্ণসংখ্যা মান পূর্ণসংখ্যা দ্বারা বিভক্ত একটি পূর্ণসংখ্যা ফিরে যাচ্ছে. এটি 1 পয়েন্ট যাই হোক না কেন যে হবে, ফিরে না, তাই এটা এর যাও 1 ফিরে যাওয়া যাবে. এখানে মুদ্রণ (10/7); এটা আসলে যে ব্যাখ্যা করা যাচ্ছে. এবং এর মানে হল যে যদি আপনি আসলে যে ভালো পূর্ণসংখ্যা rounding পণ্যদ্রব্য এবং কাজ করতে চান, আপনি মুদ্রণ (ফ্লোর (10/7)) করতে হবে; এটি সি ইন সম্ভবত অদ্ভুত যে আপনি নিয়মিত পূর্ণসংখ্যা truncation উপর নির্ভর করতে পারেন, কিন্তু পিএইচপি আপনাকে করতে হবে না কারণ এটি স্বয়ংক্রিয়ভাবে না একটি float এটা করান. এবং তারপর (7 + সত্য); কি আপনি মনে করেন না যে হতে যাচ্ছে? আমি 8 করছি অনুমান যদি 1 সত্য হিসাবে ব্যাখ্যা করা যাচ্ছে. দেখে মনে হচ্ছে এটা 8. সুতরাং কিছু আমরা গত 10 মিনিট আপনি কখনই করবেন না সালে সম্পন্ন করেছি. আপনি যে এই কোড আছে দেখতে হবে. এই হিসাবে হিসাবে সহজবোধ্য হতে হবে তা নয়. আপনি 2 ভেরিয়েবল আছে, এবং 1 পরিবর্তনশীল এর স্ট্রিং এরকম হতে পারে এবং অন্যান্য পরিবর্তনশীল যাও কোন int হতে হবে, এবং তারপর আপনি একসঙ্গে এই ভেরিয়েবল যোগ করুন. যেহেতু পরিবর্তনশীল পিএইচপি টাইপ করা হলে এবং এটি আপনার জন্য যে কোনো ধরনের পরীক্ষা দেবে না এবং যেহেতু এটি টাইপ গুরুত্বহীন এবং এর থেকে স্বয়ংক্রিয়ভাবে এটি শুধুমাত্র এই জিনিসগুলি নিয়ে একসাথে নিক্ষেপ করা হবে এবং সব ঠিক কাজ করবে না, এটা এমন যে এই পরিবর্তনশীল এখন একটি পংক্তি হওয়া আবশ্যক জানা কঠিন, তাই আমি এই পরিবর্তনশীল এটি যোগ করা উচিত, যা একটি পূর্ণসংখ্যা. সর্বোত্তম অভ্যাস হয় যদি একটি পরিবর্তনশীল একটি স্ট্রিং, একটি পংক্তি হিসাবে চিরকালের জন্য এটা রাখা. যদি একটি ভেরিয়েবল হল কোন int, কোন int হিসাবে চিরকালের জন্য এটা রাখা. আপনি যদি ইন্টিজার এবং স্ট্রিং মোকাবেলা করতে চান, আপনি varsint ব্যবহার করতে পারেন - এটা জাভাস্ক্রিপ্ট. Intval. আমি সব সময় এই. পিএইচপি এবং জাভাস্ক্রিপ্ট আমি মিশ্রিত করা সবকিছু আপ. সুতরাং intval একটি ভেরিয়েবলের মান পূর্ণসংখ্যা ফিরে যাচ্ছে. যদি আমরা "মুদ্রণ (intval ('123 ')) পাস; আপনি 123 পেতে. Intval নিজেই আমাদের জন্য চেক যে এটি কেবলমাত্র একটি পূর্ণসংখ্যা করতে হবে না. পিএইচপি ম্যানুয়াল, ঠিক তাই অনেক ফাংশন নেই, তাই এখানে আমি মনে করি আমি কি ব্যবহার করে প্রথম is_numeric. আমি যে ফিরে মিথ্যা অনুমান করছি. এটা অন্য জিনিস আমরা হয় === মাধ্যমে যেতে হবে. সুতরাং is_numeric ('123df '), আপনি যে হিসাবে is_numeric মনে করবেন না. সি আপনি সমস্ত অক্ষর পুনরুক্তি উপর থাকবে এবং যদি প্রতিটি অক্ষর অঙ্ক যাই হোক না কেন বা দেখুন. এখানে is_numeric আমাদের জন্য যা করতে হবে, এবং এটা মিথ্যা ফিরে পাবে. সুতরাং যখন আমি যে মুদ্রিত, এটা কিছুই মুদ্রিত, তাই এখানে আমি এটা দেখতে তুলনা করছি, আপনি কি মিথ্যা ঘটবে? এবং এখন তাই এটি 1 মুদ্রণ এর. দৃশ্যত এটি পরিবর্তে মুদ্রণ সত্য হিসাবে সত্য সত্য হিসাবে 1 ছাপে. আমি ভাবছি আমি print_r না. না, এটা এখনও আছে 1. === যাব ফিরে, এখনও == বিদ্যমান, এবং যদি আপনি টমি কথা বলতে তিনি == পুরোপুরি সূক্ষ্ম বলবো. আমি যে == হয় ভয়ানক এবং আপনি == কখনও ব্যবহার করা উচিত বলে যাচ্ছি. পার্থক্য হল যে জিনিস == তুলনা যেখানে এটি সত্য এমনকি যদি তারা একই ধরনের পারব না হতে পারেন, যেহেতু === জিনিষ তুলনা এবং প্রথমে চেক তারা একই প্রকারের? হ্যাঁ. ঠিক আছে এখন, আমি যদি তারা আসলে সমান হতে তুলনা দেখতে যাচ্ছি. আপনি পেতে 10 মত অদ্ভুত জিনিস সমান - এর কি যে দেখতে দিন. সুতরাং ('10 '== e1 '1'); এই ফেরত্ সত্য. কারো কাছে কি কোন অনুমান কেন এই ফেরত্ সত্য আছে? এটা আমার মনে হয় না. হয়তো এই একটি ইঙ্গিত. কিন্তু যদি আমি একটি চ যাও যে পরিবর্তন - এটা অভিশাপ! আমি রাখা উদ্ধৃতি চিহ্ন ব্যবহার করে. কারণ উদ্ধৃতি চিহ্ন সম্পর্কে এ yelling হয় কারণ আমি উদ্ধৃতি চিহ্ন এই রেখেছি. তাই আমি এখানে উদ্ধৃতি চিহ্ন অব্যাহতি, কিন্তু একক উদ্ধৃতি চিহ্ন পাওয়া আরও সহজ করতে পারে. সুতরাং ('10 '== F1 '1'); সত্য না মুদ্রণ. ('10 '== E1 '1'); ছাপে সত্য. [ছাত্রদের] এটা হেক্স? >> এটা, কিন্তু হেক্স না এটা বন্ধ হয় যে এটা মত - 1e1, বৈজ্ঞানিক স্বরলিপি. এটি 1 হিসাবে স্বীকৃতি 1e1 * 10 ^ 1 বা যাই হোক না কেন. সেগুলো হল সমান ইন্টিজার. যদি আমরা === কি তাহলে মিথ্যা হতে যাচ্ছে. আমি আসলে কোন ধারণা আছে যদি আমরা কি কি বিষয়ে == (10 এবং '10abc ');? ঠিক আছে. সুতরাং এটা সত্য. তাই যখন আপনি (10 + '10abc ') কি পছন্দ করেন; এবং এটা 20 হবে, এখানে (10 == '10abc '); সত্য. এমনকি খারাপ জিনিসগুলি ভালো (মিথ্যা == NULL); সত্য অথবা (মিথ্যা == 0); সত্য, (মিথ্যা == []); এর রহস্যময় মামলা আছে - এটা ঐ অদ্ভুত ক্ষেত্রে এক. যে উল্লেখ্য, (মিথ্যা == []); সত্য. ('0 '== মিথ্যা); সত্য. ('0 '== []); মিথ্যা. সুতরাং == কোন উপায় সকর্মক হয়. একটি বো সমান হতে হবে এবং তা একটি সমান গ হতে পারে, কিন্তু বো সমান গ যাও নাও হতে পারে. এটা আমার একটি কদর্যতা, এবং আপনি সবসময় === ব্যবহার করা উচিত. [ছাত্রদের] আমরা! == হিসাবে ভাল করতে পারি? >> [Bowden] হ্যাঁ. সমতুল্য! হবে = এবং! ==. এই প্রকৃতপক্ষে pset বৈশিষ্ট মধ্যে প্রতিপালিত যেখানে ফাংশন রিটার্ন অনেক - পিএইচপি ম্যানুয়াল হয় এই সম্পর্কে ভাল. এটা একটি বড় লাল বাক্সে রাখে, "এই মিথ্যা যদি একটি ত্রুটি আছে ফিরে আসবে." কিন্তু ফিরে 0 একটি পুরোপুরি যুক্তিসঙ্গত জিনিস ফিরে. কোনো ফাংশন যা একটি পূর্ণসংখ্যা ফিরে পাওয়ার আশা করা যায় আমার মনে. চলুন শুরু করা যাক বলতে এই ফাংশনটি একটি ফাইল বা কিছু মধ্যে লাইনের সংখ্যা গণনা অনুমিত হয়. স্বাভাবিক পরিস্থিতিতে, আপনি পাস একটি ফাইল এই ফাংশন এবং এটি একটি পূর্ণসংখ্যা যা লাইনের সংখ্যা উপস্থাপন করে ফিরে যাচ্ছে. সুতরাং 0 একটি পুরোপুরি যুক্তিসঙ্গত নম্বর যদি ফাইলটি শুধুমাত্র খালি. যদি আপনি একটি অবৈধ পাস ফাইল এবং এটি কি তবে ফাংশন মিথ্যা প্রত্যাবর্তন ঘটবে যদি আপনি এটি একটি অবৈধ ফাইল পাস? যদি আপনি করবেন == আপনি অবৈধ ফাইল এবং খালি ফাইল মধ্যে পার্থক্যকারী কেস করছি না. সর্বদা === ব্যবহার. এটা যারা সব. পিএইচপি, অ্যারে টাইপ করি তা হল আপনার মধ্যে সি ব্যবহার করতেন থেকে বিভিন্ন প্রকৃতপক্ষে, আপনি ইতিমধ্যে এই উপরে আছে খেয়াল হতে পারে যখন আপনি দেখেছি যে এই টাইপ অ্যারের হয়. বন্ধনী সিনট্যাক্স হল পিএইচপি 5.4, যা পিএইচপি নবীনতম সংস্করণ হিসাবে নতুন. > 1, 'খ' - -> 2 এই পূর্বে সর্বদা অ্যারে ('একটি' লিখুন ছিল. এটা ছিল একটি অ্যারের জন্য রচয়িতা. এখন অবশেষে পিএইচপি কেবল বর্গাকার বন্ধনী চমৎকার সিনট্যাক্স যাও করেনি আসা কাছাকাছি, যা ঠিক তাই অ্যারের অনেক বেশী ভালো. কিন্তু পিএইচপি 5.4 বিবেচনা করা হয় নবীনতম সংস্করণ, আপনি যে জায়গা পিএইচপি 5.3 এমনকি নেই সম্মুখীন হতে পারে. গ্রীষ্মকালে যখন আমরা এই সমস্যাটি গাড়ীতে আঘাত যেখানে পিএইচপি 5.3 ছিল কি আমরা প্রয়োগ উপর ছিল, কিন্তু সার্ভারটি যে আমরা আমাদের সব গ্রেড বই স্থাপন এবং জমা এবং যে সকল স্টাফ ছিল পিএইচপি 5.4. বুদ্ধিমান এই নেই, আমরা উন্নত 5.3 5.4, ধাক্কা, এবং এখন আমাদের কোড হঠাত্ none 'ও সব কাজ করে কারণ হয়েছে 5.3 এবং 5.4 মধ্যে পরিবর্তন ঘটেছে সেখানে যা সাযুজ্যপূর্ণ নয়, এবং আমরা যেতে সমস্ত জিনিস যে আমাদের পিএইচপি 5.4 জন্য কাজ করি না ঠিক করা আছে. এই শ্রেণীর জন্য, সমস্ত যন্ত্র আছে পিএইচপি 5.4 আছে, এটা পুরোপুরি জরিমানা বর্গাকার বন্ধনী ব্যবহার করুন. তবে আপনি যদি ইন্টারনেট চারপাশ ঘুরে জিনিষ আপ করছি, যদি আপনি অ্যারে স্টাফ কিছু খুঁজছেন আপ করছি, খুব সম্ভবত আপনি দেখতে যাচ্ছেন অ্যারে রচয়িতা সিনট্যাক্স আউট বানান থেকে যে পিএইচপি থেকে এর আগে প্রায় জন্মগ্রহণ করেন এবং গুরুবন্ধনী সিনট্যাক্স বিগত কয়েক মাস ধরে প্রায় করেনি যখনই 5.4 বা কাছাকাছি এসেছিলেন. এই ভাবে আপনি সূচক. সি মতো কিভাবে আপনি $ অ্যারের [0], $ অ্যারের [1], $ অ্যারের [2], ভালো বর্গাকার বন্ধনী দ্বারা ইনডেক্স করবে আপনি যদি একই ভাবে আপনি আপনার সূচকগুলি হচ্ছে স্ট্রিং আছে ঘটতে সূচক. সুতরাং $ অ্যারের ['একটি'] $ এবং অ্যারের ['খ']. $ অ্যারের [খ]. কেন এই ভুল করা হবে? এটি সম্ভবত একটি সতর্কবার্তা উৎপন্ন কিন্তু এখনও কাজ করবে. পিএইচপি কি সেটা থাকে. এটা প্রমান করে যে, "আমি এই বিষয়ে আপনাকে সতর্ক চলেছি যাও থাকে, কিন্তু আমি শুধু যাও বর্তা যাচ্ছে "যাই হোক না কেন এবং কি আমি করতে পারেন." এটি সম্ভবত একটি পংক্তি এই অনুবাদ হবে, কিন্তু এটা সম্ভব যে বিগত কাউকে কিছু স্থানে বলেন, বো to be 'হ্যালো ওয়ার্ল্ড' সংজ্ঞায়িত. তাই এখন বো একটি ধ্রুবক এবং $ অ্যারে হতে পারে [খ] আসলে কাজ করা 'হ্যালো ওয়ার্ল্ড' হবে. আমি এই সময়ে মনে হয়, অথবা অন্তত আমাদের পিএইচপি সেটিংস, যদি আপনি সূচক চেষ্টা একটি অ্যারের মধ্যে এবং যে কি না বিদ্যমান, তা ব্যর্থ হবে. আমি এটা আপনি সতর্কবার্তা প্রদর্শন করা হবে তা মনে করি না. বা অন্তত আপনি এটি সেট যাতে এটা আপনাকে সতর্ক করতে পারে না, এটা সোজা আপ ব্যর্থ. উপায় আপনি যদি আসলে যেমন একটি সূচক আছে দেখুন isset হয়. সুতরাং isset ($ অ্যারের ['হ্যালো ওয়ার্ল্ড']) মিথ্যা ফিরে আসবে. isset ($ অ্যারের ['খ']) সত্য ফিরে আসবে. আপনি এই syntaxes মিশ্রিত করা যাবে. আমি কি সুন্দর এই অ্যারে আপ হচ্ছে শেষ হয়ে যাবে মনে হয় - আমরা এটি পরীক্ষা করে দেখতে পারেন. ওহ, আমি PHPWord প্রয়োজন. এই বাক্য গঠন যেখানে আপনি কি কি উল্লেখ করা হয় মিশ এবং আপনি কি কি না নির্দিষ্ট করে. তাই 3 এখানে ডান একটি মান. আপনি না স্পষ্টভাবে বলেন, তার কি কি হতে যাচ্ছে. আপনি কি মনে করেন তার কি হবে? 0 [ছাত্রদের]. >> আমি 0 অনুমান করছি শুধুমাত্র কারণ এটা প্রথম আমরা একটি নির্দিষ্ট করেন নি. আমরা আসলে এই ক্ষেত্রে একটি দম্পতি করতে পারেন. সুতরাং print_r হয় recursive মুদ্রণ. এটা সম্পূর্ণ অ্যারে মুদ্রণ করা. এটা অ্যারের subarrays মুদ্রণ যদি কোনো দিন ছিল. সুতরাং print_r ($ অ্যারে); php.test.php. এটি মত দিয়েছেন 0 এটা দেখাচ্ছে. এর প্রকৃতপক্ষে কিছু আছে এখানে মনে রাখা, কিন্তু আমরা তা পেতে একটি দ্বিতীয় ফিরে পাবেন. কিন্তু যদি আমি এই সূচক 1 ঘটতে না? পিএইচপি স্ট্রিং সূচকগুলি এবং পূর্ণসংখ্যা সূচকের মধ্যে পার্থক্য আছে না, তাই এই সময়ে আমি একটি সূচক 1 সংজ্ঞায়িত করেছি এবং আমি উভয় $ অ্যারের [1] এবং $ অ্যারের ['1 '] কি করতে পারেন এবং এটি একই সূচক এবং একই কী হবে. সুতরাং এখন কি আপনি মনে 3 হতে যাচ্ছে? >> [ছাত্রদের] 2. >> [Bowden] আমি অনুমান করছি 2. হাঁ. এটা 2. , যদি আমরা কি এই 10 এই 4? আপনি কি মনে করেন 3 সূচী হতে যাচ্ছে? আমি চিন্তা করছি 11. কি আছে পিএইচপি হিসাবে আমার অনুমান - এবং আমি মনে করি এই আমি করেছি আগে দেখা - না এটা কি সর্বোচ্চ সাংখ্যিক সূচী এটি এ পর্যন্ত ব্যবহৃত হয় ট্র্যাক রাখে. এটি 3 থেকে একটি পংক্তি সূচক দায়িত্ব অর্পণ করা যাচ্ছে না. এটা সবসময় একটি সাংখ্যিক সূচক হবে. সুতরাং এটি সর্বোচ্চ এক এতদূর নিয়োগ এর, যা 10 ঘটবে ট্র্যাক রাখে, এবং এটি 3 থেকে 11 দিন যাচ্ছে. আমি কি আগে বলেন, এটার এই অ্যারে হয় মুদ্রণ বিজ্ঞপ্তি. এটা কি 10 ছাপে, কী 4, 11 কী, কী ঘ. বা এমন কি এর যাক - আর আমি মনে 0 বার করা না, কিন্তু এটা মুদ্রণ 1, 2, 3, 4. আমি যদি এখানে সুইচ অথবা আমি কি আসলে এই 2 সুইচ. এখন এটি 2, 1, 3, 4 ছাপে. পিএইচপি এর অ্যারে শুধুমাত্র আপনার নিয়মিত হ্যাশ টেবিল এর মত না. এটা পুরোপুরি যুক্তিসঙ্গত তাদের হ্যাশ টেবিল সময় 99% হিসাবে মনে করি. কিন্তু আপনার হ্যাশ টেবিল যাতে যা জিনিষ ঢোকানো হয় কোন অনুভূতি নেই. সুতরাং যত তাড়াতাড়ি আপনি আপনার হ্যাশ টেবিল মধ্যে সন্নিবেশ, অনুমান কোন লিঙ্ক তালিকা আছে এবং আপনি একটি লিঙ্ক তালিকা মধ্যে বিচারক পারে যা প্রথম ঢোকানো ছিল. কিন্তু আমরা এখানে 2 প্রথম ঢোকানো এবং জানেন যখন এই অ্যারে প্রিন্ট আউট যে 2 এর প্রথম আসে. এটা প্রমান করে যে কোনো অনুক্রমে তা না প্রিন্ট আউট. প্রযুক্তিগত তথ্য কাঠামো যে এটি ব্যবহার করে এর একটি মানচিত্র নির্দেশ দেয়, তাই এটা মান নির্দেশক মানচিত্র এবং এটি ক্রম যা তাদের কি ঢোকানো ছিল মনে. মূলত এটি কিছু জটিলতা যেখানে এটা আসলে বিরক্তিকর যাও যাও এর - চলুন শুরু করা যাক বলতে আপনি একটি অ্যারের 0, 1, 2, 3, 4, 5 আছে এবং আপনি সূচক 2 নিতে চান. এরকম ওয়ান ওয়ে, কি যে এর মতো দেখতে দেখতে দিন. 0, 2, 1, 3, 4. আনসেট উভয় ভেরিয়েবল এবং অ্যারের সূচকগুলি আনসেট ঘটবে. সুতরাং আনসেট ($ অ্যারের [2]); এখন কি ভালো সন্ধান করছেন? 2 ঠিক চলে গেছে, তাই এটা পুরোপুরি সূক্ষ্ম. আরো বিরক্তিকর হয় যদি আপনি একটি অ্যারের ভালো জিনিস আসলে হতে চান. আমি র্যান্ডম সংখ্যার রেখে দেব. এখন আমার সূচকগুলি বিজ্ঞপ্তি. 1 - আমি এটি একটি সি অ্যারের মত শুধু যেখানে এটি থেকে 0 দ্বারা যায় হতে চান এবং আমি এটি উপর যেমন পুনরুক্তি করতে পারেন. কিন্তু যত তাড়াতাড়ি আমি দ্বিতীয় সূচক, সূচক 3 কি ছিল আনসেট সূচক 2 এখন হত্তয়া না. এর পরিবর্তে এটি যে শুধুমাত্র ইনডেক্স মুছে ফেলা হয় ও এখন আপনি 0, 1, 3, 4 যান. এটি পুরোপুরি যুক্তিসঙ্গত. শুধু বিরক্তিকর এবং আপনি অ্যারে সংযুক্ত করান ভালো কিছু করার আছে. হাঁ. [ছাত্রদের] যদি আপনি লুপের জন্য একটি ছিল ঘটতে পারে এবং আপনি সমস্ত উপাদানের উপরে যেতে চেয়েছিলেন? যখন এটি 2 আঘাত, এটা কখনও সমর্পণ করা হবে? একটি অ্যারের উপর Iterating. 2 উপায়ে আপনি এটি করতে পারেন. আপনি লুপের জন্য একটি নিয়মিত ব্যবহার করতে পারেন. এই PHP 'র আরেকটি জটিলতা. বেশীরভাগ ভাষা শিক্ষা, আমি বলতে হবে, দৈর্ঘ্য বা Len বা কিছু কিছু বাছাই করা আছে একটি অ্যারের দ্বারা চিহ্নিত করা হবে. এটি পিএইচপি এর গণনা. সুতরাং গণনা ঃ ($ অ্যারে); $ i + +) চলুন শুরু করা যাক ঠিক মুদ্রণ ($ অ্যারের [$ i]); নোটিশ: অনির্দিষ্ট অফসেট: 2. এটা ঠিক এর নারা যাচ্ছে. এই কারণে যে, অধিকাংশ অংশ জন্য, আপনি ভালো একটি অ্যারের উপর পুনরুক্তি করা প্রয়োজন হবে না. এটি একটি রঙ হতে পারে, কিন্তু আপনি ভালো একটি অ্যারের উপর পুনরুক্তি করা প্রয়োজন হবে না পারে কারণ পিএইচপি প্রদান করে তার foreach সিনট্যাক্স যেখানে foreach ($ $ অ্যারে হিসাবে আইটেম). এখন আমরা যদি মুদ্রণ ($ আইটেম); - we'll একটি দ্বিতীয় মধ্যে আলোচনা - যে কাজ পুরোপুরি সূক্ষ্ম. উপায় যে foreach কাজ হয় প্রথম যুক্তি হল যে আপনি অ্যারের উপর iterating করছি. এবং দ্বিতীয় যুক্তি, প্রতিটি লুপ জন্য পাস মাধ্যমে আইটেমটি, এটি অ্যারের মধ্যে পরবর্তী জিনিস যাওয়া যাচ্ছে. তাই মনে রাখবেন অ্যারে অর্ডার. লুপ জন্য প্রথম মাধ্যমে সময়, আইটেমটি 123 হতে চলেছে তারপর এটি 12 হতে হবে তাহলে 13 হতে হবে তাহলে 23 হতে হবে, তাহলে এটি হতে হবে 213. জিনিসপত্র পেতে সত্যিই অদ্ভুত যখন আপনি foreach মত কিছু একটা করুন. এর কারণ কি আপনি কখনো এটা কি করা উচিৎ কি না. যদি আমরা আনসেট ($ অ্যারের [1]); যে সম্ভবত ছিল প্রত্যাশিত. আপনি এই অ্যারে উপর, iterating এবং প্রতিটি সময় আপনি প্রথম সূচক unsetting করছি করছি. সুতরাং সূচক 0 জন্য, প্রথম জিনিস, আইটেমটি মান 0 লাগে, তাই এটি যাও 123 হতে যাচ্ছে. কিন্তু ভিতর জন্য লুপ আমরা আনসেট সূচক 1, যাতে মানে 12 সর্বস্বান্ত হয়. তাই প্রিন্ট করা হবে. PHP_EOL. PHP_EOL শুধুমাত্র newline, কিন্তু এটি টেকনিক্যালি আরো পোর্টেবল যেহেতু Windows এ newlines হয় Mac এবং UNIX-এর উপর newlines থেকে ভিন্ন. উইন্ডোজ অন newline অন্য যেকোন স্থানে যেহেতু \ r \ n হয়, এটি ঠিক করতে \ n হতে থাকে. PHP_EOL যাতে এটি ব্যবহার করে যাই হোক না কেন আপনার সিস্টেমের newline হয় কনফিগার করা হয়. যাতে মুদ্রণ. চলুন শুরু করা যাক print_r ($ অ্যারে) শেষে না. আমি কোন ধারণা ছিল যে আচরণ করা হবে. মান 12 আইটেম এখনও লাগে যদিও আমরা 12 আনসেট আগে আমরা কখনও এটা অ্যারে থেকে পেয়েছিলাম. এই কি আমার শব্দ করে না, কিন্তু এটা মনে foreach সৃষ্টি অ্যারের একটি অনুলিপি এবং তারপর যে অনুলিপি সমস্ত মানগুলি আইটেমটি প্রদর্শিত হবে. তাই, এমনকি যদি আপনি ভিতরে লুপ জন্য অ্যারের পরিবর্তন এটি যত্ন হবে না. মূল বিষয়ের উপর মান নিতে হবে. চলুন এটি unsetting চেষ্টা করুন. যদি এই হয় $ অ্যারের [1] = "হ্যালো"; যদিও আমরা অ্যারের মধ্যে "হ্যালো" করা, আইটেমটি লাগে যে মান না. অন্য সিনট্যাক্স যাও loops foreach আছে যেখানে আপনি 2 একটি তীর দ্বারা পৃথকীকৃত ভেরিয়েবল করা. এই প্রথম পরিবর্তনশীল যে মান কি হবে, এবং এই দ্বিতীয় পরিবর্তনশীল একই সঠিক আইটেমটি হবে. এখানে এই নীরস, কিন্তু যদি আমরা আমাদের 'একটি' আসল কেস ফিরে যান -> 1, 'খ' -> 1, এখানে যদি আমরা শুধুমাত্র আইটেম হিসাবে প্রতিটি অ্যারের জন্য বারবার, আইটেমটি হতে 1 প্রতি একক সময় যাচ্ছে. কিন্তু যদি আমরা কি যে আইটেম জানতে চাই > $ আইটেমটি - তারপরে আমরা হিসাবে $ কি না. . ':' সুতরাং এখন আমরা মুদ্রণ ($ কী করতে পারেন. এখন এটা আবার iterating এবং প্রতিটি গুরুত্বপূর্ণ এবং তার সংযুক্ত মান মুদ্রণ এর. একটি অতিরিক্ত জিনিস আমরা foreach loops কি করা যেতে পারে, আপনি এই সিনট্যাক্স দেখতে হতে পারে. পরিবর্তনশীল নামের আগে Ampersands কিভাবে পিএইচপি আছে রেফারেন্স হতে থাকে. যেখানে তথ্যসূত্র উল্লেখ করা হয় পয়েন্টার অনুরূপ, আপনি, না আছে পয়েন্টার না যাতে আপনি সরাসরি মেমরির সাথে কখনও কারবার. কিন্তু আপনি রেফারেন্স যেখানে 1 পরিবর্তনশীল অন্য পরিবর্তনশীল একই জিনিস হিসাবে চিহ্নিত করা আছে. এখানে ভিতরে যাক এর $ আইটেমটি না. চলুন 1, 10 ফিরে যান. চলুন শুরু করা যাক $ না আইটেমটি +; এটা পিএইচপি এখনও বিদ্যমান. আপনি এখনও + করতে পারেন. php.test.php. আমি এটা মুদ্রণ আছে. print_r ($ অ্যারে); আমরা 2, 11 মুদ্রণ. যদি আমি foreach ($ $ অ্যারে হিসাবে আইটেম) সম্পন্ন করে তারপর আইটেমটি মান 1 হবে লুপের মাধ্যমে প্রথম সময়. এটি 1 2 বাড়ায় এবং তারপর আমরা সম্পন্ন হবে. আমি তখন এটি লুপ দ্বিতীয় পাস মাধ্যমে এবং যে আইটেমটি 10 ​​যেতে হবে. এটি 11 থেকে বাড়তি আইটেম, এবং তারপর যে ঠিক এর দূরে প্রক্ষিপ্ত. তারপর আমরা print_r ($ অ্যারে); এবং এর দেওয়া হয় যে এই মাত্র 1, 10. তাই বৃদ্ধি আমরাও হারিয়ে গেছে. কিন্তু foreach ($ অ্যারে হিসাবে & $ আইটেম) এখন এই আইটেমটি এখানে এই অধিকার হিসাবে একই আইটেম. এটা একই জিনিস. সুতরাং $ আইটেমটি + 0 অ্যারের পরিবর্তন করা হয়. মূলত, তাহলে $ ট করতে পারেন -> $ আইটেম এবং আপনি $ করতে পারেন অ্যারের [$ ট] +; যে এরকম আরেকটি উপায়, তাই আমরা আইটেমকে সংশোধন বিনামূল্যে, কিন্তু যে আমাদের আসল অ্যারের সংশোধন করবে না. কিন্তু আমরা যদি ট, যা আমাদের কী ব্যবহার তারপর, আমাদের অ্যারের মধ্যে শুধুমাত্র ইনডেক্স যে কি আমরা ব্যবহার করতে পারেন এবং যে বাড়ায়. এই আরো সরাসরি আমাদের মূল অ্যারের পরিবর্তন করা যাবে. এমনকি আপনি যে যদি কোনো কারণে পরিবর্তনের ক্ষমতা চেয়েছিলেন করতে পারেন - বাস্তবিক, এই পুরোপুরি যুক্তিসঙ্গত. আপনি $ অ্যারের লিখুন আছে না চান [$ ট] + + ', আপনি ঠিক $ আইটেমটি লিখতে চেয়েছিলেন + কিন্তু আপনি এখনও করি যদি ($ ট === 'একটি') তারপর আইটেমটি বাড়ায় এবং তারপর আমাদের অ্যারের মুদ্রণ. তাই এখন আমরা কি print_r কি আশা করবেন? কি মান প্রিন্ট করা উচিত? [ছাত্রদের] 2 এবং 10. >> [Bowden] শুধু যদি কী ছিল 'একটি' আসলে আমরা যে প্রিন্ট করা হবে. আপনি সম্ভবত খুব কমই, যদি কখনও, যাও পিএইচপি ফাংশন সংজ্ঞায়িত করতে হবে, কিন্তু আপনি যদি এমন কিছু দেখতে পাবেন যেখানে আপনি অনুরূপ ফাংশান যাহা মত একটি ফাংশন সংজ্ঞায়িত করতে পারে. সাধারণত আপনি ($ foo বিন্যাস, $ বার) এবং তারপর বলে যাও যাহা সংজ্ঞায়িত করা হবে. কিন্তু যদি আমি এই কাজের জন্য, তাহলে তার মানে যাই হোক না কেন কল যাই হোক না কেন, যাই হোক না কেন কল baz, তাই প্রথম যুক্তি baz প্রেরণ পরিবর্তন করা যাবে. চলুন শুরু করা যাক $ foo বিন্যাস করবেন +; এবং এর ভিতর এখানে baz ($ আইটেম) না দেওয়া; এখন আমরা একটি ফাংশন আহ্বান করা হয়. আর্গুমেন্ট উল্লেখ করতে হয়, যার মানে হচ্ছে যে আমরা যদি এটা সংশোধন করুন আমরা যে কাজটা ইন পাশ করছি পরিবর্তন এবং এই আমরা আশা মুদ্রণ - যদি না আমি তছনছ বাক্যগঠন আপ - আমরা 2, 11 পেয়েছিলাম, তাই আসলে এটা মান বৃদ্ধি হয়. আমরা রেফারেন্স বিজ্ঞপ্তি 2 জায়গা প্রয়োজন. আমি যদি এই কি এর মানে কি? [ছাত্রদের] এটা পরিবর্তন করতে হবে. >> হ্যাঁ. আইটেম শুধুমাত্র অ্যারের মধ্যে মান একটি কপি. সুতরাং 2 আইটেম, কিন্তু পরিবর্তন অ্যারের ['একটি'] এখনও 1 করবে. অথবা যদি আমি কি এই না? এখন baz একটি কপি আইটেম হিসাবে প্রেরিত হয়. তাই যুক্তি 2 কপি করা হবে মান বৃদ্ধি, কিন্তু নিজেই 2 আইটেম যাও মান বৃদ্ধি করা হয়নি. এবং আইটেমটি অ্যারের বন্ধনী যাই হোক না কেন একই জিনিস, যাতে অ্যারের মান বৃদ্ধি করা হয়নি. তাই উভয় ঐ জায়গা প্রয়োজন. পিএইচপি সাধারণত এই বিষয়ে সুন্দর স্মার্ট. আপনি আমি রেফারেন্স উপেক্ষা করতে চান, মনে হতে পারে - এটি প্রকৃতপক্ষে ছিল psets এক একটি প্রশ্ন. এটা ছিল একটি questions.txt জিনিস যেখানে এটা বলেন, তাহলে কেন আপনি রেফারেন্স দ্বারা এই struct প্রেরণ করতে ইচ্ছুক হতে পারে? কী ছিল যে উত্তর? [ছাত্রদের] সুতরাং আপনি কিছু বড় কপি করতে হবে না. >> হ্যাঁ. একটি struct ইচ্ছামত বড় হতে পারে, এবং আপনি যখন একটি আর্গুমেন্ট হিসাবে পাস struct পারেন এটা যে সমগ্র struct যাও ফাংশন এটি পাস কপি করা প্রয়োজন, পক্ষান্তরে আপনি যদি শুধুমাত্র রেফারেন্স দ্বারা struct পাস তারপর এটি শুধু ফাংশন আর্গুমেন্ট হিসাবে একটি 4 বাইট ঠিকানা কপি করা প্রয়োজন. পিএইচপি হল একটি সামান্য বিট বুদ্ধিমতী যে. যদি আমি কিছু ফাংশন আছে এবং এটা আমি 1,000 জিনিস একটি অ্যারের পাস, কিন্তু এর অর্থ এটা ঐ জিনিস সব 1,000 কপি আছে যাচ্ছে যাও ফাংশন মধ্যে এটি পাস? এটি অবিলম্বে যে কি না. যদি এই ফাংশনের ভিতর এটি আসলে foo বিন্যাস পরিবর্তন করা যাবে না, তাই যদি ($ foo বিন্যাস === 'হ্যালো') ফিরে সত্য.; আমরা এই ফাংশন আর্গুমেন্ট ভিতরে আসলে কখনও পরিবর্তন লক্ষ্য করুন, যার মানে যাই হোক না কেন মধ্যে foo বিন্যাস হিসাবে কপি করা প্রয়োজন কখনও পাশ কারণ এটি পরিবর্তন না. তাই উপায় পিএইচপি কাজ হয় সবসময় আর্গুমেন্ট উল্লেখ করা হয় পাস যতক্ষন না আপনি আসলে এটি পরিবর্তন করার চেষ্টা করুন. এখন যদি আমি $ foo বিন্যাস + বলে; এটি এখন আসল foo এর একটি কপি এবং অনুলিপি করা সংশোধন করবে না. এই কিছু সময় সাশ্রয় করে. আপনি যদি এই বিপুল অ্যারের স্পর্শ না করে থাকেন, আপনি আসলে এটি পরিবর্তন করা না, এটি কপি করা না প্রয়োজন, পক্ষান্তরে যদি আমরা এই ampersand মানে এটা এমনকি কোনো কপি না করা এমনকি যদি আপনি এটি পরিবর্তন করবেন না. এই আচরণ কপি অন লিখতে বলা হয়. আপনি অন্যান্য স্থানে এটি, দেখতে পাবেন, বিশেষ করে আপনি যদি একটি অপারেটিং সিস্টেম কোর্স নিতে. অনুলিপি অন লেখার একটি চমত্কার চলিত প্যাটার্ন যেখানে আপনি কিছু একটি অনুলিপি করা প্রয়োজন হবে না যদি না আসলে এটি পরিবর্তন করা হচ্ছে. হাঁ. [ছাত্রদের] আপনি যদি পরীক্ষা ভিতরে বৃদ্ধি ছিল, তাই শুধুমাত্র 1,000 আউট 1 উপাদান পরিবর্তন করতে হবে? আমি নিশ্চিত না. আমার মনে হয় এটা সম্পূর্ণ জিনিস কপি করবে, কিন্তু এটি সম্ভব এটা যে যথেষ্ট স্মার্ট - বাস্তবিক, আমি কি চিন্তা করছি হয় আমরা একটি অ্যারের ভালো দেখায় যে ছিল কল্পনা: $ array2 = [ তারপর ইনডেক্স 'একটি' হল [1 2 3 4], এবং সূচক 'বো' র একটি অ্যারের হয় যাই হোক না কেন একটি অ্যারে. আমি সেই সমস্ত মধ্যে কমা প্রয়োজন. কল্পনা কমা আছে. তারপর 'গ' মান 3. ঠিক আছে. এখন কিছু বলতে আমরা 'baz ($ array2) করবেন; যেখানে baz রেফারেন্স দ্বারা এই সময় লাগবে না. সুতরাং $ foo বিন্যাস ['গ'] +; এটি যেমন একটি উদাহরণ যেখানে আমরা একটি আর্গুমেন্ট হিসাবে array2 হয় ক্ষণস্থায়ী এবং তারপর তা বৃদ্ধিশীল দ্বারা একটি অ্যারের নির্দিষ্ট সূচক পরিবর্তন হয়. আমি ভাল কোন ধারণা কি পিএইচপি করতে যাচ্ছে আছে. এটি সহজে সমগ্র জিনিস একটা কপি করতে পারেন, কিন্তু যদি স্মার্ট, এটি এই কি 'র একটি কপি যেখানে এই তার স্বতন্ত্র মান থাকবে করতে হবে কিন্তু এই একই অ্যারের 1,2,3,4 নির্দেশ করতে পারেন এবং এখনও এই একই অ্যারের নির্দেশ করতে পারেন. আমি এটি রহমান করব. আমরা এই অ্যারের মধ্যে পাস যেখানে এই লোক পয়েন্ট 3 এই লোক পয়েন্ট, [1,2,3,4] যাও, এই লোক বিন্দুতে [34, ...] এখন যে আমরা baz তা পার করছি, আমরা এই পরিবর্তন করা হয়. যদি পিএইচপি হয় স্মার্ট, এটা করতে পারেন - আমরা এখনও কিছু মেমরি কপি ছিল, কিন্তু যদি এই বিশাল নেস্টেড subarrays ছিল আমরা যারা কপি না প্রয়োজন. আমি যদি তাই এটি আছে কি, না জানি কিন্তু আমি যে সেটা কল্পনা করতে পারেন. এটি একটি চমত্কার C-এর উপর পিএইচপি বড় সুবিধা. পিএইচপি তোলে জীবন তাই একটা জন্য অনেক অনেক সহজ, কিন্তু আপনি কি ধরনের একেবারে ধারণা নেই কিভাবে কাউন্সিল সঞ্চালন করা হবে কারণ আমি বোরখা নীচে কোন ধারণা আছে যখন এটি জিনিস এইসব কপি তৈরীর এর, উহু, যে একটি ধ্রুবক সময় কপি করা হচ্ছে, এটি শুধুমাত্র 1 পয়েন্টার পরিবর্তন করতে যাচ্ছেন, এটি একটি কঠিন ridiculously রৈখিক কপি হবে? যদি এটি স্থান খুঁজে পাচ্ছেন না? এটা পরে গার্বেজ কালেকশন আরো কিছু স্থান পেতে চালানোর প্রয়োজন? এবং গার্বেজ কালেকশন ইচ্ছামত দীর্ঘ সময় লাগতে পারে. সি আপনি এই জিনিষ চিন্তা করতে হবে না. প্রতিটি একক লাইন আপনি লিখে কিভাবে এটি সঞ্চালনের দেয়া হবে প্রশংসনীয় অনেক কারণে হতে পারে. চলুন এই ফিরে. কত সুন্দর এটা যে আপনি হ্যাশ ফাংশান মোকাবেলা করতে হবে না, লিঙ্ক তালিকা, বা ওই জাতীয় কিছু? যেহেতু হ্যাশ টেবিল সহ কাজ হয় এখন তাই সহজ, এখানে একটা মজার ধাঁধা কাজ. নামক কোনো ফাইল এবং unique.php মধ্যে এটি খুলুন আপ একটি পিএইচপি প্রোগ্রাম লিখুন (একটি "স্ক্রিপ্ট" নামেও পরিচিত). আমরা তাদের স্ক্রিপ্ট কল ঝোঁক যদি তারা ছোট যে আপনি কমান্ড লাইনে রান. মূলত, কোন ভাষা যে আপনি কিন্তু আপনি এক্সেকিউটেবল চালানো চলুন না কম্পাইল কমান্ড লাইনে, আপনি যে এক্সেকিউটেবল স্ক্রিপ্ট কল করতে পারেন. আমি একটি সি প্রোগ্রাম আছে যে এই ভাল লিখতে পারেন, কিন্তু আমি এটি একটি স্ক্রিপ্ট থেকে প্রথম আমি এটা কম্পাইল এবং তারপর বাইনারি চালানোর না কল. কিন্তু এই পিএইচপি প্রোগ্রাম একটি স্ক্রিপ্ট কল আমরা চলুন. অথবা যদি আমরা Python অথবা পার্ল বা Node.js বা যারা যে কোনো এটা লিখেছে, আমরা তাদের সব স্ক্রিপ্ট কারণ আপনি কমান্ড লাইনে তাদের চালানোর কল চাই কিন্তু আমরা তাদের কম্পাইল না. আমরা কি এই চমত্কার দ্রুত হতে পারে. আমরা argv ব্যবহার করতে যাচ্ছি না. এর মাধ্যমে ঠিক করা যাক এই গাট্টা. এটি অনন্য কল করুন, একটি প্রোগ্রাম লিখতে. আপনি যে ইনপুট প্রতি লাইনে একটি শব্দ থাকতে হবে ধারনা করতে পারি. বাস্তবিক, argv চমত্কার ব্যবহার নগণ্য হবে. unique.php. প্রথম প্রথম জিনিস, আমরা যদি আমরা হয়েছে 1 কমান্ড লাইন আর্গুমেন্ট গৃহীত চেক করতে চান. শুধু হিসাবে আপনি argc এবং argv সি আশা করে, আমরা এখনও পিএইচপি যারা আছে. তাই আপনি যদি ($ argc! == 2) তারপর আমি একটি বার্তা বা কিছু মুদ্রণ মোকাবেলা করবে না. আমি প্রস্থান 1 ত্রুটির কোড, করব. আমি ফিরে আসতে পারে 1. কদাচ পিএইচপি এই রাষ্ট্র হয় আপনি যেখানে আমরা করছি - সাধারণত আপনি একটি ফাংশন একটি ফাংশন একটি ফাংশান দ্বারা একটি ফাংশন বলা দ্বারা একেই বলা হয় আপনি আছেন. এবং যদি কিছু গোলমাল এবং আপনি শুধু সম্পূর্ণভাবে সবকিছু থেকে প্রস্থান করতে চান, প্রস্থানের ঠিক প্রোগ্রাম শেষ. এই সি বিদ্যমান যদি একটি ফাংশন একটি ফাংশন আপনাকে একটি ফাংশন একটি ফাংশন আছেন এবং আপনার ঠিক প্রোগ্রাম বধ করতে চান, আপনি ফোন করে প্রস্থান করুন এবং এটি ঠিক করা থেকে প্রস্থান করতে পারেন. কিন্তু পিএইচপি এর আরও বিরল যে আমরা এই শীর্ষ পর্যায়ে রয়েছে. সাধারণত আমরা ফাংশন কিছু সাজানোর ভিতরে করছি, যাতে আমরা কল করে প্রস্থান করুন যাতে আমরা 1 টি জিনিস যা পরে বুঝতে ফিরে আপ না করার সময় একটি ত্রুটি আছে যাতে ফেরৎ আপ যদি স্বীকার করে যে একটি ত্রুটি ঘটেছে. আমরা মোকাবেলা করতে না চান, তাই (1) প্রস্থান; রিটার্ন (1); এই ক্ষেত্রে সমতুল্য হবে. তারপর কি আমরা খুলতে চাই আমরা fopen করতে চান. যুক্তি অনুরূপ চমত্কার চেহারা যাচ্ছি. আমরা fopen ($ argv [1], এবং আমরা পড়ার জন্য এটি খুলতে চান. চান যে কোন রিসোর্সকে যা আমরা চ কল ফেরৎ চলুন. এই দেখায় কিভাবে সি আছে তা ছাড়া আমরা ফাইল * না কাছে প্রশংসনীয় অনুরূপ. এর পরিবর্তে আমরা $ চ বলতে. ঠিক আছে. বাস্তবিক, আমি মনে করি এই এমনকি দেয় পিএইচপি ফাংশন নামক ফাইল হিসাবে একটি ইঙ্গিতটি আমাদের. পিএইচপি ফাইল. এই কি করতে হবে একটি অ্যারের মধ্যে একটি সম্পূর্ণ ফাইল পড়তে হয়. আপনি এটি fopen না এমনকি প্রয়োজন হবে না. এটা আপনার জন্য যে কাজ করে যাচ্ছে. সুতরাং $ লাইন = ফাইল ($ argv [1]); এখন ফাইল লাইনের সব লাইন আছে. এখন আমরা লাইনে সাজাতে চান. কিভাবে লাইন আমরা সাজাতে পারি? আমরা লাইন সাজাতে. এবং এখন আমরা তাদের বা যাই হোক না কেন মুদ্রণ করতে পারেন. সম্ভবত সবচেয়ে সহজ উপায় হল foreach ($ $ লাইন হিসাবে লাইন) $ echo লাইন; [ছাত্রদের] এমনকি আমরা সাজানোর মধ্যে কিছু উল্লেখ করে না লাইন ক্রুশ চান? এটি যেখানে ফাংশন সাজানোর (& $ অ্যারে) হিসাবে বাছাই করা হবে সংজ্ঞা. আপনি যখন ফাংশন কল আপনি এটি দ্বারা উল্লেখ না পাশ. এটা ফাংশন যে রেফারেন্স হিসাবে এটি গ্রহণ হিসাবে এটি সংজ্ঞায়িত করে. এটি আসলে ঠিক কি ভুল হয়েছে যখন আমরা আমাদের সার্ভার থেকে সব কিছু করা হলে আমরা 5.3 থেকে 5.4 গিয়েছিলাম. 5.4 যতক্ষণ না পর্যন্ত, এই ছিল পুরোপুরি যুক্তিসঙ্গত. একটি ফাংশন রেফারেন্স হিসাবে লাগবে, না আশা কিন্তু আপনি রেফারেন্স হিসাবে এটি পাস করতে পারেন তাই যদি ফাংশন এটি পরিবর্তন ঘটবে না, এখনও এটা পরিবর্তিত হচ্ছে. 5.4 এর হিসাবে, আপনি এই কাজ করতে অনুমিত করছি না. তাই এখন একমাত্র উপায় আপনি রেফারেন্স উপেক্ষা করা হয় যদি এটি স্পষ্টভাবে ফাংশন আছে. যদি আপনি তা পরিবর্তন করতে না চান, তাহলে $ অনুলিপি = $ লাইন এবং পাস কপি করতে হবে. তাই এখন লাইন সংরক্ষিত হবে এবং কপি পরিবর্তন করা হবে. php.unique.php. আমি কিছু বিশৃঙ্খলার সৃষ্টি করে থাকতে পারে. অপ্রত্যাশিত 'সাজান'. গিয়ে কিছু যা আমাদের জন্য এই আছে আছে এর. এটা এমন কি আছে না. লক্ষ্য করুন যখন আপনি যে ম্যানুয়াল প্রথম আর্গুমেন্টের একটি অ্যারের প্রত্যাশিত পড়া এবং এটি দ্বারা রেফারেন্স নেওয়া. কেন হয় এই সম্পর্কে অভিযোগকারী? যেহেতু আমি এখানে আছে এখনও এই ফাংশন সাজানোর যে আমি চান না. ঠিক আছে, php.unique.php. আমি এটি একটি যুক্তি না পাস কারণ আমি একটি ফাইল নেই. এটা test.php উপর php.unique.php. এখানে test.php সব একটি সুন্দর সাজানো ক্রম প্রিন্ট আউট. উল্লেখ্য যে ক্রম অনুসারে সাজানো একটি কোড ফাইল জন্য ধরনের অদ্ভুত কারণ আমাদের ফাঁকা লাইন সমস্ত প্রথম আসা যাচ্ছে তারপর আমাদের 1 টি স্তর indentations সব আসা যাচ্ছে তাহলে আমাদের কোন indentations সব আসা. হাঁ. >> সোর্স কোড জন্য [ছাত্রদের] সুতরাং রেফারেন্স দ্বারা প্রেরণ করা হত না? যে মান গৃহীত হয় সাধারণত? [Bowden] আপনি যখন একটি ফাংশন কল, এটি তা নির্ধারণ করে রেফারেন্স দ্বারা প্রেরণ করা হত না. এটা ফাংশন সংজ্ঞা নির্ধারণ করে যা কিনা তা উল্লেখ দ্বারা প্রেরণ করা হত. এবং খুঁজছেন ধরণের ফাংশন সংজ্ঞা এ অথবা এই সময়ে মাত্র খুঁজছেন, এটি দ্বারা যুক্তি রেফারেন্স লাগে. সুতরাং নির্বিশেষে কিনা তা আপনি উল্লেখ করে এটি নিতে চান, এটা আছে রেফারেন্স দ্বারা লাগবে. এটা স্থান অ্যারের পরিবর্তন করা যাবে. এটি অনুমোদিত নয়. আপনি এটি করতে অনুমতি দেওয়া হয় না. >> [ছাত্রদের] ওহ, ঠিক আছে. [Bowden] এই, সাজানোর যাও রেফারেন্স দ্বারা লাইন নিয়ে এটি পরিবর্তন করা হবে. এবং আবার, যদি আপনি এটা করতে না চান, তাহলে আপনি ধরণের একটি কপি করতে পারে. এমনকি এই ক্ষেত্রে, কপি হয় আসলে লাইনের একটি কপি না. এটা ঠিক একই জিনিস স্থানটিকে পর্যন্ত প্রথম এটি পরিবর্তন পরার, যেখানে প্রথম এটি হচ্ছে যাও সাজানোর কাজ পরিবর্তন করতে পারেন, যেখানে, কারণ এটা একটা কপি অন লিখুন, এখন অনুলিপি একটি অনুলিপি তৈরি করা যাচ্ছে. আপনি এটা করতে পারেন. এটা অন্যান্য জায়গা ampersand আপনি দেখতে পারেন. আপনি foreach loops এটা দেখুন, আপনি ফাংশন ঘোষণা এটা দেখুন, এবং আপনি যখন মাত্র ভেরিয়েবলের মান নির্ধারণের দেখুন. এখন আমরা এই করে কিছুই আছে সম্পন্ন কারণ কপি এবং লাইনগুলি আক্ষরিক একই জিনিস. আপনি লাইন ব্যবহার এবং অদলবদল করে কপি করা যাবে. আপনি আনসেট (কপি) করতে পারেন; এবং যে আছে আনসেট লাইন না, আপনি ঠিক একই জিনিস আপনার রেফারেন্স হারান. তাই এই পয়েন্ট হিসাবে এখন, লাইন শুধুমাত্র আপনার লাইন অ্যাক্সেস করতে পারেন. প্রশ্ন? হাঁ. বিষয় সম্পূর্ণরূপে বন্ধ [ছাত্রদের], কিন্তু আপনি সঙ্গে পিএইচপি বন্ধ হবে না - >> আপনি করবেন না. ঠিক আছে. [Bowden] আমি যতদূর এটা কুক্রিয়া তাদের বন্ধ বলতে যেতে হবে. যে সম্ভবত বিশেষত একটি স্ক্রিপ্টের মধ্যে একটি রঙ,, কিন্তু যাক এর কি যদি আমি এই তা দেখতে. যে কিছু করেনি. আমি যদি চেয়েছিলেন - [sighs] আমি একটা আর্গুমেন্টটি প্রেরণ করার প্রয়োজন. অঙ্কুর. আমি এটা বলা ভুল. একটি যুক্তি যাতে php.unique.php. এখন আমি এমনকি এই প্রয়োজন হয় না. আমি একটি বৈধ যুক্তি এটি পাস করব. এই মুদ্রিত যাই হোক না কেন এটা মুদ্রণ. আমি কপি এবং অনুলিপি মুদ্রণ'm বিদ্যমান নেই. তাই লাইন. সবকিছু মুদ্রিত, এবং তারপর এখানে নিচে এই সব আবর্জনা বিজ্ঞপ্তি, কারণ যে পিএইচপি কিছু হয় পিএইচপি ট্যাগ বাইরে না করছি করা আক্ষরিক মুদ্রিত যাও. এটা কেন এইচটিএমএল, এটা এত সুন্দর যে আমি div বাজে, বাজে কথা, বাজে কথা বর্গ বা যাই হোক না কেন তা করতে পারেন, বাজে কথা, বাজে কথা, বাজে কথা এবং তারপর কিছু পিএইচপি কোড এবং তারপর কি শেষ div না. এবং এখন এই মুদ্রণ আমি উপরে আমার চমৎকার div পেতে, যা পিএইচপি মুদ্রিত, নীচে div. বিপর্যয়মূলক যখন ভালো কিছু হয়ে যায়, যা অত্যন্ত সাধারণ, শুধু একটি ফাইল নীচে বিপথগামী newline. আপনি এটি একটি চুক্তি যে বড় মনে হবে না যতক্ষন না আপনি যে ব্রাউজার দিয়ে আসলে বিবেচনা - কিভাবে কাজ পুননির্দেশনা বা মূলত কোনো হেডার কাজ, যখন আপনি একটি ওয়েবসাইটে আপনার সংযোগ করতে এবং এটি ফেরত পাঠায় সব হেডার এবং এইসব জিনিস ভালো প্রতিক্রিয়া 200 বা প্রতিক্রিয়া বা পুনর্নির্দেশ যাই হোক না কেন, শুধুমাত্র হেডার পর্যন্ত বৈধ তথ্য প্রথম বাইট পাঠানো হয়. আপনি বার হাজার হাজার পুনর্নির্দেশ, কিন্তু যত তাড়াতাড়ি তথ্য প্রথম বাইট পাঠানো যায় আপনি আবার পুনর্নির্দেশ করছি অনুমিত না. আপনি যদি একটি ফাইল নীচে একটি বিপথগামী newline আছে এবং আসুন যে আপনি এই ফাংশান ব্যবহার এবং তারপর আপনি বলতে চান - এটা ফাইল অন্য যে index.php বলতে এবং আপনি কিছু require_once চলুন শুরু করা যাক - আমি এটি একটি ভাল উদাহরণ মনে করতে পারেন না. সমস্যা ঘটনা যখন নীচে এই লাইন প্রতিধ্বনিত হয়. আপনি এখনও প্রতিধ্বনিত আছে কিছু চাই না. যদিও আপনি কিছু প্রতিধ্বনিত হচ্ছে এ অভিপ্রায় করা হয় নি, কিছু প্রতিধ্বনিত হয়নি এবং এখন, তাই আপনার আর কোন হেডার পাঠাতে অনুমিত করছি না এবং আপনি অভিযোগ পেতে যাচ্ছেন. আপনি শুধুমাত্র যারা ক্লোজিং ট্যাগ প্রয়োজন নেই. যদি আপনি HTML এর দ্বারা কিছু পরিকল্পনা - এবং এটা পুরোপুরি যুক্তিসঙ্গত ডাউন করতে এখানে div যাই হোক না কেন এই সময়ে এবং তারপর আপনি আপনার বা করতে পারে তাদের অন্তর্ভুক্ত নয়. এটা সত্যিই কোনো ব্যাপার নয়. কিন্তু পিএইচপি স্ক্রিপ্ট এর বন্ধ বিরল. যখন সবকিছু হয় পিএইচপি, একেবারে সবকিছু, আপনি তা / বন্ধ আপনি এটি বন্ধ করা উচিত প্রয়োজন সত্যিই না. স্ট্রিং সঙ্গে লেনদেন হয় সি অনেক nicer পিএইচপি আপনি বা একক উদ্ধৃতি চিহ্ন দিয়ে একটি স্ট্রিং নির্দিষ্ট করতে পারেন. একক উদ্ধৃতি চিহ্ন দিয়ে আপনি "এস্কেপ" ক্রম ব্যবহার করতে পারবেন না. ক্রমাগত বাজে, বাজে কথা, বাজে কথা অব্যাহতি,. তাই printf পিএইচপি মধ্যে খুব বিরল. আর আমি মনে printf আমি যদি জিনিস কেমন চেয়েচিলাম ব্যবহার করেন - আপনি pset 5 ব্যবহৃত sprintf বা যাই হোক না কেন. কিন্তু আপনি 001.jpg এবং 002.jpg কাজ করতে চান. তাই আর যে সাজানোর জন্য যেখানে আমি আসলে টেক্সট আমি printf ব্যবহার করে ফরম্যাট করতে চান. কিন্তু অন্যথায় আমি স্ট্রিং সংযোগ ব্যবহার করেন. আমি সত্যিই printf ব্যবহার না. আমরা ঠিক করছি একক উদ্ধৃতি চিহ্ন এবং উদ্ধৃতি চিহ্ন বিবরণ মধ্যে পার্থক্যকারী. সবচেয়ে বড় পার্থক্য হল, একক উদ্ধৃতি চিহ্ন, এটা আক্ষরিক প্রিন্ট করা হবে. কোন গৃহস্থালি পিএইচপি ডাটা টাইপ আছে, অসদৃশ সি, তাই এই সমতূল্য এই যাও. ঐগুলি উভয় পংক্তি. এবং একক উদ্ধৃতি স্ট্রিং সম্পর্কে চমৎকার একটি বিষয় আমি বলতে পারে 'দুনিয়া হ্যালো!' বাজে কথা, বাজে কথা, বাজে কথা, $ $ Wooo. যখন আমি এই মুদ্রণ এটা এটা আক্ষরিক প্রিন্ট হবে কি হয়. চলুন আমাদের তরিতরকারি সব পরিত্রাণ পেতে. সুতরাং $ str1 প্রতিধ্বনি; এটা আক্ষরিক সেগুলো সব মুদ্রিত: ডলার চিহ্ন, backslash হবে, যা আপনি newlines হবে মনে - সেগুলো সব এটা আক্ষরিক ছাপে. কেবল জিনিস আপনি অব্যাহতি প্রয়োজন হয় একক উদ্ধৃতি চিহ্ন কারণ অন্যথায় তা একক উদ্ধৃতি চিহ্ন এর শেষদিকে মনে. উদ্ধৃতি চিহ্ন, সম্পূর্ণ ভিন্ন. আমরা ইতিমধ্যে সিনট্যাক্স হাইলাইটিং কি ভয়ঙ্কর সম্পর্কে ভুল যান এর উপর আমাদের cluing দেখুন. php.unique. অনির্দিষ্ট পরিবর্তনশীল: wooo কারণ এই একটি পরিবর্তনশীল নামক wooo হিসাবে ব্যাখ্যা করা হয়. ডাবল কোট আপনাকে ভেরিয়েবলের মধ্যে সন্নিবেশ - '$ Name = "রব" বলতে চলুন শুরু করা যাক; সুতরাং echo "হাই, আমার নাম হল '$ name!!"; এটি একটি পরিবর্তনশীল এই হিসাবে স্বীকৃতি দেয়. যখন আমি যে রান - এবং আমি একটি newline সন্নিবেশ করা - হাই, আমার নাম রব! এবং হ্যালো দুনিয়া! কারণ আমি wooo এর মুদ্রণ সরানো উপরে না. 1 পরবর্তী ধাপে আপনি কি করতে পারেন পর্যন্ত. $ অ্যারের = [1, 2, 3]; ? আমি যদি অ্যারের প্রথম সূচক মুদ্রণ করতে চান আপনি $ অ্যারের [0] না. সিনট্যাক্স হাইলাইটিং একটি খেই. না কি এই চালু করতে হবে? php.unique. হাই, আমার নাম 1! যা কি না আমি চেয়েছিলেন. সিনট্যাক্স হাইলাইটিং সম্পর্কে যাও lied. চলুন শুরু করা যাক চেষ্টা 'একটি' -> 1, 'খ' -> 2. এটা কিভাবে আমি তা লিখতে হবে. অপ্রত্যাশিত একক উদ্ধৃতি চিহ্ন (T_ENCAPSED বাজে, বাজে কথা, বাজে কথা, বাজে কথা, বাজে কথা). ধারণা করা হয় যে এটি এই স্বীকৃতি এর অ্যারের অংশ হিসাবে না. এটি এই স্বীকৃতি অ্যারে এর একটি চিঠি সূচীবদ্ধ হিসাবে না. আপনি যে কোঁকড়া ধনুর্বন্ধনী দ্বারা বেষ্টিত করে যেতে চাই, এবং এখন এই তরঙ্গায়িত বক্রবন্ধনী মধ্যে যা কিছু থাকে ইন্টারপোলেট করা হবে, যা শব্দ আমরা magically ঠিক জায়গায় মধ্যে এই ভেরিয়েবলগুলি ব্যবহার ঢোকানোর জন্য. এখন এই করছেন, php.unique, এবং হাই, আমার নাম 1! হিসাবে প্রত্যাশিত বা হাই, আমার নাম রব! তবে একটি বিষয় যে এর একক উদ্ধৃতি চিহ্ন সম্পর্কে চমৎকার ধরনের হয় যে - প্রক্ষেপক কিছু খরচ আছে. আপনি যদি উদ্ধৃতি চিহ্ন ব্যবহার, ইন্টারপ্রেটার এই স্ট্রিং যান উপর আছে, এমনটা নিশ্চিত করা যে, "ওহ, এখানে একটি ভেরিয়েবল. এখন আমি যে পরিবর্তনশীল এবং এটি পেতে এখানে সন্নিবেশ যাওয়া প্রয়োজন." এমনকি আপনি যদি কোন ভেরিয়েবল ব্যবহার করবেন না, কিছুই এইসব উদ্ধৃতি চিহ্ন ভেতরে ইন্টারপোলেট করা প্রয়োজন যাও, কিন্তু এখনও এটি হতে মন্থর কারণ উদ্ধৃতি চিহ্ন যেতে বেশী প্রয়োজন হবে যে প্রয়োজন ইন্টারপোলেট করা খুঁজছেন. তাই একক উদ্ধৃতি চিহ্ন একটি বিট দ্রুত যদি কিছুই ইন্টারপোলেট করা প্রয়োজন হতে পারে, এবং আমি একক উদ্ধৃতি চিহ্ন জন্য ব্যবহার এমনকি, 'হাই, আমার নাম' ঝোঁক. $ অ্যারের ['একটি'] যাইহোক. যে সমতুল্য কি আমরা আগে কখনো হতে যাচ্ছে. কিন্তু পছন্দের একটি ব্যাপার. আপনি যদি পিএইচপি ব্যবহার করছেন, তাহলে সম্ভবত গতি পার্থক্য সম্পর্কে যত্ন না. হয় তাদের আউট দিয়ে শুরু করতে যথেষ্ট কারণ নেই. চূড়ান্ত কোন প্রশ্ন? এমনকি আমরা আসলে এটা সব মাধ্যমে পাইনি, কিন্তু এই উপাদান ছিল বিরক্তিকর. শেষ জিনিস যে পিএইচপি এর ধরনের সুন্দর হয় যখন আপনি HTML এর সঙ্গে আচরণ করছেন, আপনি একটি পরিবর্তনশীল মুদ্রণ জন্য এটি একটি বিট, তাই সুন্দর শর্টকাট সিনট্যাক্স ব্যবহার করব. পিএইচপি এখানে নির্বাণ ছাড়া, এই সংক্ষিপ্ত ট্যাগ বলা হয়. আনুষ্ঠানিকভাবে হিসেবে পিএইচপি 5.4, এই অবচিত হয়েছে. আপনি পিএইচপি সুপারিশ করা হয়. এই এখনও সমর্থিত <যাতে ছোট ট্যাগ,? = এখনও পুরোপুরি সূক্ষ্ম. এটা ডিফল্ট দ্বারা সমর্থিত হয়, তাই আপনি এই হিসাবে ব্যবহার করতে চান করতে পারেন, এবং তারা চমত্কার সুবিধাজনক. কোন প্রশ্ন? ঠিক আছে. উত্কৃষ্ট থাকুন, সান দিয়েগো. [Chuckles] Bye. [Laughs] [সাধুবাদ] [laughs] [CS50.TV]