ডগ লয়েড: তাই আমরা করেছি সি কাজ অনেক সম্পন্ন, এবং সি একটি সত্যিই শীতল ভাষা এটি আপনাকে দেয়, কারণ সত্যিই আকর্ষণীয় ক্ষমতা আপনার প্রোগ্রামের মধ্যে নিম্ন স্তর. আমরা হিসাবে জিনিষ পেতে সাধিত সত্যিই মিনিটে মেমরি পৃথক বাইট. সত্যিই পয়েন্টার যে রিকল আমাদের যে নমনীয়তা অনুমতি দেয়. কিন্তু আমরা সবসময় থাকতে হবে না বিবরণের যে সূক্ষ্মভাবে শস্য স্তর আমাদের প্রোগ্রাম? সম্ভবত না, ঠিক আছে? আর আমরা আছে চলুন তাহলে হচ্ছে মধ্যে একটি ট্রেড বন্ধ সত্যিই, সত্যিই কাজ করতে সক্ষম মিনিট জিনিষ এবং সত্যিই, সত্যিই আমরা মনে করতে হবে না যে বড় জিনিস সম্পর্কে, আমরা বাস্তবায়ন করতে হবে না এই সত্যিই বড় ধারনা যদি তারা ইতিমধ্যে আমাদের জন্য নির্মিত করছি সাধারণত বড় বিল্ডিং জন্য প্রোগ্রাম বা বড় প্রকল্প, আমরা সম্ভবত পাশ দিয়ে ভুল করতে যাচ্ছেন আরো ভাষা স্টাফ সালে নির্মিত হচ্ছে আমাদের জন্য, পরিবর্তে হচ্ছে নিম্নস্তরের কাপড়. পিএইচপি সত্যিই আসে এবং যে যেখানে. এখন, কারণ এক আমরা CS50 মধ্যে পিএইচপি শেখান যে এটা ব্যাপকভাবে দ্বারা অনুপ্রাণিত হয় যে সি এবং বাস্তবিকই, আমার মতে, দুই সত্যিই আছে জনক প্রত্যেক যে আজকাল খুব সাধারণ. সি এবং পাতার মর্মর. তাঁরা জনক প্রত্যেক আছেন প্রত্যেক অন্যান্য আধুনিক প্রোগ্রামিং কারণ উন্নত হয়েছে যে ভাষা তারপর থেকে অনুপ্রাণিত হয় এক বা অন্যান্য সিনট্যাক্স দ্বারা. পিএইচপি সিনট্যাক্স অনুরূপ সি, প্রকল্প মত প্রত্যেক যেহেতু, উদাহরণস্বরূপ, এর জন্য যা আপনি, কথা শুনে থাকতে পারেন প্রচন্ডভাবে একটি ভাষা দ্বারা অনুপ্রাণিত হয় একটি পুরোনো ভাষা যা বলা পাতার মর্মর. আমরা শেখান কারণে তাই CS50 মধ্যে পিএইচপি যে, মৌলিকভাবে হিসাবে সি বুদ্ধিমান দ্বারা আপনি এই সময়ে কি হিসাবে, আপনি যা দেয় গোছগাছ পিএইচপি, অনেক উচ্চ স্তরের কিছু করার ক্ষমতা সি আছে আর, না হয় একটি হার্ডল অনেক, যদি আপনি ইতিমধ্যে আছে, কারণ সিনট্যাক্স মৌলিক ধারণা. সি প্রায় প্রায় হয়েছে এই সময়ে 45 বছর. পিএইচপি সম্পর্কে 20 বছর ধরে প্রায় হয়েছে. এবং যে 25 বছর , প্রোগ্রামারদের মধ্যে নির্ধারিত যে তারা অনেক would বরং, উচ্চ স্তরের ক্ষমতা আছে এবং ভুল ও সংগ্রামের মধ্যে 20 বছর পিএইচপি এবং অন্যান্য আধুনিক ভাষার নেতৃত্বে. পিএইচপি এর একটি মহান পছন্দ সফটওয়্যার ভাষা জন্য allow-- যে যেখানে আপনি কিন্তু যে সফটওয়্যার যে কিছু করার প্রয়োজন সি আসলে জটিল. সুতরাং উদাহরণস্বরূপ, কাজ সি স্ট্রিং সঙ্গে কারণ, খুব জটিল আমরা জানি, সি স্ট্রিং সত্যিই অক্ষরের শুধু অ্যারে. এটি একটি বিল্ট ইন ডেটা টাইপ না. অথবা সম্ভবত আরও মৌলিকভাবে, আমরা এমনকি সি আবরণ করা হয়নি কিছু, আপনাকে যা করতে হবে, তা হলে কী কিছু কম্পিউটার নেটওয়ার্কিং? ঠিক আছে? সি এটা করার ক্ষমতা রয়েছে, কিন্তু এটা যাতে এর গোপনীয় এবং আসলে কি তাই কঠিন. এটা যদি চমৎকার হবে না ভাষা একটি বিল্ট ইন, সহজ উপায় ছিল নেটওয়ার্কিং বাস্তবায়ন? আর পিএইচপি যে তোলে যে একটি ভাষা, অথবা, যে বেশ কিছুটা সমাধা. আমি আগেই বলেছি, পিএইচপি খুব প্রচন্ডভাবে অনুপ্রাণিত হয় সি দ্বারা বাক্য গঠন অনুরূপ. আর তাই এটি আশা করা উচিত এক থেকে অন্য পরিবর্তনকে কিছু তুলনায় একটু একটু নরম করে অন্য ভাষায় হতে পারে. পিএইচপি লেখা শুরু করতে, শুধু খুলুন .php ফাইল এক্সটেনশন সঙ্গে একটি ফাইল. টেকনিক্যালি এই নয় আসলে প্রয়োজন, কিন্তু আপনি সিনট্যাক্স মত জিনিষ চান যে ধরনের তাই, IDE তে হাইলাইট নাম, বা ভেরিয়েবলের নাম, ফাংশন, আপনি, ভাষা কীওয়ার্ড জানি একটি হাইলাইট হয় নির্দিষ্ট রং, আপনি সাধারণত সঙ্গে আপনার ফাইল নাম দিতে চান একটি নির্দিষ্ট ফাইল এক্সটেনশন. সুতরাং আমরা একটি .php দিয়ে আমাদের নামে ফাইল করেছি এক্সটেনশন, কিন্তু তারপর এছাড়াও পিএইচপি সঙ্গে, আমরা যে লিখতে সব পিএইচপি কোড ফাইল এই পিএইচপি সংযোজিত হতে হবে আমরা দেখতে যে বিভেদক এখানে পর্দায়. কৌনিক বন্ধনী? পিএইচপি শুরু করার. তারপর আমরা আমাদের পিএইচপি সব লিখুন আমরা মাঝে মধ্যে চান যে কোড. এবং তারপর ? কোণ বন্ধনী বন্ধ করতে. আমরা এই, তারপর না করলে কি ঘটতে যাচ্ছে? এটি বিপর্যস্ত যাচ্ছে না. এটা করা যাচ্ছে না সত্যিই আমাদের প্রোগ্রাম নিকুচি. কিন্তু এটা আছে যাচ্ছে না আমরা চাই যে প্রভাব. ঘটতে যাচ্ছে কি, সত্যিই, হয় আমরা চেষ্টা করি এবং এই প্রোগ্রাম চালানো হলে, যে সবকিছু না যারা বিভেদক মধ্যে আক্ষরিকভাবে প্রিন্ট আউট করা যাচ্ছে. এটা করা যাচ্ছে না আসলে কোড এক্সিকিউট, এটা যাচ্ছে শুধু আক্ষরিকভাবে এটি প্রিন্ট আউট. এখন কেন হয়? তাই সি পরিচিত কি একটি কম্পাইল ভাষা হিসেবে. আপনি সম্ভবত সাথে পরিচিত হন আপনার প্রোগ্রাম তৈরীর পদক্ষেপ, গ ফাইল এবং জ ফাইল বাঁক মেক সঙ্গে একটি এক্সিকিউটেবল মধ্যে, বিশেষ করে ব্যবহার আমাদের কম্পাইলার হিসেবে ঝনঝন. পিএইচপি, যদিও, না এই সমতুল্য আছে. পিএইচপি একটি বলা হয় ব্যাখ্যা ভাষা. আর এর অর্থ কি? ওয়েল, এটা আমরা রূপান্তর করতে হবে না মানে zeros এবং বেশী আমাদের সোর্স কোড পূর্বেই. বরং, একটি প্রোগ্রাম আছে, যা বলা হয় পিএইচপি এবং বুঝতে পারে যে পিএইচপি, সাজান সম্পর্কে মাছি এটি করতে পারেন. যে, সত্যিই ঠিক সঠিক নয় কিন্তু এটি একটি প্রশংসনীয় ভাল উপমা এর এর কি ঘটছে. এটা যারা দোভাষীর হচ্ছে মাছি শূণ্যসমূহ এবং বেশী. আর যদি তাই এটা জানে না কিভাবে কিছু প্রক্রিয়া, এটা জানে না, তাহলে কিভাবে প্রক্রিয়া পিএইচপি, তাহলে সম্ভবত ঠিক আছে, সেখানে যে টেক্সট লাগাতে চান? আপনি সম্ভবত কোড লাগাতে চেয়েছিল সেখানে, এটা PHP-- মধ্যে না হলেও পিএইচপি বিভেদক. But-- তাই এটা যাচ্ছে না আপনার জন্য এটি মুছে ফেলতে, এটা মূলত না ঠিক তা না বর্তমান অবস্থাই রেখে যাচ্ছে. সুতরাং এটা মুদ্রণ যাচ্ছে এটা পর্দায় আউট. এটি একটি খারাপ মত এই মনে জিনিস, কিন্তু আসলে তা সত্যিই হতে যাচ্ছে ভাল জিনিস, আমরা করব আমরা যে বিষয়ে কথা যখন দেখতে পিএইচপি ওয়েব ডেভেলপমেন্ট, এটা মানে, কারণ আমরা যা করতে পারেন পিএইচপি এবং এইচটিএমএল ছড়ান. আমরা তাদের একসঙ্গে ব্যবহার করতে পারেন আরো একটি ডায়নামিক ওয়েব পাতা তৈরি. কিন্তু যে আরো পিএইচপি ওয়েব ডেভেলপমেন্ট ভিডিও. সুতরাং পিএইচপি সিনট্যাক্স কি? যে এই ভিডিও সব সম্পর্কে কি. এই ব্যাপারে কথা বলা যাক. সুতরাং, ভেরিয়েবল শুরু করার. পিএইচপি ভেরিয়েবল অস্তিত্ব. শুধু বড় দুটি আছে সি থেকে পার্থক্য প্রথম আছে যে কোন ধরনের সুনির্দিষ্টভাবে. আমরা কোন int বলার আছে না গৃহস্থালির কাজ, ভাসমান, যে সব উপাদান. আমরা আর যে কাজ করতে হবে না. পিএইচপি একটি আধুনিক ভাষা. এটা আপনি আছেন কি চিন্তা করতে পারেন না বা ভাল করতে চেষ্টা আপনাকে যা করতে চেষ্টা করছেন কি হিসাবে অনুমান. তাই যে বেশ চমৎকার. অন্যান্য জিনিস সব পরিবর্তনশীল যে হয় নামের একটি ডলার চিহ্ন দিয়ে শুরু করতে হবে. যে ব্যবহার পেতে শুধু কিছু. এটা কারণ, একটু অদ্ভুত পিএইচপি বুঝতে পারেন, যাতে এটি কি একটি পরিবর্তনশীল এবং কি নয়. তাই প্রত্যেক পরিবর্তনশীল নাম একটি ডলার চিহ্ন দিয়ে শুরু হয়. তাই সি আমরা কিছু বলতে পারে এই মত, int x = 54. আমরা পিএইচপি আর যে কাজ করতে হবে না. আমরা শুধু এক্স = 54 $ বলতে পারেন. আর আমরা সি, উদাহরণস্বরূপ, বলতে পারে, আমরা CS50 জ পাউন্ড-অন্তর্ভুক্ত ছিল হেডার ফাইল, আমরা বলতে পারে স্ট্রিং ফ্রেইজ = "এটি CS50." আমরা যদিও, পিএইচপি মধ্যে তা করতে হবে না. আমরা শুধু $ ফ্রেইজ বলতে পারেন = "এটি CS50." এবং সত্য, স্ট্রিং এখন পিএইচপি একটি বিল্ট ইন ডেটা টাইপ, বরং বা পিএইচপি বোঝে একটি স্ট্রিং কি. এটি একটি অ্যারে থেকে পৃথক এর অক্ষরের এটা সি মত সমস্ত আপনার প্রিয় সি থেকে শর্তাধীন বিবৃতি এখনও আপনি ব্যবহার করার জন্য পাওয়া যায়. তাই সেখানে কোন বড় রূপান্তর. আমরা থাকতে পারে কথাই পারেন এই মত বিবৃতি যদি. $ Y 43 তাহলে, বা $ Z = 15. সুতরাং যে বেশ সহজবোধ্য. আমরা যদি অন্য থাকতে পারে. আমরা যদি এবং অন্য থাকতে পারে. আর কিছু লক্ষ্য সুন্দর এখানে চমৎকার, এবং এই যারা এক ধরণের সি, নোটিশ বনাম পিএইচপি সুবিধার কি ফাংশন আমরা এখানে ব্যবহার করছি না? আমরা একটি তুলনা == ব্যবহার করছেন পরিবর্তনশীল, $ নাম, একটি পংক্তি. আমরা ঠিক আছে, সি যে করা যেত না? আমরা নামক একটি ফাংশন ব্যবহার করা ছিল StrComp বা StrEndComp বা কোন তার সংশ্লিষ্ট কাজিন. তাই ইতিমধ্যে আমরা এই সুবিধার দেখতে. আমরা কিছু করতে হবে না মূর্খ হিসাবে অথবা সম্ভবত unintuitive নামক একটি ফাংশন কল হিসাবে StrComp আমি পরীক্ষা করতে চান তাহলে কিনা একটি মান একটি স্ট্রিং সমান. আমি শুধু, সমান সমান ব্যবহার করতে পারে আমি অন্য কিছু করতে পারে. সুতরাং একটি সুবিধা আছে. কখনও কখনও, উপায় দ্বারা, আপনি পারে elseif, অন্যথায় যদি হিসাবে একটি শব্দ দেখতে. এবং যে পাশাপাশি পিএইচপি ঠিক আছে. তাই মাঝে মাঝে আপনাকে দেখতে পারে. এটা একটা টাইপো নয়. পিএইচপি আসলে elseif বোঝে. আমি জানি না কেন তারা যে বাস্তবায়ন করার সিদ্ধান্ত নিয়েছে, কিন্তু আমরা অনেক বার দেখা করেছি এ পর্যন্ত আমাদের ভিডিও জুড়ে, আমরা প্রোগ্রামারদের তাহলে এটা ভালবাসা আমরা দ্রুত কাজ করতে পারেন তাই যে স্থান পরিত্রাণ দৃশ্যত একটি বড় সুবিধা হল. সুতরাং যে যদি ও elseif এর. আমরা তিন অপারেটর আছে, রিকল প্রশ্ন চিহ্ন কোলন, অন্যথায় যদি সত্যিই ছোট ফর্ম জন্য বা শর্তাধীন শাখাবিন্যাস. এবং দৃশ্যত, এই মধ্যে, আমরা কি এখানে কাজ করার চেষ্টা করছেন পরিবর্তনশীল ধার্য করা হয় সত্য বা মিথ্যা হয় $ চিঠি, $ Var কিনা তার উপর নির্ভর করে একটি বর্ণানুক্রমিক চরিত্র. সুতরাং এই isalpha হয় প্রায় একই রকম আমরা সি থেকে এর সাথে পরিচিত হন যে এই পিএইচপি সমতুল্য সাজান. ফাংশন দৃশ্যত হয় ctype_alpha বলা, কিন্তু যে আমরা পিএইচপি কিভাবে এটা করবেন না. সুতরাং যদি এই সব হতে হয় যাচ্ছে $ Var একটি বর্ণ, $ চিঠি সত্য. $ Var একটি চিঠি নয়, তাহলে $ চিঠি মিথ্যা. আমরা এখনও বাছাই বিবৃতি আছে. আমরা সি থেকে যারা পাশাপাশি প্রত্যাহার. সেখানে খুব শীর্ষে, যে আমরা কি কিভাবে int পেতে বা স্ট্রিং পেতে ভালো কিছু. সুতরাং পিএইচপি বানানো হয়েছে. আমরা আর CS50 লাইব্রেরি প্রয়োজন হবে না. আমরা শুধু ফাংশন readline ব্যবহার করতে পারেন. কি যে করতে যাচ্ছে মুদ্রণ বার্তা আউট, "তোমার রাষ্ট্র, , দয়া করে "এবং তারপর প্রম্পট জ্বলজ্বলে ইনপুট ব্যবহারকারীর জন্য অপেক্ষা কিছু তথ্য. এখন কি আর লক্ষ্য আমরা সুইচ সঙ্গে কাজ করতে পারেন. আপনি আগে এটা ব্যবহার করেছি, আপনি যে সুইচ প্রত্যাহার হতে পারে পূর্ণসংখ্যার প্রায় কাছাকাছি সীমাবদ্ধ এবং অক্ষর, কিন্তু এখন আমরা স্ট্রিং ব্যবহার করতে পারেন. এবং বাস্তবিকই, সুইচ বিবৃতি পিএইচপি বেশ কিছুটা নমনীয় সি থেকে তার চাচাত ভাই বেশী Loops. শুধু কন্ডিশন ভালো, সব আপনার পুরানো ফেভারিটে এখনও আছে. আমরা নির্ভর করে যখন loops আছে 1 থেকে এই ক্ষেত্রে 100. আমরা যখন loops না আছে যে, 1 থেকে 100 পর্যন্ত গুনতে এবং আমরা loops জন্য আছে যে 1 থেকে 100 পর্যন্ত গুনতে থাকো. তাই সেখানে কোন বড় লিপ. সিনট্যাক্স প্রশংসনীয় ঠিক একই অনেক, এখন আমরা ব্যবহার করছি ছাড়া ডলার চিহ্ন পরিবর্তনশীল পরিবর্তে পূর্ণসংখ্যা ভেরিয়েবল ঘোষণা বা আমাদের কাউন্টারের জন্য যে ভালো কিছু. কিছু একটা পেতে এখানে যেখানে যদিও, সি আর অনেক বেশি ভালো. অ্যারে. সুতরাং আমরা ছিল রিকল যখন যাতে, সি বিষয়ে কথা আমাদের বড় হয়ে যায় এবং সঙ্কুচিত জন্য তথ্য সেট, আমরা ডিফল্ট এর বাছাইয়ের জন্য প্রয়োজন একটি লিঙ্ক তালিকা এই ধারণা, সি অ্যারে মাপ সংশোধন করা হয়েছে কারণ. আমরা তাদের সঙ্কুচিত করতে পারে. আমরা তাদের হত্তয়া না পারে. আমরা মেমরি বরাদ্দ করা ছিল এবং এই সব পাগলামি না বা লিঙ্ক তালিকা, ব্যবহার, যা বেশ কিছুটা জায়গা নিয়ে. কিন্তু পিএইচপি, অ্যারে আর মাপ নির্দিষ্ট না. তারা হত্তয়া পারেন এবং তারা সঙ্কুচিত করতে পারেন. তাই আবার, এই 20 বছর অস্তিত্ব সি এর প্রথম রিলিজ মধ্যে এবং প্রথম রিলিজ পিএইচপি, আমরা, আপনি জানেন, যে সিদ্ধান্ত নিয়েছে এটা সত্যিই মহান হতে হবে আমরা এই কাজ করতে পারে. আর তাই আমরা এই বাস্তবায়িত. সুতরাং পিএইচপি অ্যারে মধ্যে সংশোধন করা হয় না আকার, এবং পিএইচপি না, কারণ সত্যিই প্রোগ্রামার ফ্রন্ট সম্মুখীন আছে ধরনের ধারণার, আমরা তথ্য ধরনের মিশ্রিত করা যাবে আমাদের অ্যারে, খুব. সুতরাং আমরা এমনকি সব ব্যবহার করতে হবে না পূর্ণসংখ্যার বা সব ভাসমান পয়েন্ট, সকলে একটি মিশ্রণ থাকতে পারে একটি অ্যারের মধ্যে বিভিন্ন ধরণের. একটি অ্যারে ডিক্লেয়ার অনেকটাই অকপট. এটা শুধু অন্য কোন চলক মত. $ Nums = অ্যারের (1, 2, 3, 4), অ্যারের একটি ফাংশন হচ্ছে যে পিএইচপি পাতাটা যে আপনার জন্য একটি অ্যারে নির্মাণ করা হবে. এই চারটি মান একটি অ্যারের সৃষ্টি, এই ক্ষেত্রে নম্বর, $ nums বলা. এবং তা করতে একাধিক উপায় আছে. আর আমরা চলুন এই পিএইচপি অনেক দেখতে. পিএইচপি বিভিন্ন দ্বারা উন্নত করা হয়েছে মানুষ বৃদ্ধি এবং বৃদ্ধি এবং বৃদ্ধি এবং. সাধারণত আছে না মাত্র দুই বা পিএইচপি কিছু করতে তিনটি উপায়ে, সাধারণত 10 বা 20 এর মত আছে. এখানে শুধু আরেকটি সাধারণ একটি অ্যারে ডিক্লেয়ার করতে হবে. $ Nums = বর্গাকার বন্ধনী 1, 2, 3, 4. তাই এই ধরণের সি এর কোণ এর অনুরূপ বরং, কোঁকড়া বক্রবন্ধনী স্বরলিপি br--. $ - বা এটা কোন int nums বর্গ হতে হবে বন্ধনী কোঁকড়া বক্রবন্ধনী 1, 2, 3, 4 সমান. পিএইচপি এটি $ nums = বর্গক্ষেত্র বন্ধনী 1, 2, 3, 4. কিন্তু এই উদাহরণ উভয় আমাকে এখানে দিতে এই ক্ষেত্রে ইন্টিজার চার একটি অ্যারের. আমি এখন কিছু কর্মপ্রণালী কি চান? আচ্ছা ঠিক আছে আমি $ nums 4, বলতে পারেন যা আবার, আমরা এখনও এখানে 0 থেকে গণনা করছি পিএইচপি, পঞ্চম হবে অ্যারের উপাদান. আমি শুধু এটুকু বলতে পারি. আমি একটি seg ভোগে যাচ্ছি না আমার অ্যারের শুধুমাত্র কারণ, দোষ যে মিটমাট হত্তয়া যাচ্ছে. একেবারে ঠিক, বেশ চমৎকার? এবং বাস্তবিকই, আমি এমনকি প্রয়োজন হবে না আমি এটা লাগাতে চান যেখানে উল্লেখ করুন. আমি শুধু এই এবং মাত্র বলতে পারেন ডান প্রান্ত থেকে এটি নেভিগেশন ট্যাক, বা আমি এমনকি শুধু পারা $ nums 20 বা 1,000 বলে. এটা কোন ব্যাপার না. এটা এখনও ঠিক করতে যাচ্ছে শেষে ডানদিকে এটা ট্যাক. তাই আমি হত্তয়া, এবং আমরা করছি as-- পারেন এখানে এটি আবরণ যাচ্ছে না, কিন্তু আমি করান বা স্ট্রিপ পাশাপাশি অ্যারের বাইরে উপাদান, এবং অ্যারের মিটমাট সঙ্কুচিত হবে যে এখন অনুপস্থিত বা খালি জায়গা. কর্মপ্রণালী অন্য উপায় আছে একটি অ্যারের সম্মুখের কিছু, যা array_push নামক একটি ফাংশন. তাই আবার, হচ্ছে শুধু এই ধারণা কিছু বিভিন্নভাবে কাজ করতে সক্ষম. সুতরাং আমরা এখন তিনটি ভিন্ন উপায়ে দেখা করেছি একটি অ্যারের সম্মুখের অন্য উপাদান কর্মপ্রণালী. সুতরাং এই অন্য উপাদান যোগ করে $ nums অ্যারে শেষে. আর আমরা আমাদের তথ্য ধরনের মিশ্রিত করা যাবে. তাই আমি না একটি অ্যারে আছে পারে 1, 2, 3, 4, কিন্তু আছে 1 টি, সত্য, 3, 4, যেখানে সত্য একটি বুলিয়ান হয়, এবং তারপর আমি অন্য উপাদান কর্মপ্রণালী চান যে অ্যারের, সম্ভবত একটি পংক্তি, স্ট্রিং "পাঁচ," আমি যে কাজ করতে পারে. আর এখন আমার অ্যারের would সত্য 1, 3, 4, পাঁচ হতে. শব্দ পাঁচটি, না পূর্ণসংখ্যা 5. তাই সেখানে নমনীয়তা অনেক. নমনীয়তা পায় আরও ভাল করে, যদিও, পিএইচপি কিছু সমর্থনের কারণ একটি মিশুক অ্যারে বলা. আর আমরা সাজান অস্পষ্টভাবে সায়ীদ সি সম্পর্কে মিশুক অ্যারে হ্যাশ টেবিল প্রেক্ষাপটে, কারণ এ কি মিশুক অ্যারে সত্যিই সব হয় কী করছেন সম্পর্কে মান জুড়ি ম্যাপিং. আর যদি এই ক্ষেত্রে, keys-- আমরা, সি থেকে অ্যারে সাথে পরিচিত হন কী সূচক সংখ্যা. 0, 1, 2, 3. আর মান আমরা যে এটি কি হয় অ্যারের 0, অ্যারে 1, তাই অ্যারের 2, এবং. তাই কি ইনডেক্স হয়, এবং মান যে অ্যারে অবস্থানে কি, যে সূচক দ্বারা নির্দিষ্ট. কিন্তু পিএইচপি, আমরা এই কাজ করতে হবে না অ্যারের 0 ধারণা, অ্যারে 1, অ্যারের 2 আর. আমরা এখন প্রকৃত শব্দ ব্যবহার করতে পারেন মান কি ম্যাপ. এবং তাই আমি এই ভালো কিছু বলতে পারে. আমি ব্যবহার করে একটি অ্যারে তৈরী করতে পারে নিম্নরূপ বর্গাকার বন্ধনী সিনট্যাক্স. $ Pizzas = বর্গাকার বন্ধনী "পনির" এবং তারপর ডবল তীর স্বরলিপি এই সাজানোর, 8.99, "পেপারনি,", 10.99-- 9.99 তীর এবং তাই. আর তাই এখানে কি ঘটছে? আমি আসলে কি করছি? আমি কী মান জোড়া ম্যাপিং তৈরি করছি. সুতরাং পরিবর্তে বলছে, উদাহরণস্বরূপ, পিজা 0, টুকরা 1, পিজা 2, আমি এখন pizzas বলতে পারেন পনির, পিজা পেপারনি, এবং মান পড়ুন তাদের সঙ্গে যুক্ত. তাই এখানে আমাদের কী সবুজ হয়. পনির, পেপারনি, উদ্ভিজ্জ, মহিষ মুরগির. এখানে যে তীর এই কী মান জোড়া ম্যাপিং. এবং তারপর এখানে মান যে অ্যারে অবস্থানে. সুতরাং এটা অ্যারের 0 8.99 সমান বলছে মত. কী হল 0. মান 8.99. আমি এখন অ্যারের পনির বলে, অথবা এই করতে পারেন যদি পিজা পনির, পনির, চাবিকাঠি এবং আমি এ কি খুঁজে পিজা পনির 8.99. যে আমি সেখানে এটি যে মান. তাই আমি কিছু বলতে পারে. $ পিজা পনির = 7.99. আমি একটি বিক্রয় হচ্ছে না বলে. আমি ড্রপ করতে চান dis-- চান পনির পিজা দাম. অথবা আমি সবজি ব্যবহার করতে পারেন পিজা একটি শর্ত অংশ হিসাবে, অথবা আমি একটি নতুন উপাদান যোগ করতে পারেন আমার অ্যারে, শুধু আমি পূর্বে না পারে মত. আমি এই জন্য একটি নতুন উপাদান যোগ করতে পারেন কী "বেকন" সঙ্গে মিশুক অ্যারে এবং মান 13,49. কিন্তু এই ধরণের, একটি সমস্যা দেখা হয়েছে আপনি একটি দ্বিতীয় জন্য এটি সম্পর্কে চিন্তা. কিভাবে আমরা এই অ্যারে মাধ্যমে পুনরুক্তি হবে? রাইট? সি, আমরা শুধু একটি হবে লুপ জন্য, সাধারণত, যে 0 থেকে চালানো হবে 1 বিয়োগ অ্যারের সাইজ. অ্যারে এ এন উপাদান আছে, বৈধ সূচী এন বিয়োগ 1 0 হয়. সুতরাং আমরা লুপ জন্য একটি ব্যবহার করতে পারে প্রতি একক উপাদান মাধ্যমে পদধ্বনি. কিন্তু যে সত্যিই না যদি আর, ডান? এখন আমরা কী মান জোড়া আছে যেখানে কী শব্দ হয় যেখানে ম্যাপিং, কিভাবে আমরা সব শব্দের উপর বারবার? ওয়েল, সৌভাগ্যবশত, পিএইচপি আছে একটি উপায়, খুব এই মোকাবেলা করার জন্য এবং তাই আমরা ফিরে তিড়িং লাফ হবে একটি দ্বিতীয় জন্য loops যাও লুপ একটি চতুর্থ ধরনের পরিচয় করিয়ে দিতে যে পিএইচপি একটি foreach লুপ বলা রয়েছে. আর তা একটি foreach লুপ আছে হয় এটি মূলত একই ধারণা. আপনি অ্যারের যে কোন ধরণের জন্য এটি ব্যবহার করতে পারেন. কিন্তু এটা মূলত এর লুপ জন্য একটি হিসাবে একই ধারণা, পরিবর্তে ব্যবহার ছাড়া সূচক সংখ্যা, আপনি শুধু এই অদ্ভুত সিনট্যাক্স যেখানে আছে আপনি প্রতি একক উপাদান কল এই লুপ উদ্দেশ্যে একটি নাম. তাই এই ক্ষেত্রে, foreach ($ কী হিসাবে $ অ্যারে). মূলত, যে মন্তব্য নোট হিসাবে, যে foreach লুপ এর ভিতরে, এটি প্রতি একক পুনরালোচনা যাচ্ছে সাধারণত যা $ অ্যারে, উপাদান একটি মিশুক অ্যারে হতে যাচ্ছে, কিন্তু সত্যিই অ্যারের যে কোন ধরণের হতে পারে আপনি পিএইচপি চান যে. আর যে প্রত্যেক সময় লুপ জন্য একটি আপনি পারে $ অ্যারের বর্গাকার বন্ধনী বলেন $ আমি, আপনি কেবল $ কী বলতে পারে. সুতরাং যে $ কী ভাষার জন্য একটি alias হয়ে আপনার পিএইচপি মিশুক অ্যারের সূচক, এবং যাতে আপনি যে মত এটি ব্যবহার করতে পারেন. সুতরাং উদাহরণস্বরূপ, আমরা করেছি এখন আমাদের pizzas অ্যারে পেয়েছিলাম. আমি যে ধরনের tucked করেছি সেখানে কোণার মধ্যে তাই আমরা একটি দ্রুত উদাহরণ না করার জন্য এটি ব্যবহার করতে পারেন. আমি যেমন foreach ($ পিজা যদি বলি $ পিজা), ভাল, কি ঘটছে? ওয়েল, আমি প্রতি মাধ্যমে পুনরুক্তি করা যাচ্ছে না অ্যারের $ pizzas মধ্যে একক উপাদান, এবং তাই করছেন, আমি ফোন করতে যাচ্ছি প্রতিটি উপাদান, যখন আমি ভিতরে আছি লুপ জন্য যে শরীরের, পিজা $. সুতরাং যে একটি কতকাংশে স্ট্যান্ড ইন, রিকল, যে $ পিজা একটি স্ট্যান্ড ইন বলছে জন্য $ Pizzas বর্গাকার বন্ধনী $ আমি আমরা লুপ, যেখানে আমরা একটি ব্যবহার করা হয়েছে কিনা এই ক্ষেত্রে $ আমি = 0, থেকে যেতে পারে, $ আমি 3 =. আমরা কী মান জোড়া আছে না করে থাকেন তাহলে এখানে, এই উপাদান 0, 1, 2, 3 হবে, এবং আমরা যেতে লুপ জন্য একটি ব্যবহার করতে হবে $ পিজা 0, $ pizzas 1, $ পিজা 2, $ Pizzas 3. তাই এখন শুধু পিজা বদলে ডলার যে ব্যক্তি কী জন্য. তাই কি এই প্রিন্ট আউট করা যাচ্ছে? আমি $ পিজা প্রিন্ট আউট করছি. আমি কি at-- খুঁজে যাচ্ছি আমি আমি $ pizzas $ প্রিন্ট আউট হলে? রাইট? আমি প্রিন্ট আউট করা যাচ্ছে না, তাহলে পিজা এর ith উপাদান, কি আমি প্রিন্ট করতে যাচ্ছি? আমি প্রিন্ট আউট করা যাচ্ছে না যে অবস্থানে মান, ডান? আমরা করছেন হলে মত সি প্রেক্ষাপটে এই, আমরা সাধারণত আমাদের ইটারেটরের ব্যবহার করবেন না পরিবর্তনশীল, আমি = 0, আমি কম 3 int আমি 0, 1, 2, 3 প্রিন্ট আউট, ++. আমরা অ্যারে 0 মুদ্রণ করছি অ্যারে 1, অ্যারের 2, অ্যারের 3. আর তাই এই কপি করে প্রিন্ট আউট কি এই হয়. এটা মূল্য তালিকা. 8.99, 9.99, 10.99, 11.99. এখন এখানে একটি দ্রুত নোট. একটি foreach লুপ অগত্যা না যাতে কিছু প্রিন্ট আউট. এটা নিশ্চিত না. এটা সাধারণতঃ. এটি সাধারণত যাতে উপর ভিত্তি করে এর যা উপাদান অ্যারের মধ্যে যোগ করা হয়, তাই শুধু মনের মধ্যে যে বহন করে. এটা যাতে না হতে পারে. কিন্তু একটি foreach লুপ পুনরুক্তি হবে প্রতি একক উপাদান জুড়ে প্রশ্নে অ্যারের. এই ক্ষেত্রে, আবার, যে অ্যারে $ পিজা হয়. আমি যদিও, সিনট্যাক্স পরিবর্তন করতে পারেন আমি কী এবং মান উভয় চান. পরিবর্তে $ pizzas বলছে $ পিজা হিসাবে, আমি এই বলতে পারেন. আর আপনি আমি করেছি এ শুধু চেহারা যদি এখানে সবুজ হাইলাইট, এটি একটি কী মান জোড়া ম্যাপিং মত দেখায়. তাই তোমাদেরকে যদি আপনি না হয়, এমনকি যদি সম্পূর্ণরূপে এটা করতে যাচ্ছে কি নিশ্চিত, আপনি সম্ভবত আপনি অনুমান করতে পারেন যে $ টপিং যাচ্ছে এই ক্ষেত্রে কী করা এবং $ মূল্য মান হতে যাচ্ছে. তাই আমি এখন প্রতিটি উপাদান বদলে করছি $ একটি কী মান জোড়া হিসাবে pizzas, এবং এখন আমি কী পাঠাতে পারেন এবং মান, যা হতে পারে উপকারে, উদাহরণস্বরূপ, যেমন অনুসরণ করে. "একটি সম্পূর্ণ" - এই অনেক হয় মুদ্রণ এখানে "একটি সম্পূর্ণ" ঘটনাসমূহ টপিং তারপর মূল্য, এবং "পিজা $ খরচ" আমি একটি নির্দিষ্ট সময়ের এবং একটি ব্যাকস্ল্যাশ এন আউট প্রিন্ট করা হবে. সুতরাং এখন, নোটিশ আবার আমি এক্সেস আছে একটি কী, $ টপিং, এবং একটি মান, $ মূল্য. সুতরাং আপনি কি এই অনুমান করতে পারেন প্রিন্ট আউট করা যাচ্ছে? মুদ্রণ বিবৃতির একটি অনেক আছে, কিন্তু শুধুমাত্র এক ব্যাকস্ল্যাশ এন আছে, তাই এটা কিছু প্রিন্ট করতে যাচ্ছে কোড একটি একক লাইন উপর একটি entire--. আমি কী পাঠাতে পারেন তাহলে এবং মান, তাহলে এখন, পরিবর্তে শুধুমাত্র সক্ষম হচ্ছে দাম প্রিন্ট আউট, আমি ভালো কিছু প্রিন্ট আউট করতে পারেন. "একটা গোটা পনির পিজা $ 8.99 খরচ." এবং এখন আমি keys-- সব ব্যবহার করছি পনির, পেপারনি, উদ্ভিজ্জ, Buffalo chicken-- এবং মান. 8.99, 9.99, 10.99, 11.99 সুতরাং যে শুধু একটি ভিন্ন উপায় একটি foreach লুপ করতে যে পরিবর্তে শুধু, আপনি মান অ্যাক্সেস প্রদান এটি আপনাকে দেয় তোমাদেরকে তা শুধু দেয় কী এবং মান প্রবেশাধিকার. সুতরাং তথ্য প্রিন্ট আউট. আমি ইতিমধ্যে এটি একটি দম্পতি কাজ করেছি বিভিন্ন উপায়ে, আপনি লক্ষ্য করে থাকবেন পারে. দুটি ফাংশন আমরা প্রাথমিকভাবে করেছি মুদ্রণ ও ইকো দেখা হয়. এবং প্রায় কাছাকাছি সব ইন্টেন্ট জন্য এবং উদ্দেশ্য, তারা ঠিক একই আছেন. They're-- খুব সূক্ষ্ম আছে এমনকি অধিকারী না যে পার্থক্য মূলত সর্বত্র মধ্যে পেয়ে, কিন্তু আপনি সম্ভবত ব্যবহার করতে পারেন আপনি প্রিন্ট ব্যবহার করতে পারেন পাশাপাশি প্রতিধ্বনি. আর মাত্র দুটি নয়. পিএইচপি বিভিন্ন অনেক আছে জিনিষ প্রিন্ট আউট করার উপায়, এবং এটি একীভূত করার উপায় রয়েছে স্ট্রিং মাঝখানে মধ্যে ভেরিয়েবল. তাই সি থেকে প্রত্যাহার, আপনি কি কি ফাংশন স্মরণ আমরা ভেরিয়েবল প্রতিকল্প ব্যবহার করতে পারেন জিনিসের মধ্যে আমরা প্রিন্ট আউট করতে চান? আপনি সম্ভবত এই ব্যবহার বেশ অনেক কাজ. printf,, ডান? তাই এই আমরা ভিতরে আগে ছিল কি আমাদের foreach লুপ প্রেক্ষাপটে. আমরা এই পাঁচটি ছিল আলাদা মুদ্রণ বিবৃতি, এই ছিল যে কারণ উপায় আমি সত্যিই সময়ে জানত কিভাবে বার্তা প্রিন্ট আউট. আমি একীভূত কিভাবে জানেন না আমার পিএইচপি কোড মধ্যে টপিং পরিবর্তনশীল $. ওয়েল, আমি শুধু একটি বন্য অনুমান গৃহীত হলে, printf,, এটা আসলে কাজ করতে হবে. printf, আমি ব্যবহার করতে পারেন যে একটি ফাংশন পিএইচপি, শুধু আমি সি এটি ব্যবহার করতে পারেন ভালো আর তাই ভালো কিছু printf,, আবার, আমরা যে সঙ্গে পরিচিত হন. প্রথম% এর প্রতিস্থাপিত হয় $ টপিং মান সঙ্গে. দ্বিতীয়% এর প্রতিস্থাপিত হয় $ মূল্যের মান সঙ্গে. আর তাই আমি interpellating করছি, যা শুধু একটি অভিনব উপায় বলার অপেক্ষা রাখে না আমি স্টিকিং করছি যে পাঁচ ভেরিয়েবলের. তাই আমি টপিং $ প্লাগিং করছি যেখানে লাল% S $ মূল্য যেখানে নীল% এর হয় এবং হয়, এবং তারপর আমি পাঠান পেতে হবে, "একটা গোটা পনির পিজা $ 8.99 খরচ." আমি যদিও, এটা করতে পারেন না করার একমাত্র উপায়. হয়তো আমি এই পদ্ধতি ব্যবহার করতে চান. এই সবচেয়ে বেশি কি আসলে হয় পরিবর্তনশীল interpellation বলা. আমি একটি ইকো ব্যবহার করতে পারেন. হিসাবে আমরা দেখতে পাবেন আমি খুব একটা প্রিন্ট ব্যবহার করতে পারে. কিন্তু এখানে কি ঘটছে? প্রথম সব, আমি আছে ডলার চিহ্ন অব্যাহতি. আমরা আসলে ছিল যখন মনে রাখবেন, কারণ pizzas মধ্যে দাম মুদ্রণ, আমি আসলে তাদের ফরম্যাট ছিল একটি ডলার চিহ্ন দিয়ে আর্থিক পরিসংখ্যান. কিন্তু আমরা উদাহরণ ডলার চিহ্ন ব্যবহার করছেন পিএইচপি ভেরিয়েবল নাম প্রতিনিধিত্ব, এবং বিশেষ করে যখন আমি কোঁকড়া এই পদ্ধতি ব্যবহার বক্রবন্ধনী পরিবর্তনশীল interpellation পদ্ধতি, আমি প্রয়োজন এটা না, তাই আমার ডলার চিহ্ন অব্যাহতি আমি একটি পরিবর্তনশীল বিষয়ে কথা বলছি না মনে হয়. এটা আসলে যাচ্ছে আক্ষরিক একটি ডলার চিহ্ন প্রিন্ট করা হবে. সুতরাং সাজানোর এটা উপমা আপনি সেখানে শেষে দেখতে কি. এটা আসলে না মুদ্রণ ব্যাকস্ল্যাশ এন, ডান? এটি একটি নতুন লাইন চরিত্রের আউট ছাপে. এটি করা যাচ্ছে না হচ্ছে ÑÑ মুদ্রণ ব্যাকস্ল্যাশ ডলার চিহ্ন, এটা শুধু প্রিন্ট আউট যাচ্ছে একটি ডলার চিহ্ন চরিত্র. একই ধারণা. ক্রম অব্যাহতি, কি এই জিনিস বলা হয়. কিন্তু আমি কাজ করছি না লক্ষ্য % এর বদল কোন ধরণের, আমি শুধু আক্ষরিক প্লাগিং করছি এই ভেরিয়েবলের মধ্যে. আর তাই আপাততঃ এখানে কি ঘটতে পারে যে $ topping-- মান আবার হয় শুধু আমরা চলেছি কি পালন তাই far-- পনির বিষয়ে কথা পেতে হবে সেখানে প্লাগ. আর $ মূল্য যাই হোক না কেন মান হতে হবে পিজা এ, বর্গাকার বন্ধনী, পনির, যা 8.99 ছিল. আর তাই এই প্রিন্ট আউট হবে "একটা গোটা পনির পিজা $ 8.99 খরচ." আমি ভালো বলেন, আমি ব্যবহার করতে পারে পরিবর্তে ইকোর এখানে প্রিন্ট, এবং কার্যকারিতা হতে ঠিক একই অনেক সুন্দর. এটা একই জিনিস প্রিন্ট আউট হবে. এটা কি অন্য উপায় আছে, এবং এই আরেকটি সুবিধা হল পিএইচপি স্ট্রিং সঙ্গে কাজ. আমরা স্ট্রিং সংযুক্তকরণের করতে পারেন. আমরা খুব, সি এই কাজ করতে পারে, strcat নামক একটি ফাংশন ব্যবহার করে, কিন্তু আবার, আমরা করা ছিল পৃথক ফাংশন কল. এটা কি এই পুরো জগাখিচুড়ি. আমরা করা ছিল string.h পাউন্ড-অন্তর্ভুক্ত. এটা ঠিক আছে, একটি প্রকাশনা ছিল? কিন্তু এখন আমি শুধু এই ডট অপারেটর ব্যবহার করতে পারেন একসঙ্গে স্ট্রিং কনক্যাটেনেট. আমি বলি, "একটি পুরো" concatenating করছি এবং তারপর যাই হোক না কেন $ টপিং মান, এবং তারপর অন্য স্ট্রিং, "পিজা খরচ $" এবং তারপর concatenating যাই হোক না কেন $ মূল্যের মান, হয় এবং তারপর খুব শেষে আমি আছি সময়ের ব্যাকস্ল্যাশ এন উপর tacking. আর তাই এই would "একটি সম্পূর্ণ" প্রিন্ট আউট - আবার, আমরা প্রথম যে বিষয়ে কথা বলছি তাহলে যে pizzas অ্যারে উপাদান "একটা গোটা পনির পিজা $ 8.99 খরচ." সময়কাল, আবার ব্যাকস্ল্যাশ এন, সঙ্গে $ টপিং এবং $ মূল্য বদলে আমরা আমাদের foreach উল্লিখিত ছিল কি জন্য কী মান জোড়া ম্যাপিং হিসাবে লুপ. পিএইচপি ফাংশন হ্যান্ডেল করতে পারেন. কার্যাবলী ধরণের ছিল সি অবিচ্ছেদ্য, হিসাবে আমরা দেখেছি. ভেরিয়েবল মত, আমরা প্রয়োজন হবে না , ফাংশন রিটার্ন টাইপ উল্লেখ এটা কোন ব্যাপার না, কারণ. আর আমরা কিছু উল্লেখ না করেন কোনো পরামিতি ধরনের তথ্য, তারা সত্যিই না, কারণ ব্যাপার, আমরা পিএইচপি দেখা করেছি মত. প্রতিটি ফাংশন চালু করা হয় ফাংশন শব্দ সঙ্গে. যে আমরা যে পিএইচপি ইঙ্গিত কিভাবে আমরা কি বিষয়ে কথা বলছি একটি ফাংশন. আর আমরা করতে হবে না এ সব প্রধান মোকাবেলা, দোভাষীর কারণ, পিএইচপি ইন্টারপ্রেটার, উপর থেকে নিচ থেকে কাজ করে, নির্বিশেষে. এটা দেখেন তাহলে আপনি করতে পারেন একটি ফাংশন কল, এটি হবে ফাংশন কল এটি যেতে, এমনকি তা পরবর্তী আসে তাহলে. কিন্তু এটা উপর থেকে পড়া যাচ্ছে নীচে, তাই আমরা উল্লেখ করার প্রয়োজন হবে না, আপনি শুরু যেখানে এখানে. আপনি লাইন 1 শুরু আপনার পিএইচপি সেখান থেকে নিচে কাজ এবং. তাই আমরা এখানে তৈরি করবেন কিভাবে একটি ফাংশন hard_square বলা. এটা দৃশ্যত এক লাগে পরামিতি, আমি $ X আহ্বান করছি যা. এই ফাংশনটি শুধু জটিল বিভিন্ন জিনিষ চিত্রিত করা. আমরা এখনও ফিরে মান আছে. আমি এখানে লুপ জন্য একটি ব্যবহার করছি. কিন্তু এটি মূলত শুধু, কি এই আছে শুধু $ X বার $ x হল পরিমাণ. আমি আসলে শুধু যোগ হয় করছি এক্স এক্স বার 0 বা $ শূন্য $ X বার এক্স. কিন্তু এটা কার্যকরভাবে ঠিক $ X বার $ X গুন হিসাবে একই. আমি এখনও একটি মান প্রদান করতে পারেন, এই ক্ষেত্রে $ ফলাফলের মধ্যে, এবং আমি পিএইচপি একটি ফাংশন তৈরি করেছি. এখানে আপনি প্রেক্ষাপটে এটা ব্যবহার করতে পারে কিভাবে. তাই হয়তো আমি কিছু পিএইচপি ফাইলের ভিতরে আছি. সেখানে যে নীল নোটিশ আমি আমার পিএইচপি বিভেদক ব্যবহার করেছি, কোণ বন্ধনী প্রশ্ন চিহ্ন পিএইচপি. তাদের মধ্যে এ সব হয় আমি লিখতে চাই যে পিএইচপি. তাই আমি দৃশ্যত get-- যাচ্ছি আমি ব্যবহারকারীকে অনুরোধ জানানো যাচ্ছে না আমার একটি সংখ্যা, দোকান দিতে যে পরিবর্তনশীল, যে পরিবর্তনশীল $ x এর মধ্যে দোকান, যাই হোক না কেন তারা আমাকে দিয়েছে. তারপর আমি প্রতিধ্বনি করতে যাচ্ছি যে মান hard_square, এবং দৃশ্যত যাচ্ছে একটি নতুন লাইন কর্মপ্রণালী পাশাপাশি, এবং তারপর পরে আমি করব তাই hard_square ফাংশন নির্ধারণ আমি যখন যে hard_square কল, এটা আমি কি বিষয়ে কথা বলছি জানেন. এখন, আমি কাজ করতে পারে এটার মতো কিছু. এই কিছুটা ভিন্ন. এটা প্রায় ঠিক আমরা আগে দেখেছি কি হিসাবে একই, X পরিবর্তে শুধুমাত্র $ বলছে ছাড়া সেখানে পরামিতি hard_square যত, আমি $ X = 10 বলার অপেক্ষা রাখে না. সুতরাং এই একটি উদাহরণ আত্মরক্ষামূলক প্রোগ্রামিং, আপনার প্রোগ্রাম পাহারা দূষিত ব্যবহারকারীদের বিরুদ্ধে. এই কিছু ত্রুটি কাজ করার একটি পদ্ধতি হল আমরা সত্যিই না যে পরীক্ষণ সি একটি বিকল্প হিসাবে আছে আমরা আর ফিরে আসা সম্ভব কিছু ডিফল্ট মান উল্লেখ করুন. আমরা সবসময় পরীক্ষা করা ছিল কিনা, উদাহরণস্বরূপ, আমরা GetString একটি কল করা হয় তাহলে, এটি ছিল সবচেয়ে সঠিক অবিলম্বে যদি আমরা পরে আমরা চেক করে চেক স্ট্রিং কিনা ব্যবহারকারী আমাদের দিয়েছেন , নাল সমান নয় আমরা শুরু করতে চাই না, কারণ একটি নাল স্ট্রিং সঙ্গে কাজ. এখানে, এই একটি উপায় যে পাহারা দেয়ার জন্য. ব্যবহারকারী আমাদের কিছু না হয়, তাহলে একরকম, আমরা কি করতে যাচ্ছি? ওয়েল, আমরা শুধু বলবো যাই হোক না কেন তারা আমাদের প্রদান করা হয়নি, আমরা শুধু পরিবর্তে 10 মধ্যে চলা করতে যাচ্ছেন. তারা আমাদের একটি মান প্রদান করা হয়নি, তাই যদি, শুধু ডিফল্টরূপে 10 ব্যবহার. তাই এখানে, আমি তৈরি করছি যে লক্ষ্য একটি hard_square কল, কিন্তু কোন প্রম্পট আছে ব্যবহারকারী যাও, ঠিক আছে? আমি একটা খালি কল তৈরি করছি. কিন্তু আমার ফাংশন hard_square একটি পরামিতি আশা করছে না. কি এই প্রিন্ট আউট করা যাচ্ছে? এটা ঠিক আছে, 100 প্রিন্ট আউট যাচ্ছে? ব্যবহারকারী খুঁজে পাচ্ছিলাম না আমার কিছু দিতে. আর তাই আমি ঠিক অনুমান করা যাচ্ছে না 10-- 10 যে ডিফল্ট মান হল. আর তাই এই প্রিন্ট হবে 100 নিজস্ব লাইন. পিএইচপি ফাইল করতে হবে না শুধু একটি ফাইল হতে. আপনি একসাথে একাধিক ফাইল একত্রিত করতে পারেন, শুধু সি আপনি পারেন উপায় চাই আমরা সি একটি কাজ করতে সাধারণত যে ছিল না #include হেডার ফাইলের মধ্যে টানা পেতে. আমরা পিএইচপি যে কি না. আমরা require_once কিছু বলা না. এবং তারপর এই পুরো আছে বলা হয়েছে, এ __DIR__ কি? যে শুধু একটি বিশেষ পরিবর্তনশীল, বা বিশেষ ধ্রুবক, সত্যিই, যে কি নির্দিষ্ট করে আপনার বর্তমান ডিরেক্টরি. আর তাই এটি চেহারা যাচ্ছে আপনার বর্তমান ডিরেক্টরির মধ্যে নামক কোনো ফাইল cs50.php জন্য এখানে এই উদাহরণে, এবং এটা যে ফাইলটি বিদ্ধ যাচ্ছে আপনার পিএইচপি প্রোগ্রাম শীর্ষে, আপনি দ্য প্রয়োজন করা অভিমানী আপনার পিএইচপি ফাইল উপরের লাইন একবার. সুতরাং পিএইচপি প্রাথমিকভাবে ব্যবহৃত হয় কিন্তু একচেটিয়াভাবে, ব্যবহার করা হয় না ওয়েব ভিত্তিক প্রোগ্রামিং জন্য একটি ভাষা হিসেবে. যে এটা হতে এসেছিলেন সত্যিই কিভাবে. কিন্তু এটা একটি পূর্ণ আমরা দেখা করেছি ভাষা. আমরা অনেক সুন্দর সব জিনিস দেখা করেছি এটা সি অনুরূপ হয় না করতে পারে, এবং এটি একটি নরক করতে পারেন যে অনেক বেশী. কিন্তু এটা কারণ একটি সম্পূর্ণ ভাষা এবং আমরা এটা কমান্ড লাইন প্রোগ্রামিং করতে পারেন. আমরা কমান্ড লাইন প্রোগ্রাম চালাতে পারেন. যে সমস্ত একটি কমান্ড চালানোর জন্য প্রয়োজন হচ্ছে পিএইচপি লেখা যে লাইন প্রোগ্রাম আপনি একটি পিএইচপি দোভাষীর আছে. সুতরাং এটা ধরণের এর অনুরূপ আপনার সিস্টেমে কোন ফিংগার একটি কম্পাইলার হচ্ছে আপনি আপনার সি কোড কম্পাইল করতে চান তাহলে এক্সিকিউটেবল ফাইল মধ্যে এটি চালু করতে. আপনি একটি পিএইচপি দোভাষীর আছে প্রয়োজন যে আপনার সিস্টেমে বিদ্যমান তাই আপনি পিএইচপি ফাইল ব্যাখ্যা করতে পারে. আপনি না ধৃষ্ট, এবং সাধারণত এই দোভাষীর, পিএইচপি বলা হয় এবং এটি সাধারণত অধিকাংশ সঙ্গে bundled হয় জনপ্রিয়তা বা PHP এর ইনস্টলেশনের আপনি অবশ্যই অনলাইন পেতে, এবং পারেন যে পিএইচপি দোভাষীর নাম আমরা, CS50 মধ্যে আইডিই আছে. আপনি কি সব ধরনের পিএইচপি ফাইল. আর তা আপনার প্রোগ্রাম এর কি করতে যাচ্ছে এটা হল মাধ্যমে চালানো যাচ্ছে ইন্টারপ্রেটার, এটা যে সবকিছু উপেক্ষা করা যাচ্ছে না প্রশ্ন mark-- মধ্যে বা, কোণাকৃতি বন্ধনী প্রশ্ন চিহ্ন পিএইচপি, পিএইচপি বিভেদক, এবং, এটা প্রিন্ট আউট এবং তা ব্যাখ্যা করা এবং চালানো হবে আপনার পিএইচপি বিভেদক ভেতরে কোড. সুতরাং এর CS50 আইডিই উপর পপ দেওয়া এবং পিএইচপি ফাইলের একটি দম্পতি কটাক্ষপাত আছে, এ, পিএইচপি ফাইলের একটি দম্পতি চলমান এবং CS50 আইডিই কমান্ড লাইন ইন্টারফেস. তাই এখানে আমরা CS50 IDE তে হয়, এবং আমি স্বাধীনতা গ্রহণ করেছি এর hello1.php নামক একটি ফাইল খোলার. এই নিয়ে আর দৃশ্যত, বিষয়বস্তু ফাইল, সেখানে শুধু পিএইচপি বিভেদক হয় এবং, ইকো মধ্যে ("হ্যালো, দুনিয়া"). এই একটি চমত্কার সহজ পিএইচপি প্রোগ্রাম. আমি ঠিক নিচে স্ক্রল করতে যাচ্ছি এখানে আমার টার্মিনাল উইন্ডোতে, এবং আমি পিএইচপি টাইপ করা যাচ্ছে না hello1.php, এন্টার. ওহে বিশ্ব. যে আমরা কি ছিল সম্ভবত এটা কি আশা, অধিকার? এর পর্যন্ত যান এবং করা যাক অন্য একটি প্রোগ্রাম তাকান. hello2.php. প্রায় কাছাকাছি একই জিনিস, অনেক এখানে যাচ্ছে না. এই সময়, যদিও, আমি অনুরোধ জানানো যাচ্ছে না ব্যবহারকারী আমাকে তাদের নাম দিতে. আমি আবার যে readline ফাংশন ব্যবহার করছি. $ নাম = readline. যে প্রম্পট, "আপনার নাম কি?" দৃশ্যত আমি মুদ্রণ করছি এটা তার নিজস্ব লাইন. এবং তারপর, তাই নিচের লাইন যে প্রম্পট হবে যেখানে ব্যবহারকারী তাদের নাম লিখতে পারেন. এবং তারপর আমি একটি সামান্য বিট এর ব্যবহার করছি লাইন 3 এখানে পরিবর্তনশীল interpellation "হ্যালো" প্রিন্ট আউট এবং যাই হোক না কেন ব্যবহারকারী ধরনের. তাই এই হ্যালো, বলার অপেক্ষা রাখে না অনুরূপ, কমা,% s- আমরা সি মধ্যে printf ব্যবহার করা হয়েছে কিনা সুতরাং আসুন যান এবং এই প্রোগ্রামটি ব্যাখ্যা করা যাক. তাই আবার, আমি নিচে স্ক্রল করব আমার টার্মিনাল উইন্ডোতে. পিএইচপি hello2.php. তোমার নাম কী? ডগ. হ্যালো, ডগ. আমি অন্য আছে ফাইল hello3.php বলা. আমি সাফ যাচ্ছি আমার কন্ট্রোল এল দিয়ে পর্দা, এবং আমি যে চালানো যাচ্ছে না. তোমার নাম কী? ডগ. হ্যালো, ডগ. তাই আচরণ অভিন্ন hello2.php, কিন্তু কেন এটা hello3.php হয়? আচ্ছা, এখানে পার্থক্য. এই ক্ষেত্রে, নোটিশ যে এখানে লাইন 1, আমি না কিছু যে আছে পিএইচপি বিভেদক মধ্যে. আমি শুধু out-- বা আমি মুদ্রণ করছি শুধু "আপনার নাম কি?", টাইপ করা পিএইচপি দোভাষীর এই যখন দেখেন, এটা কোন ধারণা কিভাবে পিএইচপি হিসাবে এটা ব্যাখ্যা করা হয়েছে, এবং তাই এর পরিবর্তে, ব্যর্থ এটা শুধু এটি থুতু যাচ্ছে. সুতরাং, এখন লাইন 3 আমার কল বিজ্ঞপ্তি readline, আর কোন প্রম্পট আছে. আমি আসলে চাচ্ছি যখন যাচ্ছি পিএইচপি দোভাষীর, এই উদ্ধার এটি প্রিন্ট আউট করতে যাচ্ছে "তোমার নাম কী?" তারপর এটা here's--, ঠিক আছে, ওহ, উদ্ধার অন্য সব কিছুর হতে যাচ্ছে তাই, পিএইচপি হিসেবে ব্যাখ্যা কেন এই কাজ করে. আমি অগত্যা লেখার অনুরোধ জানানো হবে না readline ভেতরে ব্যবহারকারীর চাচ্ছি, আমি শুধু বাইরে তা থাকতে পারে পিএইচপি বিভেদক এর বা দোভাষী অনুমতি শুধু আমার জন্য এটি প্রিন্ট আউট. সুতরাং আপনি আসলে শুধুমাত্র আছে না পিএইচপি বিভেদক এক সেট আছে আপনার প্রোগ্রামে. আপনি আসলে, তাদের বিভিন্ন থাকতে পারে খোলার এবং প্রয়োজন তাদের বন্ধ. তাই এর কটাক্ষপাত করা যাক প্রোগ্রাম একটি দম্পতি এ যেখানে CS50 আইডিই আমরা থাকার এই ধারণা চিত্রিত বিভাজিত পিএইচপি একাধিক সেট. ঠিক আছে, তাই আমি একটি ফাইল খোলা করেছি এখানে add1.php বলা. এবং এখানে কি ঘটছে সে লক্ষ্য. ঠিক যেমন আগে, আমি একটি একক পিএইচপি বিভেদক সেট. আমি প্রিন্ট আউট করা যাচ্ছে না বার্তা, "আমাকে একটি সংখ্যা জানাবেন." তারপর আমি একটা লাইন পড়া যাচ্ছে না এবং পরিবর্তনশীল $ num1 মধ্যে এটি সংরক্ষণ. তারপর আমি আবার প্রিন্ট আউট করা যাচ্ছে না. আমার একটি দ্বিতীয় সংখ্যা দিন. ব্যবহারকারী, দোকান থেকে একটি লাইন পড়ুন তারা $ num2 মধ্যে টাইপ যাই হোক না কেন. তাদের একসঙ্গে যোগ এবং যে দোকান $ সমষ্টি একটি পরিবর্তনশীল নামক স্থাপিত, এবং তারপর ", প্রিন্ট আউট এই দুটি সংখ্যার যোগফল , "এবং তারপর পার্লামেন্ট ইঃতে সংশ্লিষ্ট মন্ত্রীকে প্রশ্ন করে সভার কাজ ব্যাহত করা সেখানে পরিবর্তনশীল $ সমষ্টি. তাই আসুন শুধু এই চালানো যাক দোভাষীর মাধ্যমে এই আমরা আশা কি তা নিশ্চিত করতে. পিএইচপি add1.php. আমার একটি সংখ্যা, 3 জানাবেন. আমার একটি দ্বিতীয় সংখ্যা, 4 জানাবেন. এই দুটি সংখ্যার যোগফল 7. 3 প্লাস 4 এর. ঠিক আছে? সেখানে কিছুই ভয়ঙ্কর অভিনব. এবং এখন এর add2.php খুলুন. এখানে, আমি পিএইচপি একটি দম্পতি পেয়েছেন সেখানে সেট বিভাজিত, ডান? রেখাসমূহ 1, 3-- লাইন 1 এবং 3 কোন পিএইচপি বিভেদক আছে. সুতরাং যখন দোভাষীর এটা ঠিক, তাদের উদ্ধার ঠিক থুতু যাচ্ছে কি আমি সেখানে টাইপ করা আছে. আমি তাই যে যেখানে আমার প্ররোচনা সব করছেন. লাইন 2 এবং 4, আমরা দেখতে খুব পরিচিত $? বিভেদক পিএইচপি সাজান, তাই ঐ দুটি লাইন আছে পিএইচপি হিসাবে চালানো যাচ্ছে. এবং তারপর লাইন 5 উপর, আমি এই আছে এখানে ডান অদ্ভুত জিনিস, ডান? এই কোণ বন্ধনী প্রশ্ন চিহ্ন সমান চিহ্ন. আমি এমনকি একটি সামান্য বিট আরও জুম করব. আপনি কি এই আমি কি দেখতে পারেন , ঠিক আছে এই সম্পর্কে $ কথা? =. এটা যাতে সাধারণ যে দেখা যাচ্ছে আমরা পিএইচপি একটি সেট খুলুন যে কারণে বিভেদক একটি মান প্রিন্ট আউট করতে হয়. এবং যে আমরা কি করতে যাচ্ছেন সব. কিন্তু যে জন্য এমনকি সাঁটে লেখার আছে. $? = বলছে জন্য পিএইচপি সাঁটে লেখার হয় $ ভালো কিছু? echo পিএইচপি সমষ্টি num1 ও num2 এর. সুতরাং এই মাত্র আরেকটি হল যে সাঁটে লেখার জন্য. আমি এই প্রোগ্রাম, পিএইচপি add2.php রান সুতরাং. আমি একটু একটু নিচে জুম করব. আমার একটি সংখ্যা, 4 জানাবেন. আমার একটি দ্বিতীয় সংখ্যা জানাবেন. আর আমি সত্যিই যত্নশীল না, যেহেতু পিএইচপি ডাটা ধরনের, আমি 4.8 বলতে পারেন. এই দুটি সংখ্যার যোগফল 8.8 হয়. যে ফাংশন অনেক সুন্দর আচরণ আমরা আশা করতে চাই, ঠিক একই আরো. এবং আমি আরও একটি খোলা আছে এখানে আপ dice.php বলা. আবার এই চেষ্টা. আমি এখানে আরো বলা আছে এছাড়াও, দেখতে যা dice1.php, যে কোণ বন্ধনী প্রশ্ন আছে সেখানে সমান চিহ্ন স্বরলিপি চিহ্নিত, কিন্তু এই ক্ষেত্রে আমি যে লক্ষ্য ফাংশন Rand, কলিং যা আপনি হিসাবে আশা করতে পারে একটি র্যান্ডম সংখ্যা উৎপন্ন করা হয়. "আপনি, একটি ঘূর্ণিত" এবং এটি যাচ্ছে + + কিছু র্যান্ডম সংখ্যা, মডুলাস 6 নিরূপণ 1. সুতরাং যে আমার নম্বর দেব 1 থেকে 6 এর সীমার মধ্যে. মডুলাস 6 আমাকে দিতে হবে মনে রাখুন 0 থেকে 5 এর সীমার মধ্যে একটি সংখ্যা, কিন্তু আমি পাশা রোলস simulating করছি, যা আমি এখানে কি করছি কি, আমি এইসব পাশা 0 থেকে যেতে চান না 5, আমি 1 থেকে 6 যেতে পারে পাশা চান. আর তাই এই পেতে একটি উপায় 1 থেকে 6 এর সীমার মধ্যে আমাকে. আমি দুইবার এই কাজ করছি. সুতরাং দৃশ্যত আমি ঘূর্ণায়মান করছি এই প্রোগ্রামে দুটি পাশা. তাই আমি আমার পর্দা পরিষ্কার করব, এবং আমি পিএইচপি dice1.php চেষ্টা করবো. আপনি একটি 4 এবং 2 ঘূর্ণিত. আর আমি প্রোগ্রাম চালানো হলে আবার, আপনি একটি 5 এবং একটি 5 ঘূর্ণিত. তাই আমি প্রোগ্রাম চালানোর জন্য প্রত্যেক সময়, আমি বিভিন্ন নম্বর পেয়ে করছি কারণ আমি কি প্রত্যেক সময় তাই, এটা আবার শুরু হচ্ছে. এটি একটি নতুন জেনারেট যাচ্ছে আমার জন্য র্যান্ডম সংখ্যার সেট. আমরা ব্যবহার করছি, তাই যদি সি থেকে প্রোগ্রাম চলমান, আমরা ./ টাইপ করতে ব্যবহার করছি ঠিক আছে, একটি প্রোগ্রামের নাম? যে আমরা সব কাজ করেছি কিভাবে সি আমাদের প্রোগ্রামের পর্যন্ত. আমরা পাশাপাশি পিএইচপি এই কাজ করতে পারেন কিছু যোগ করে বলা আমাদের পিএইচপি ফাইল শীর্ষে একটি কুঁড়েঘর. আমি এটি একটি নিরীহ শব্দ ধরনের জানেন. এটা হ্যাশ ঠুং জন্য ছোট. যে সেখানে প্রথম দুটি অক্ষর. আমরা বিস্ময়বোধক বিন্দু কল মনে রাখুন কম্পিউটার বিজ্ঞান মধ্যে প্রায়শই একটি ঠুং ঠুং শব্দ. এটি ধারালো ঠুং জন্য হতে পারে. এটা ব্যাখ্যা করার জন্য একটি দম্পতি উপায় আছে. কিন্তু এটা মূলত একটি বিশেষ ধরণের কমান্ড যে পিএইচপি দোভাষী ওহ, আমি চাই, যেমন বোঝে আপনি এই প্রোগ্রাম সঞ্চালনের, যা দৃশ্যত / ব্যবহারকারী / বিন / পিএইচপি, যা যেখানে পিএইচপি দোভাষীর আসলে বিশেষভাবে আমাদের সিস্টেমে বসবাস. প্রচলিত আইনও তাই কি ঘটবে এখানে ইন্টারপ্রেটার, ওহ, বুঝতে আমি দৃশ্যত ব্যবহার অনুমিত করছি এই প্রোগ্রামে এই ফাইল চালানোর জন্য. আর তাই এটি আপনি করতে পারবেন উপেক্ষা করে এগিয়ে পিএইচপি something.php বলতে হচ্ছে. এক অন্য ধরা আছে এখানে, যা যে যদি আমরা আমাদের প্রোগ্রাম করতে চান প্রত্যাশা অনুযায়ী, আমরা কাজ বলা কিছু করতে হবে একটি ফাইল অনুমতি পরিবর্তন. আর আমরা go-- করব এবং আমরা একটু কথা বিট আরো সম্পর্কে ফাইল অনুমতি পরিবর্তন আমাদের MVC ভিডিও, কিন্তু তা যথেষ্ট এই সমস্ত আপনাকে যা করতে হবে তা হল বলে করার জন্য আপনার .php ফাইল এক্সিকিউটেবল. সুতরাং হিসাবে এই কটাক্ষপাত করা যাক এবং CS50 IDE তে আমাদের চূড়ান্ত উদাহরণ ওভার. সুতরাং এখানে IDE তে আমি এই দুটি ফাইল আছে হতে না প্রদর্শিত পিএইচপি ডিরেক্টরি .php বলা. আমি একটি ফাংশন বলা আছে add-- আমি নামক কোনো ফাইল add3 আছে এবং একটি ফাইল dice2 বলা. সুতরাং আসুন একটি দ্রুত নিতে দিন চেহারা এবং add3 খুলুন. এবং আপনি শুরু এ দেখতে পারেন, আমার ফাইলের ঠিক আছে, আমি এই কুঁড়েঘর আছে? এই হ্যাশ চিহ্ন বিস্ময়বোধক বিন্দু. এখন, আপনি হয়ত হবে কিছু কারণে যে লক্ষ্য, আমি কোনো সিনট্যাক্স হবে না আর হাইলাইট, এবং এই, আমি আগে উল্লিখিত কি যা আমি আমার ফাইলের নাম না থাকে তাহলে যে ছিল .php, আমি উপকৃত না সিনট্যাক্স আর হাইলাইট. এই ফাইলটি শুধু add3 বলা হয়. আমি পরে এটি চালাতে পারেন যাতে ./ add3 এবং না ./ add3.php সঙ্গে. সুতরাং reason-- এটি এখনও জরিমানা, এটি এখনও বৈধ পিএইচপি এর, কিন্তু এটা কারণ, হাইলাইট সিনট্যাক্স না এই ফাইলটি something.php বলা হয় না. যে শুধুমাত্র বাস্তব পার্থক্য এখানে, প্লাস কুঁড়েঘর. সুতরাং আসুন যখন কি দেখতে দিন আমি চেষ্টা করি এবং এই প্রোগ্রাম চালানো. ./ Add3, শুধু আমি সি ব্যাশ দিয়ে একটা ভালো. ./ Add3 অনুমতি বঞ্চিত. এই কমান্ডের সাহায্যে আপনি চলুন কি আপনি ভুলে গেলে দেখতে পরিবর্তন করার জন্য chmod কমান্ড ব্যবহার করতে ফাইলের. এটা নিয়মিত পিএইচপি সক্রিয় আউট ফাইল শুধু বাস্তবায়ন করা যায়নি. তারা ব্যাখ্যা করা যেতে পারে, কিন্তু আমরা করছি এখানে একটু ভিন্ন কিছু করছেন. আমরা এটা নির্বাহ করছেন. আর তাই আমি অনুমতি যুক্ত করতে হবে মৃত্যুদন্ড, A + এক্স add3 chmod. তারপর আমি ./ add3 বলতে পারেন. আমার একটি সংখ্যা জানাবেন. 5, 6. এই দুটি সংখ্যার যোগফল 11 হয়. একইভাবে, আমি ইতিমধ্যে chmoded আছে dice2, তাই আমি ঠিক, dice2 ./ টাইপ করতে পারেন আপনি একটি 1 এবং একটি 1 ঘূর্ণিত, আপনি তাই একটি 5 এবং একটি 4, এবং সমন্বিত. সুতরাং যে বেশ অনেক একটি পিএইচপি সিনট্যাক্স ধারণা, ডান? মাধ্যমে পেতে অনেক কিছু আছে, আমি জানি. কিন্তু আশা করছি আপনি যে পিএইচপি এখন দেখা করেছি সি থেকে সত্যিই যে বিভিন্ন নয় এবং সত্যিই আমাদের ক্ষমতা দেয় একটি খাঁজ বা দুটি জিনিস লাগতে. আমরা সত্যিই চিন্তা করতে হবে না আমরা সত্যিই না about-- অত্যধিক সম্পর্কে খুব বেশী চিন্তা করতে হবে নিম্নস্তরের বিস্তারিত আমরা ঠিক আছে, সি সম্পর্কে চিন্তা করা ছিল? আমরা উচ্চ উপর নজর দিতে পারেন স্তর স্টাফ যে পিএইচপি আমাদের কাজ করতে পারবেন এবং এর জন্য নেওয়া এটা আমাদের জন্য কাজ করবে মঞ্জুর. তাই এটা এখন আমাদের ক্ষমতা দেয় পিএইচপি সি থেকে রূপান্তরের, আরো অনেক প্রোগ্রাম যে করতে জটিল এবং সম্ভবত অনেক বেশি জোরালো. তাই আমি আপনি মজা আছে আশা করি কাজ পিএইচপি সঙ্গে, এবং আমি ডগ লয়েড আছি. এটি CS50.