1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [অনুচ্ছেদ 8 - আরো আরামদায়ক] 2 00:00:02,610 --> 00:00:04,910 [Rob Bowden - হার্ভার্ড বিশ্ববিদ্যালয়] 3 00:00:04,910 --> 00:00:07,070 [এটি CS50. - CS50.TV] 4 00:00:11,520 --> 00:00:14,160 >> এই সপ্তাহে অধ্যায় নোট প্রশংসনীয় ছোট হতে যাচ্ছে, 5 00:00:14,160 --> 00:00:19,070 তাই আমি ঠিক বলছেন রাখা যাচ্ছে না, আপনি না যাও প্রশ্ন জিজ্ঞাসা রাখা যাচ্ছে, 6 00:00:19,070 --> 00:00:22,720 এবং আমরা যতটা সম্ভব পূরণ হিসাবে অনেক সময় আপ করার চেষ্টা করব. 7 00:00:22,720 --> 00:00:31,950 মানুষ অনেক মনে করেন যে এই pset অগত্যা কঠিন হয় না, কিন্তু খুব দীর্ঘ. 8 00:00:31,950 --> 00:00:37,070 pset বৈশিষ্ট নিজেই একটি ঘন্টা পড়া লাগে. 9 00:00:40,530 --> 00:00:45,730 আমরা আপনাকে এসকিউএল অনেক সম্ভবত আপনি ব্যবহার করতে দিতে পারে. 10 00:00:45,730 --> 00:00:50,520 আমরা এটা অনেকটা করতে পারবেন, তাই খুব খারাপ হবে না. 11 00:00:50,520 --> 00:00:54,560 শুরু করেনি কেউ বা সমাপ্ত? 12 00:00:55,380 --> 00:00:59,710 এটা শেষ pset. ওহ, আমার ঈশ্বর. 13 00:00:59,710 --> 00:01:05,400 সাধারণত একটি জাভাস্ক্রিপ্ট এক এই পরে আছে, কিন্তু ক্যালেন্ডারে পরিবর্তন জিনিস 14 00:01:05,400 --> 00:01:09,560 সবকিছু 1 সপ্তাহ খাটো করে তোলে, এবং আমরা আর একটি জাভাস্ক্রিপ্ট pset আছে. 15 00:01:09,560 --> 00:01:12,310 আমি যে কিভাবে প্রভাবিত করে কিনা জাভাস্ক্রিপ্ট পরীক্ষা উপস্থিত হবে না 16 00:01:12,310 --> 00:01:15,510 বা 1 ক্যুইজ. 17 00:01:15,510 --> 00:01:22,260 আমি কল্পনা করে কিছু ভালো আপনাকে জাভাস্ক্রিপ্ট সম্পর্কে উচ্চ পর্যায়ের জিনিস জানা প্রয়োজন হবে, 18 00:01:22,260 --> 00:01:26,460 কিন্তু আমার সন্দেহ হয় আমরা ঠিক দিতে সোজা জাভাস্ক্রিপ্ট কোড করতে চাই 19 00:01:26,460 --> 00:01:28,720 যেহেতু আপনি একটি pset ছিল তা না. 20 00:01:28,720 --> 00:01:33,000 কিন্তু যে ব্যঙ্গ পর্যালোচনার জন্য স্টাফ আগামী সপ্তাহে হবে. 21 00:01:33,000 --> 00:01:36,320 >> প্রশ্নের ধারা. 22 00:01:36,320 --> 00:01:43,870 এই উপাদান অনেক হয় কিছুটা দুর্বল worded, কিন্তু আমরা কেন আলোচনা করব. 23 00:01:43,870 --> 00:01:50,220 সি ভিন্ন, পিএইচপি হল একটি "পরিবর্তনশীল-টাইপ" ভাষা. এর মানে কি, আপনাকে জিজ্ঞাসা? 24 00:01:50,220 --> 00:01:53,830 আচ্ছা, বলুন বিদায় যারা টুকিটাকি কাজ, float, int, এবং অন্যান্য কীওয়ার্ড সমস্ত আপনাকে ব্যবহার করতে হবে 25 00:01:53,830 --> 00:01:56,190 যখন ভেরিয়েবল এবং সি ইন ফাংশান উপস্থিত করা প্রকাশক 26 00:01:56,190 --> 00:02:00,420 পিএইচপি, একটি পরিবর্তনশীল এর টাইপ মান যে বর্তমানে এটি হোল্ডিং এর দ্বারা নির্ধারিত হয়. 27 00:02:00,420 --> 00:02:04,990 তাই আগে আমরা একটি ফাইল নামক dynamic.php এই কোডটি টাইপ করুন, 28 00:02:04,990 --> 00:02:12,670 পিএইচপি পরিবর্তনশীল টাইপ করা হয়. এটা সত্য. 29 00:02:12,670 --> 00:02:17,590 আমি যে তার মানে আমরা গৃহস্থালি, float করছি বিদায় বলছে, int-সঙ্গে অসম্মত হন, 30 00:02:17,590 --> 00:02:20,620 এবং অন্যান্য কীওয়ার্ড. 31 00:02:20,620 --> 00:02:25,510 পরিবর্তনশীল টাইপ করা এবং সঠিক বিকল্প মধ্যে পার্থক্য, 32 00:02:25,510 --> 00:02:32,010 যা statically হয় টাইপ করা, টাইপ করা হয় যে পরিবর্তনশীল, আপনার টাইপ পরীক্ষণ এবং পণ্যদ্রব্য সব 33 00:02:32,010 --> 00:02:37,350 এরকম চালানোর সময়, যখন statically টাইপ এটা কম্পাইল সময়ে ঘটবে. 34 00:02:37,350 --> 00:02:43,030 শব্দ সাধারণভাবে স্ট্যাটিক যাও কম্পাইল সময় জিনিষ মানে বলে মনে হয়. 35 00:02:43,030 --> 00:02:48,170 আমি এটা অনুমান করার জন্য অন্যান্য ব্যবহার রয়েছে, কিন্তু C-যখন আপনি একটি স্ট্যাটিক ভেরিয়েবল ডিক্লেয়ার, 36 00:02:48,170 --> 00:02:52,650 সেটির সংগ্রহস্থল একটি কম্পাইল সময় বরাদ্দ করা হয়. 37 00:02:52,650 --> 00:02:59,260 এখানে, শুধু পরিবর্তনশীল টাইপ মানে হল - 38 00:02:59,260 --> 00:03:04,350 ইন সি যদি আপনি একটি স্ট্রিং এবং একটি পূর্ণসংখ্যা, যোগ যখন আপনি এটা কম্পাইল করার চেষ্টা করুন, 39 00:03:04,350 --> 00:03:11,000 এটি কারণ এটি যে আপনি কোন int এবং একটি পয়েন্টার যুক্ত করতে পারবেন না বলে যাচ্ছে অভিযোগ করে যাচ্ছে. 40 00:03:11,000 --> 00:03:14,710 শুধু একটি বৈধ অপারেশন না. 41 00:03:14,710 --> 00:03:21,170 এটা অন্য বিষয় যে আমরা একটি দ্বিতীয় মধ্যে পাবেন. 42 00:03:21,170 --> 00:03:24,860 কিন্তু পরীক্ষণ যে সাজানোর যে, আসলে এটা কম্পাইল সময়ে complains, 43 00:03:24,860 --> 00:03:29,220 স্থির টাইপ পরীক্ষা করা হয়. 44 00:03:29,220 --> 00:03:35,220 ভাষা যেখানে আপনি গৃহস্থালি, float, int-বলতে করার প্রয়োজন হবে না, এবং যারা সব জিনিস আছে, 45 00:03:35,220 --> 00:03:40,940 কিন্তু ভাষা জিনিস কনটেক্সট থেকে কি ধরণের এটা অনুমিত এর বলতে পারেন, 46 00:03:40,940 --> 00:03:43,980 কিন্তু এখনও এটি statically এর টাইপ করা. 47 00:03:43,980 --> 00:03:49,000 তাই আপনি যদি 51, OCaml নিতে, আপনি এই ধরনের কোনো ব্যবহার করতে হবে না, 48 00:03:49,000 --> 00:03:58,700 কিন্তু এটি এখনও কম্পাইল সময়ে আপনি এই কারণে আপনি কোন int এবং একটি স্ট্রিং মিশ করছি না পারে বলতে হবে. 49 00:03:58,700 --> 00:04:05,650 পরিবর্তনশীল টাইপ ঠিক মানে হল একদা চালানোর সময় আপনি একটি অভিযোগ পেতে যাচ্ছেন. 50 00:04:05,650 --> 00:04:13,430 এছাড়াও আপনি যদি জাভা ব্যবহার করে সাধারণ আগে, প্রায়, কোনো সি টাইপ ভাষা 51 00:04:13,430 --> 00:04:20,070 যাও statically, টাইপ করা, তাই সাধারণত সি, সি + +, জাভা, যারা সব statically হয় টাইপ করা যাচ্ছে না. 52 00:04:20,070 --> 00:04:22,910 জাভা যখন আপনি কিছু কম্পাইল এবং আপনি বলছে 53 00:04:22,910 --> 00:04:26,670 স্ট্রিং গুলি নতুন কিছু যে একটি স্ট্রিং নয় সমান, 54 00:04:26,670 --> 00:04:28,950 যে কারণে শুধু ঐ ধরনের আপ না মেলে অভিযোগ করে যাচ্ছে. 55 00:04:28,950 --> 00:04:31,180 যে কম্পাইল সময়ে অভিযোগ করতে যাচ্ছে. 56 00:04:31,180 --> 00:04:36,750 তবে এটা কিছু সময় গতিশীল ভীষণ পছন্দ হয়েছে, যদি আপনি কিছু নিক্ষেপ চেষ্টা 57 00:04:36,750 --> 00:04:40,500 একটি টাইপ যে তার বর্তমান টাইপ তুলনায় আরো নির্দিষ্ট, 58 00:04:40,500 --> 00:04:45,610 কিছুই এটি কিনা তা যে ঢালাই সফল হবে চেক সময়ে কম্পাইল করতে পারেন. 59 00:04:45,610 --> 00:04:51,130 জাভা কিছু গতিশীল টাইপ যে পরীক্ষণ আছে যত তাড়াতাড়ি এটা কোড যে লাইন বল 60 00:04:51,130 --> 00:04:54,130 যখন প্রকৃতপক্ষে এটি নির্বাহ এর, এটা কাস্ট করতে যাচ্ছে, 61 00:04:54,130 --> 00:04:56,260 যদি যে ঢালাই প্রথম স্থানে ছিল বৈধ চেক, 62 00:04:56,260 --> 00:04:59,890 এবং যদি তাই না হয় তাহলে সেটা যে আপনি একটি অবৈধ টাইপ আছে অভিযোগ করে যাচ্ছে. 63 00:04:59,890 --> 00:05:03,200 ডায়নামিক টাইপ চেকিং. 64 00:05:03,200 --> 00:05:07,010 নামক কোনো ফাইল dynamic.php মধ্যে এই টাইপ করুন. 65 00:05:10,130 --> 00:05:12,380 Dynamic.php. 66 00:05:14,580 --> 00:05:17,190 আমি যে বিন্যাস আনজিপ হবে. 67 00:05:18,750 --> 00:05:21,880 আমরা একটি পরিবর্তনশীল আছে, আমরা পূর্ণসংখ্যা 7 সেট করুন, 68 00:05:21,880 --> 00:05:27,930 তারপর আমরা এবং% s-মুদ্রণ চলুন - 69 00:05:27,930 --> 00:05:32,830 ওহ, আমরা এটি ধরণ মুদ্রণ করছি, তাই gettype যাও ভেরিয়েবলের রিটার্ন টাইপ করতে যাচ্ছে. 70 00:05:32,830 --> 00:05:35,720 আমরা শুধুমাত্র আপনার টাইপ মুদ্রণ বহুবার. 71 00:05:35,720 --> 00:05:39,440 আমরা শুধু php.dynamic.php. 72 00:05:39,440 --> 00:05:45,920 আমরা দেখতে পাবেন যে এটি থেকে পূর্ণসংখ্যা বুলিয়ান যাও পংক্তিটি পরিবর্তন হিসাবে আমরা মধ্য দিয়ে যেতে হবে. 73 00:05:45,920 --> 00:05:54,590 সি কোন বুলিয়ান ডাটা টাইপ আছে, কোন স্ট্রিং ডাটা টাইপ আছে. 74 00:05:54,590 --> 00:06:00,500 * গৃহস্থালির কাজ নেই এবং বুলিয়ান শুধুমাত্র int বা গৃহস্থালির কাজ কিংবা যে কোন কিছু হতে থাকে. 75 00:06:00,500 --> 00:06:05,690 পিএইচপি এই ধরনের, অস্তিত্ব নেই এবং যে PHP 'র বড় সি বেশী সুবিধার এক - 76 00:06:05,690 --> 00:06:13,290 স্ট্রিং অপারেশন হয় পিএইচপি বহু বহু গুণে সহজ সি ছাড়া তারা শুধু কাজ. 77 00:06:13,290 --> 00:06:18,290 >> সুতরাং আমরা এখানে ফিরে আসা. 78 00:06:18,290 --> 00:06:21,260 আমরা dynamic.php দৌড়ে. 79 00:06:21,260 --> 00:06:26,710 এই ইন্টারপ্রেটার পিএইচপি, পিএইচপি নামক যাও dynamic.php মধ্যে পিএইচপি কোড রান, বলে. 80 00:06:26,710 --> 00:06:30,250 যদি ফাইলটির মধ্যে কোনো ধরনের উত্পন্ন ত্রুটি আছে, দোভাষীর মাধ্যমে আপনাকে জানানো হবে! 81 00:06:30,250 --> 00:06:39,110 ইন্টারপ্রেটার, এই একটি পিএইচপি এবং সি মধ্যে বড় পার্থক্য 82 00:06:39,110 --> 00:06:48,200 আপনি কিছু কম্পাইল এবং তারপর আপনি যে ফাইল কম্পাইল চালানো সি ইন আছে. 83 00:06:48,200 --> 00:06:50,490 পিএইচপি কিছু কম্পাইল না. 84 00:06:50,490 --> 00:06:57,200 তাই মূলত পিএইচপি দোভাষী ঠিক হয় লাইন দ্বারা এই লাইন পড়া. 85 00:06:57,200 --> 00:07:02,900 এটা হিট var তারপর = 7 এটি হিট printf তাহলে হিট তারপর var এটি হিট printf তাই. 86 00:07:02,900 --> 00:07:10,910 কম্পাইল এটি আছে একটি বিট পর্যন্ত, এবং এটি ফলাফল ক্যাশে 87 00:07:10,910 --> 00:07:15,510 যাতে পরে যদি আপনি স্ক্রিপ্ট চালানোর জন্য আপনি কিছু করতে পারেন, 88 00:07:15,510 --> 00:07:19,280 কিন্তু মূলত এটা ব্যাপার লাইন সাজানোর দ্বারা একটি লাইন. 89 00:07:19,280 --> 00:07:25,280 এটার মানে হল যে আমরা যে অপ্টিমাইজেশন সি পেতে অনেক, 90 00:07:25,280 --> 00:07:31,920 কম্পাইল মত, এটা তো শুধু সাধারণত কম্পাইলার আপনি ঠাট জন্য অনেক কিছু করতে পারেন. 91 00:07:31,920 --> 00:07:36,110 এটি অব্যবহৃত ভেরিয়েবল গ্রহণ করা যেতে পারে, এটি জিনিস এই প্রকারের সমস্ত কাজ করতে পারেন, 92 00:07:36,110 --> 00:07:38,660 এটি লেঙ্গুড় recursion করতে পারেন. 93 00:07:38,660 --> 00:07:42,550 পিএইচপি আপনি যে সুবিধা পেতে যাচ্ছেন না 94 00:07:42,550 --> 00:07:45,690 কারণ এটা পংক্তির দ্বারা পাতিপাতি নির্বাহ শুরু হতেই, 95 00:07:45,690 --> 00:07:49,950 এবং এটি সত্যিই ভীষণ হিসাবে স্বীকার করে না সহজে 96 00:07:49,950 --> 00:07:54,440 যেহেতু এটি 1 বড় বিষয় সংকলন পাস ওভার এবং তারপর মৃত্যুদন্ড কার্যকর করা; 97 00:07:54,440 --> 00:07:56,860 এটা লাইন দ্বারা শুধুমাত্র লাইন. 98 00:08:00,730 --> 00:08:02,750 সুতরাং যে দোভাষী. 99 00:08:02,750 --> 00:08:06,840 >> আমাদের ডাইনামিক টাইপিং পশ্চাদপটে: চমত্কার, অঁ্যা? 100 00:08:06,840 --> 00:08:08,640 আপনি স্পষ্টভাবে সি যে করা যেত না! 101 00:08:08,640 --> 00:08:11,860 এখন, আপনি যদি নিম্নলিখিত মান প্রতিটি টাইপ চিন্তা করতে পারেন. 102 00:08:11,860 --> 00:08:14,760 উল্লেখের জন্য এই দেখুন. 103 00:08:14,760 --> 00:08:19,420 তাই 3.50. কি মনে করেন যে আপনার কি ধরনের হতে যাচ্ছে? 104 00:08:24,480 --> 00:08:26,370 এখানে আমরা ধরনের আছে. 105 00:08:26,370 --> 00:08:30,430 আমরা bools, ইন্টিজার, ফ্লোটিং পয়েন্ট, স্ট্রিং, অ্যারে, বস্তু আছে, 106 00:08:30,430 --> 00:08:38,370 এবং তারপর সম্পদ, যা অস্পষ্ট ধরনের. 107 00:08:38,370 --> 00:08:41,010 আমি মনে করি এর আসলে কোন উদাহরণ এখানে. 108 00:08:41,010 --> 00:08:43,740 তারপর শূন্য আছে. শূন্য একটি বিশেষ ধরনের. 109 00:08:43,740 --> 00:08:47,140 ভিন্ন সি শূন্য যেখানে শুধুমাত্র ঠিকানা 0 সাথে একটি পয়েন্টার, 110 00:08:47,140 --> 00:08:54,930 পিএইচপি, শূন্য হয় তার নিজস্ব ধরন যেখানে শুধুমাত্র ঐ ধরনের বৈধ জিনিস হয় শূন্য. 111 00:08:57,560 --> 00:09:00,670 এটি অনেক ত্রুটি পরীক্ষা করা জন্য আরো দরকারী. 112 00:09:00,670 --> 00:09:04,310 ইন সি যেখানে যেখানে আমরা এই সমস্যাটি যদি আপনি ফিরে শূন্য ছিল, 113 00:09:04,310 --> 00:09:08,660 কিন্তু যে মানে আপনি একটি NULL পয়েন্টার করছি ফিরে যায় অথবা NULL ত্রুটির বোঝান ব্যবহার 114 00:09:08,660 --> 00:09:12,380 অথবা যে সকল রকমের বিভ্রান্তি আছে যা আমরা এক পর্যায়ে আমার কাছে ছিল. 115 00:09:12,380 --> 00:09:18,440 এখানে, সাধারণভাবে NULL ফেরত ত্রুটি মানে. 116 00:09:20,860 --> 00:09:27,300 জিনিস অনেক এছাড়াও ত্রুটির জন্য মিথ্যা ফিরে. 117 00:09:27,300 --> 00:09:33,140 কিন্তু বিন্দু হয় শূন্য টাইপ, শূন্য ধরনের কেবল একটি বিষয় শূন্য. 118 00:09:33,140 --> 00:09:40,090 তারপর কলব্যাক মত আপনি কিছু বেনামী কর্ম নির্ধারণ করতে পারবেন. 119 00:09:40,090 --> 00:09:46,420 আপনি একটি নাম দিন ফাংশন, না আছে কিন্তু আপনি যে এখানে কারবার হবে না. 120 00:09:46,420 --> 00:09:53,940 দেখার জন্যে এ ধরনের যে তারা আমাদের প্রত্যাশা করবেন না, 121 00:09:53,940 --> 00:09:59,000 না কি আপনি মনে করেন 3.50 প্রকার হল? >> [ছাত্রদের] ভাসা. 122 00:09:59,000 --> 00:10:00,370 হাঁ. 123 00:10:00,370 --> 00:10:06,290 আমি তখন এখানে কি, আপনি এই প্রকার হল কি? >> [ছাত্রদের] এরে. 124 00:10:06,290 --> 00:10:09,890 হাঁ. প্রথমটি ছিল float, দ্বিতীয় এক একটি অ্যারে. 125 00:10:09,890 --> 00:10:14,500 উল্লেখ্য, এই অ্যারে সি অ্যারের মত নয় 126 00:10:14,500 --> 00:10:19,610 যেখানে আপনি সূচক আছে কিছু 0 মূল্য আছে, সূচক 1 কিছু মূল্য আছে. 127 00:10:19,610 --> 00:10:26,320 সূচকগুলি এখানে a, b, এবং c এবং মান 1, 2, এবং 3. 128 00:10:26,320 --> 00:10:33,980 পিএইচপি একটি এসসিয়েতিভ আরে এবং শুধুমাত্র একটি নিয়মিত অ্যারের মধ্যে কোনো পার্থক্য 129 00:10:33,980 --> 00:10:36,740 হিসাবে আপনি তা সি মধ্যে মনে 130 00:10:36,740 --> 00:10:43,040 শুধু এই পর্যন্ত, এবং নিয়মিত একটি অ্যারের ফণা নীচে শুধু একটি মিশুক অ্যারে 131 00:10:43,040 --> 00:10:50,000 যেখানে কিছু মান 0 মানচিত্র একই ভাবে কিছু মান একটি মানচিত্র. 132 00:10:50,000 --> 00:11:00,410 এই কারণে, পিএইচপি সত্যিই দ্রুত কোড / মাপকাঠিতে জিনিসের জন্য চমত্কার খারাপ হতে পারে 133 00:11:00,410 --> 00:11:07,930 যেহেতু সি সালে যখন আপনি একটি অ্যারে ব্যবহার করছেন জানতে পারেন যে কোন সদস্য অ্যাক্সেস সময় ধ্রুবক. 134 00:11:07,930 --> 00:11:11,860 পিএইচপি একটি সদস্য অ্যাক্সেস হয় কে কতটা সময় জানে? 135 00:11:11,860 --> 00:11:18,970 এটি হয়ত ধ্রুবক যদি এটি সঠিকভাবে hashes. 136 00:11:18,970 --> 00:11:21,620 এটি কি সত্যিই ফণা নীচে এর করছে কে জানে? 137 00:11:21,620 --> 00:11:25,600 আপনি সত্যিই বাস্তবায়ন সময়ে কিভাবে যে নিয়ে যাচ্ছে দেখুন চেহারা প্রয়োজন. 138 00:11:25,600 --> 00:11:28,550 আমি তখন fopen. 139 00:11:28,550 --> 00:11:36,420 আমি মনে করি এখানে এর শুধু পিএইচপি ম্যানুয়াল fopen রিটার্ন টাইপ তাকান যাক. 140 00:11:36,420 --> 00:11:41,260 আমরা এখানে দেখতে আপনি আপ পিএইচপি পুস্তিকায় চেহারা কোনো ফাংশন কাছাকাছি পারেন 141 00:11:41,260 --> 00:11:47,540 এবং এই PHP 'র man পৃষ্ঠা বাছাই করা. 142 00:11:47,540 --> 00:11:51,060 রিটার্ন টাইপ যাও সংস্থান হবে. 143 00:11:51,060 --> 00:11:56,050 এটা কেন আমি এটি তাকিয়ে, কারণ আমরা সত্যিই সম্পদ বার নিরূপণ করে না. 144 00:11:56,050 --> 00:12:04,110 সি সম্পদ ধারণা, আপনি যে ধরনের একটি ফাইল * বা যাই হোক না কেন না; 145 00:12:04,110 --> 00:12:07,200 পিএইচপি সংস্থান হয় আপনার ফাইল *. 146 00:12:07,200 --> 00:12:10,360 এটা কি থেকে পড়া হবে করছেন, এটি কি আপনি লেখার করা চলুন. 147 00:12:10,360 --> 00:12:20,710 এটা সাধারণতঃ বহিরাগত, তাই একটি সংস্থান আপনি জিনিষ থেকে এবং বৈঠাচালনা জিনিষ নিক্ষেপ করতে পারেন. 148 00:12:20,710 --> 00:12:26,520 এবং পরিশেষে, কি শূন্য ধরণ? >> [ছাত্রদের] শূন্য. 149 00:12:26,520 --> 00:12:30,650 হাঁ. তাই শুধু যে শূন্য হয় শূন্য. 150 00:12:30,650 --> 00:12:33,480 শূন্য হয় শূন্য. 151 00:12:35,490 --> 00:12:41,170 >> পিএইচপি এর টাইপ সিস্টেম (ভালো বা খারাপ জন্য) এক বৈশিষ্ট্য হল তার ক্ষমতা ধরনের প্রতারণা. 152 00:12:41,170 --> 00:12:44,390 আপনি যখন পিএইচপি কোড যে বিভিন্ন ধরনের মান সম্মিলন একটি লাইন লিখুন, 153 00:12:44,390 --> 00:12:46,670 পিএইচপি যাও ইন্দ্রিয়গ্রাহ্য জিনিস করতে চেষ্টা করবে. 154 00:12:46,670 --> 00:12:48,920 পিএইচপি কোড নিম্নলিখিত পংক্তিগুলি প্রতিটি ব্যবহার করে দেখুন. প্রিন্ট আউট কি করছেন? 155 00:12:48,920 --> 00:12:51,000 এটা কি আপনার প্রত্যাশিত? কেন অথবা কেন নয়? 156 00:12:51,000 --> 00:12:58,600 পিএইচপি সম্পর্কে এই সত্যটি কি এটা কি আমরা কল স্বাস্থ্যহীন টাইপ. 157 00:12:58,600 --> 00:13:04,610 স্বাস্থ্যহীন টাইপ করা এবং দৃঢ়ভাবে টাইপ, 158 00:13:04,610 --> 00:13:06,840 ঐ পদের জন্য বিভিন্ন ব্যবহার রয়েছে, 159 00:13:06,840 --> 00:13:12,020 কিন্তু অধিকাংশ লোক জিনিস থেকে এই সাজানোর মানে স্বাস্থ্যহীন টাইপ এবং টাইপ জোরালোভাবে ব্যবহার 160 00:13:12,020 --> 00:13:15,920 যেখানে ("1" + 2); যে কাজ করে. 161 00:13:15,920 --> 00:13:18,290 সি ইন না যে কাজ করবে. 162 00:13:18,290 --> 00:13:22,490 আপনি এই কাজ না কল্পনা করতে পারেন. 163 00:13:22,490 --> 00:13:29,200 মানুষ অনেক প্রগতিশীল টাইপ মিশ্রিত করা এবং দুর্বল টাইপিং এবং স্ট্যাটিক টাইপিং এবং শক্তিশালী টাইপ আপ. 164 00:13:29,200 --> 00:13:34,050 পাইথন একটি ভাষা যে পরিবর্তনশীল এর টাইপ আরেকটি উদাহরণ. 165 00:13:34,050 --> 00:13:41,770 আপনি ভেরিয়েবল এ ধরনের কাছাকাছি এবং এটি চালানোর সময় নির্ধারণ করে যাচ্ছে নিক্ষেপ করতে পারেন 166 00:13:41,770 --> 00:13:44,680 কোনো ত্রুটি checkings. 167 00:13:44,680 --> 00:13:50,740 Python-এ এটি চালানো এবং এটি ("1" + 2) দেখতে পাবেন যাচ্ছে; 168 00:13:50,740 --> 00:13:55,920 এবং এই কারণ এটি আপনাকে একটি স্ট্রিং এবং একটি পূর্ণসংখ্যা যোগ করতে পারেন না বিফল হবে. 169 00:13:55,920 --> 00:14:00,860 পিএইচপি, যা শুধু হিসাবে পরিবর্তনশীল টাইপ ইন, এই কর্ম ব্যর্থ হবে না. 170 00:14:00,860 --> 00:14:04,220 দুর্বল টাইপ যে এটি ধরনের সঙ্গে জিনিস আছে না আছে 171 00:14:04,220 --> 00:14:07,800 যে ইন্দ্রিয় সত্যিই কি না অগত্যা. 172 00:14:07,800 --> 00:14:17,420 সুতরাং ("1" + 2); আমি স্ট্রিং 12 হচ্ছে, আমি এটা হচ্ছে স্ট্রিং 3 কল্পনা করা যাবে কল্পনা করতে পারেন, 173 00:14:17,420 --> 00:14:20,710 আমি এটা হচ্ছে পূর্ণসংখ্যা 3 কল্পনা করতে পারেন. 174 00:14:20,710 --> 00:14:24,530 এটা সংজ্ঞায়িত অগত্যা ভাল না এবং আমরা সম্ভবত করছি এখানে দেখতে যাওয়া 175 00:14:24,530 --> 00:14:29,140 যে, যখন আমরা মুদ্রণ ("1" + 2); সম্ভবত এটি এবং শেষ হচ্ছে বিভিন্ন যাচ্ছে 176 00:14:29,140 --> 00:14:32,320 তুলনায় প্রিন্টিং (1 + "2"). 177 00:14:32,320 --> 00:14:39,700 এবং এই আমার মতে, আরও খারাপ হতে জন্য, থাকে. 178 00:14:39,700 --> 00:14:44,240 এখানে আমরা এই চেষ্টা করতে পারেন. 179 00:14:44,240 --> 00:14:48,740 অন্য পিএইচপি সম্পর্কে সামান্য কৌতুক হয় আপনি আসলে ফাইলটি লিখতে হবে না. 180 00:14:48,740 --> 00:14:52,790 এই কমান্ড মোড আছে ফেলেছেন. 181 00:14:52,790 --> 00:14:57,710 সুতরাং এটি php-r, তাহলে আমরা এখানে কমান্ডের মধ্যে নিক্ষেপ করা যাবে: 182 00:14:57,710 --> 00:15:06,610 "মুদ্রণ ('1 '+ 2);" এবং আমি একটি নতুন লাইন নিক্ষেপ করা হবে. 183 00:15:19,550 --> 00:15:23,970 এই 3 মুদ্রিত. 184 00:15:31,100 --> 00:15:35,330 দেখে মনে হচ্ছে এটি 3 ছাপে এবং এটা পূর্ণসংখ্যা 3. 185 00:15:35,330 --> 00:15:38,420 তাই এখন যাক এর কাছাকাছি অন্য উপায় চেষ্টা করুন: 186 00:15:38,420 --> 00:15:42,970 "মুদ্রণ (1 + '2 '); 187 00:15:45,560 --> 00:15:50,490 আমরা 3 পেতে, এবং তা যাও পূর্ণসংখ্যা 3 হতে যাচ্ছে? আমি ভাল কোন ধারণা আছে. 188 00:15:50,490 --> 00:15:54,030 মনে যা সামঞ্জস্যপূর্ণ. 189 00:15:54,030 --> 00:15:59,550 যে পর্যন্ত এটি হচ্ছে স্ট্রিং 12 বা ভালো কিছু কোন সুযোগ না 190 00:15:59,550 --> 00:16:08,080 কারণ পিএইচপি, জাভাস্ক্রিপ্ট এবং অসদৃশ খুব জাভা, 191 00:16:08,080 --> 00:16:11,670 একটি সংযুক্তকরণের জন্য পৃথক অপারেটর আছে. 192 00:16:11,670 --> 00:16:14,930 পিএইচপি সংযুক্তকরণের হয় বিন্দু. 193 00:16:14,930 --> 00:16:22,950 সুতরাং প্রিন্টিং (1 '2 '.); আমাদের 12 দিতে হবে. 194 00:16:25,790 --> 00:16:32,420 এই বিভ্রান্তির যেখানে লোকেদের str + = ভালো কিছু করতে চেষ্টা করুন হতে থাকে 195 00:16:32,420 --> 00:16:37,840 অন্য কিছু জিনিস যে তারা তাদের স্ট্রিং শেষ উপর যুক্ত করতে চান, এবং যে ব্যর্থ হচ্ছে. 196 00:16:37,840 --> 00:16:40,770 আপনি str করতে হবে. = 197 00:16:42,000 --> 00:16:46,240 সুতরাং পিএইচপি সংযুক্তকরণের একটি বিন্দু ভুলবেন না. 198 00:16:46,240 --> 00:16:52,100 অন্য জিনিষ চেষ্টা: ("সি এস" + 50) মুদ্রণ; 199 00:16:55,750 --> 00:17:03,610 আমি আপনাকে বলেন যে এই থাকার কোনও আশা নেই CS50 ফলে আছে 200 00:17:03,610 --> 00:17:06,119 যেহেতু সংযুক্তকরণের + নয়. 201 00:17:06,119 --> 00:17:08,440 আপনি কি মনে করেন এই পর্যন্ত শেষ হচ্ছে যাচ্ছে? 202 00:17:10,359 --> 00:17:13,460 আমি কখনই ভাল কোন ধারণা আছে. 203 00:17:14,250 --> 00:17:16,460 দেখে মনে হচ্ছে এটি শুধু 50. 204 00:17:16,460 --> 00:17:21,490 এটি স্ট্রিং সূচিত, এবং আমি বাজি ধরতে পারি যদি আমরা 123CS করা - 205 00:17:21,490 --> 00:17:29,640 এটা প্রথম পংক্তি দেখে এটা থেকে একটি পূর্ণসংখ্যা বা এটি একটি নম্বর থেকে পড়া চেষ্টা করে. 206 00:17:29,640 --> 00:17:31,710 এটি এই ক্ষেত্রে সূচিত 123CS. 207 00:17:31,710 --> 00:17:35,190 "এই একটি পূর্ণসংখ্যা হিসাবে না জানার জন্য না, তাই আমি মনে করি 123 নিকট যাচ্ছে." 208 00:17:35,190 --> 00:17:38,580 তাই + 123 50 173 হতে চলেছে. 209 00:17:38,580 --> 00:17:40,740 এবং এখানে এটি শুরু হয় একটি পূর্ণসংখ্যা হিসাবে এই পড়া. 210 00:17:40,740 --> 00:17:45,690 এটা কিছু না দেখতে পাচ্ছেন না, তাই এটা এটা হিসাবে 0 একইরূপে. 0 তাই + 50 থেকে 50 হবে. 211 00:17:45,690 --> 00:17:51,600 এই আমি ধৃষ্ট করছি অনুরূপ কিছু করতে হবে. 212 00:17:51,600 --> 00:17:54,310 আমি চিন্তা করছি 99. 213 00:17:54,310 --> 00:17:57,580 হাঁ, কারণ প্রথম নিতে যাচ্ছে - 214 00:18:12,880 --> 00:18:15,730 তাই 99. 215 00:18:15,730 --> 00:18:21,970 এখানে (10/7), যদি এই ছিল সি কি, যে ফিরে আসবে? 216 00:18:23,700 --> 00:18:29,630 1 [ছাত্রদের]. >> হ্যাঁ, এটি 1 কারণ 10/7 2 পূর্ণসংখ্যার বিভাজক হয় হবে. 217 00:18:29,630 --> 00:18:32,910 পূর্ণসংখ্যা মান পূর্ণসংখ্যা দ্বারা বিভক্ত একটি পূর্ণসংখ্যা ফিরে যাচ্ছে. 218 00:18:32,910 --> 00:18:37,750 এটি 1 পয়েন্ট যাই হোক না কেন যে হবে, ফিরে না, তাই এটা এর যাও 1 ফিরে যাওয়া যাবে. 219 00:18:37,750 --> 00:18:46,120 এখানে মুদ্রণ (10/7); এটা আসলে যে ব্যাখ্যা করা যাচ্ছে. 220 00:18:46,120 --> 00:18:53,760 এবং এর মানে হল যে যদি আপনি আসলে যে ভালো পূর্ণসংখ্যা rounding পণ্যদ্রব্য এবং কাজ করতে চান, 221 00:18:53,760 --> 00:18:59,950 আপনি মুদ্রণ (ফ্লোর (10/7)) করতে হবে; 222 00:18:59,950 --> 00:19:08,460 এটি সি ইন সম্ভবত অদ্ভুত যে আপনি নিয়মিত পূর্ণসংখ্যা truncation উপর নির্ভর করতে পারেন, 223 00:19:08,460 --> 00:19:12,260 কিন্তু পিএইচপি আপনাকে করতে হবে না কারণ এটি স্বয়ংক্রিয়ভাবে না একটি float এটা করান. 224 00:19:13,430 --> 00:19:17,610 এবং তারপর (7 + সত্য); কি আপনি মনে করেন না যে হতে যাচ্ছে? 225 00:19:18,550 --> 00:19:23,640 আমি 8 করছি অনুমান যদি 1 সত্য হিসাবে ব্যাখ্যা করা যাচ্ছে. 226 00:19:23,640 --> 00:19:25,740 দেখে মনে হচ্ছে এটা 8. 227 00:19:25,740 --> 00:19:31,710 >> সুতরাং কিছু আমরা গত 10 মিনিট আপনি কখনই করবেন না সালে সম্পন্ন করেছি. 228 00:19:31,710 --> 00:19:39,870 আপনি যে এই কোড আছে দেখতে হবে. 229 00:19:39,870 --> 00:19:42,700 এই হিসাবে হিসাবে সহজবোধ্য হতে হবে তা নয়. 230 00:19:42,700 --> 00:19:47,240 আপনি 2 ভেরিয়েবল আছে, এবং 1 পরিবর্তনশীল এর স্ট্রিং এরকম হতে পারে 231 00:19:47,240 --> 00:19:51,310 এবং অন্যান্য পরিবর্তনশীল যাও কোন int হতে হবে, এবং তারপর আপনি একসঙ্গে এই ভেরিয়েবল যোগ করুন. 232 00:19:51,310 --> 00:20:00,120 যেহেতু পরিবর্তনশীল পিএইচপি টাইপ করা হলে এবং এটি আপনার জন্য যে কোনো ধরনের পরীক্ষা দেবে না 233 00:20:00,120 --> 00:20:03,640 এবং যেহেতু এটি টাইপ গুরুত্বহীন এবং এর থেকে স্বয়ংক্রিয়ভাবে এটি শুধুমাত্র এই জিনিসগুলি নিয়ে একসাথে নিক্ষেপ করা হবে 234 00:20:03,640 --> 00:20:11,490 এবং সব ঠিক কাজ করবে না, এটা এমন যে এই পরিবর্তনশীল এখন একটি পংক্তি হওয়া আবশ্যক জানা কঠিন, 235 00:20:11,490 --> 00:20:14,930 তাই আমি এই পরিবর্তনশীল এটি যোগ করা উচিত, যা একটি পূর্ণসংখ্যা. 236 00:20:18,780 --> 00:20:24,560 সর্বোত্তম অভ্যাস হয় যদি একটি পরিবর্তনশীল একটি স্ট্রিং, একটি পংক্তি হিসাবে চিরকালের জন্য এটা রাখা. 237 00:20:24,560 --> 00:20:26,980 যদি একটি ভেরিয়েবল হল কোন int, কোন int হিসাবে চিরকালের জন্য এটা রাখা. 238 00:20:26,980 --> 00:20:30,770 আপনি যদি ইন্টিজার এবং স্ট্রিং মোকাবেলা করতে চান, 239 00:20:30,770 --> 00:20:36,970 আপনি varsint ব্যবহার করতে পারেন - এটা জাভাস্ক্রিপ্ট. 240 00:20:36,970 --> 00:20:42,520 Intval. আমি সব সময় এই. পিএইচপি এবং জাভাস্ক্রিপ্ট আমি মিশ্রিত করা সবকিছু আপ. 241 00:20:42,520 --> 00:20:47,600 সুতরাং intval একটি ভেরিয়েবলের মান পূর্ণসংখ্যা ফিরে যাচ্ছে. 242 00:20:47,600 --> 00:20:56,550 যদি আমরা "মুদ্রণ (intval ('123 ')) পাস; আপনি 123 পেতে. 243 00:21:06,820 --> 00:21:15,850 Intval নিজেই আমাদের জন্য চেক যে এটি কেবলমাত্র একটি পূর্ণসংখ্যা করতে হবে না. 244 00:21:15,850 --> 00:21:20,460 পিএইচপি ম্যানুয়াল, ঠিক তাই অনেক ফাংশন নেই, 245 00:21:20,460 --> 00:21:26,560 তাই এখানে আমি মনে করি আমি কি ব্যবহার করে প্রথম is_numeric. 246 00:21:26,560 --> 00:21:32,590 আমি যে ফিরে মিথ্যা অনুমান করছি. 247 00:21:32,590 --> 00:21:35,780 এটা অন্য জিনিস আমরা হয় === মাধ্যমে যেতে হবে. 248 00:21:37,850 --> 00:21:44,020 সুতরাং is_numeric ('123df '), আপনি যে হিসাবে is_numeric মনে করবেন না. 249 00:21:44,020 --> 00:21:46,720 সি আপনি সমস্ত অক্ষর পুনরুক্তি উপর থাকবে 250 00:21:46,720 --> 00:21:50,410 এবং যদি প্রতিটি অক্ষর অঙ্ক যাই হোক না কেন বা দেখুন. 251 00:21:50,410 --> 00:21:53,850 এখানে is_numeric আমাদের জন্য যা করতে হবে, 252 00:21:53,850 --> 00:21:56,520 এবং এটা মিথ্যা ফিরে পাবে. 253 00:21:56,520 --> 00:22:02,120 সুতরাং যখন আমি যে মুদ্রিত, এটা কিছুই মুদ্রিত, তাই এখানে আমি এটা দেখতে তুলনা করছি, 254 00:22:02,120 --> 00:22:05,490 আপনি কি মিথ্যা ঘটবে? এবং এখন তাই এটি 1 মুদ্রণ এর. 255 00:22:05,490 --> 00:22:10,060 দৃশ্যত এটি পরিবর্তে মুদ্রণ সত্য হিসাবে সত্য সত্য হিসাবে 1 ছাপে. 256 00:22:10,060 --> 00:22:15,790 আমি ভাবছি আমি print_r না. না, এটা এখনও আছে 1. 257 00:22:15,790 --> 00:22:26,760 >> === যাব ফিরে, এখনও == বিদ্যমান, 258 00:22:26,760 --> 00:22:32,260 এবং যদি আপনি টমি কথা বলতে তিনি == পুরোপুরি সূক্ষ্ম বলবো. 259 00:22:32,260 --> 00:22:37,700 আমি যে == হয় ভয়ানক এবং আপনি == কখনও ব্যবহার করা উচিত বলে যাচ্ছি. 260 00:22:37,700 --> 00:22:44,870 পার্থক্য হল যে জিনিস == তুলনা 261 00:22:44,870 --> 00:22:48,450 যেখানে এটি সত্য এমনকি যদি তারা একই ধরনের পারব না হতে পারেন, 262 00:22:48,450 --> 00:22:53,810 যেহেতু === জিনিষ তুলনা এবং প্রথমে চেক তারা একই প্রকারের? 263 00:22:53,810 --> 00:22:58,010 হ্যাঁ. ঠিক আছে এখন, আমি যদি তারা আসলে সমান হতে তুলনা দেখতে যাচ্ছি. 264 00:22:58,010 --> 00:23:08,890 আপনি পেতে 10 মত অদ্ভুত জিনিস সমান - এর কি যে দেখতে দিন. 265 00:23:08,890 --> 00:23:15,570 সুতরাং ('10 '== e1 '1'); 266 00:23:15,570 --> 00:23:17,980 এই ফেরত্ সত্য. 267 00:23:17,980 --> 00:23:21,420 কারো কাছে কি কোন অনুমান কেন এই ফেরত্ সত্য আছে? 268 00:23:25,180 --> 00:23:27,120 এটা আমার মনে হয় না. হয়তো এই একটি ইঙ্গিত. 269 00:23:27,120 --> 00:23:33,170 কিন্তু যদি আমি একটি চ যাও যে পরিবর্তন - এটা অভিশাপ! আমি রাখা উদ্ধৃতি চিহ্ন ব্যবহার করে. 270 00:23:33,170 --> 00:23:38,780 কারণ উদ্ধৃতি চিহ্ন সম্পর্কে এ yelling হয় কারণ আমি উদ্ধৃতি চিহ্ন এই রেখেছি. 271 00:23:38,780 --> 00:23:43,850 তাই আমি এখানে উদ্ধৃতি চিহ্ন অব্যাহতি, কিন্তু একক উদ্ধৃতি চিহ্ন পাওয়া আরও সহজ করতে পারে. 272 00:23:43,850 --> 00:23:49,120 সুতরাং ('10 '== F1 '1'); সত্য না মুদ্রণ. ('10 '== E1 '1'); ছাপে সত্য. 273 00:23:49,120 --> 00:23:56,330 [ছাত্রদের] এটা হেক্স? >> এটা, কিন্তু হেক্স না এটা বন্ধ হয় যে এটা মত - 274 00:23:56,330 --> 00:24:01,060 1e1, বৈজ্ঞানিক স্বরলিপি. 275 00:24:01,060 --> 00:24:07,950 এটি 1 হিসাবে স্বীকৃতি 1e1 * 10 ^ 1 বা যাই হোক না কেন. 276 00:24:07,950 --> 00:24:11,510 সেগুলো হল সমান ইন্টিজার. 277 00:24:11,510 --> 00:24:15,930 যদি আমরা === কি তাহলে মিথ্যা হতে যাচ্ছে. 278 00:24:15,930 --> 00:24:28,490 আমি আসলে কোন ধারণা আছে যদি আমরা কি কি বিষয়ে == (10 এবং '10abc ');? ঠিক আছে. সুতরাং এটা সত্য. 279 00:24:28,490 --> 00:24:35,940 তাই যখন আপনি (10 + '10abc ') কি পছন্দ করেন; এবং এটা 20 হবে, 280 00:24:35,940 --> 00:24:38,800 এখানে (10 == '10abc '); সত্য. 281 00:24:38,800 --> 00:24:45,350 এমনকি খারাপ জিনিসগুলি ভালো (মিথ্যা == NULL); সত্য 282 00:24:45,350 --> 00:24:52,210 অথবা (মিথ্যা == 0); সত্য, (মিথ্যা == []); 283 00:24:52,210 --> 00:25:00,970 এর রহস্যময় মামলা আছে - এটা ঐ অদ্ভুত ক্ষেত্রে এক. 284 00:25:00,970 --> 00:25:08,110 যে উল্লেখ্য, (মিথ্যা == []); সত্য. 285 00:25:08,110 --> 00:25:11,950 ('0 '== মিথ্যা); সত্য. 286 00:25:11,950 --> 00:25:16,090 ('0 '== []); মিথ্যা. 287 00:25:16,090 --> 00:25:19,090 সুতরাং == কোন উপায় সকর্মক হয়. 288 00:25:19,090 --> 00:25:26,830 একটি বো সমান হতে হবে এবং তা একটি সমান গ হতে পারে, 289 00:25:26,830 --> 00:25:29,340 কিন্তু বো সমান গ যাও নাও হতে পারে. 290 00:25:29,340 --> 00:25:35,580 এটা আমার একটি কদর্যতা, এবং আপনি সবসময় === ব্যবহার করা উচিত. 291 00:25:35,580 --> 00:25:38,590 [ছাত্রদের] আমরা! == হিসাবে ভাল করতে পারি? >> [Bowden] হ্যাঁ. 292 00:25:38,590 --> 00:25:44,600 সমতুল্য! হবে = এবং! ==. 293 00:25:44,600 --> 00:25:48,230 এই প্রকৃতপক্ষে pset বৈশিষ্ট মধ্যে প্রতিপালিত 294 00:25:48,230 --> 00:25:52,000 যেখানে ফাংশন রিটার্ন অনেক - 295 00:25:52,000 --> 00:25:53,890 পিএইচপি ম্যানুয়াল হয় এই সম্পর্কে ভাল. 296 00:25:53,890 --> 00:25:59,140 এটা একটি বড় লাল বাক্সে রাখে, "এই মিথ্যা যদি একটি ত্রুটি আছে ফিরে আসবে." 297 00:25:59,140 --> 00:26:03,940 কিন্তু ফিরে 0 একটি পুরোপুরি যুক্তিসঙ্গত জিনিস ফিরে. 298 00:26:03,940 --> 00:26:08,250 কোনো ফাংশন যা একটি পূর্ণসংখ্যা ফিরে পাওয়ার আশা করা যায় আমার মনে. 299 00:26:11,250 --> 00:26:17,880 চলুন শুরু করা যাক বলতে এই ফাংশনটি একটি ফাইল বা কিছু মধ্যে লাইনের সংখ্যা গণনা অনুমিত হয়. 300 00:26:17,880 --> 00:26:23,490 স্বাভাবিক পরিস্থিতিতে, আপনি পাস একটি ফাইল এই ফাংশন 301 00:26:23,490 --> 00:26:27,120 এবং এটি একটি পূর্ণসংখ্যা যা লাইনের সংখ্যা উপস্থাপন করে ফিরে যাচ্ছে. 302 00:26:27,120 --> 00:26:30,820 সুতরাং 0 একটি পুরোপুরি যুক্তিসঙ্গত নম্বর যদি ফাইলটি শুধুমাত্র খালি. 303 00:26:30,820 --> 00:26:36,810 যদি আপনি একটি অবৈধ পাস ফাইল এবং এটি কি তবে ফাংশন মিথ্যা প্রত্যাবর্তন ঘটবে 304 00:26:36,810 --> 00:26:38,860 যদি আপনি এটি একটি অবৈধ ফাইল পাস? 305 00:26:38,860 --> 00:26:46,500 যদি আপনি করবেন == আপনি অবৈধ ফাইল এবং খালি ফাইল মধ্যে পার্থক্যকারী কেস করছি না. 306 00:26:48,870 --> 00:26:51,350 সর্বদা === ব্যবহার. 307 00:26:55,690 --> 00:26:58,000 এটা যারা সব. 308 00:26:58,000 --> 00:27:01,660 >> পিএইচপি, অ্যারে টাইপ করি তা হল আপনার মধ্যে সি ব্যবহার করতেন থেকে বিভিন্ন 309 00:27:01,660 --> 00:27:06,650 প্রকৃতপক্ষে, আপনি ইতিমধ্যে এই উপরে আছে খেয়াল হতে পারে যখন আপনি দেখেছি যে এই টাইপ অ্যারের হয়. 310 00:27:06,650 --> 00:27:15,640 বন্ধনী সিনট্যাক্স হল পিএইচপি 5.4, যা পিএইচপি নবীনতম সংস্করণ হিসাবে নতুন. 311 00:27:15,640 --> 00:27:36,960 > 1, 'খ' - -> 2 এই পূর্বে সর্বদা অ্যারে ('একটি' লিখুন ছিল. 312 00:27:36,960 --> 00:27:41,160 এটা ছিল একটি অ্যারের জন্য রচয়িতা. 313 00:27:41,160 --> 00:27:45,950 এখন অবশেষে পিএইচপি কেবল বর্গাকার বন্ধনী চমৎকার সিনট্যাক্স যাও করেনি আসা কাছাকাছি, 314 00:27:45,950 --> 00:27:50,900 যা ঠিক তাই অ্যারের অনেক বেশী ভালো. 315 00:27:50,900 --> 00:27:54,480 কিন্তু পিএইচপি 5.4 বিবেচনা করা হয় নবীনতম সংস্করণ, 316 00:27:54,480 --> 00:27:59,090 আপনি যে জায়গা পিএইচপি 5.3 এমনকি নেই সম্মুখীন হতে পারে. 317 00:27:59,090 --> 00:28:08,220 গ্রীষ্মকালে যখন আমরা এই সমস্যাটি গাড়ীতে আঘাত যেখানে পিএইচপি 5.3 ছিল কি আমরা প্রয়োগ উপর ছিল, 318 00:28:08,220 --> 00:28:14,480 কিন্তু সার্ভারটি যে আমরা আমাদের সব গ্রেড বই স্থাপন এবং জমা এবং যে সকল স্টাফ 319 00:28:14,480 --> 00:28:16,750 ছিল পিএইচপি 5.4. 320 00:28:16,750 --> 00:28:23,060 বুদ্ধিমান এই নেই, আমরা উন্নত 5.3 5.4, ধাক্কা, 321 00:28:23,060 --> 00:28:25,660 এবং এখন আমাদের কোড হঠাত্ none 'ও সব কাজ করে 322 00:28:25,660 --> 00:28:28,680 কারণ হয়েছে 5.3 এবং 5.4 মধ্যে পরিবর্তন ঘটেছে সেখানে 323 00:28:28,680 --> 00:28:31,030 যা সাযুজ্যপূর্ণ নয়, 324 00:28:31,030 --> 00:28:35,770 এবং আমরা যেতে সমস্ত জিনিস যে আমাদের পিএইচপি 5.4 জন্য কাজ করি না ঠিক করা আছে. 325 00:28:39,210 --> 00:28:42,320 এই শ্রেণীর জন্য, সমস্ত যন্ত্র আছে পিএইচপি 5.4 আছে, 326 00:28:42,320 --> 00:28:45,490 এটা পুরোপুরি জরিমানা বর্গাকার বন্ধনী ব্যবহার করুন. 327 00:28:47,240 --> 00:28:50,440 তবে আপনি যদি ইন্টারনেট চারপাশ ঘুরে জিনিষ আপ করছি, 328 00:28:50,440 --> 00:28:54,880 যদি আপনি অ্যারে স্টাফ কিছু খুঁজছেন আপ করছি, খুব সম্ভবত আপনি দেখতে যাচ্ছেন 329 00:28:54,880 --> 00:29:02,020 অ্যারে রচয়িতা সিনট্যাক্স আউট বানান থেকে যে পিএইচপি থেকে এর আগে প্রায় জন্মগ্রহণ করেন 330 00:29:02,020 --> 00:29:07,340 এবং গুরুবন্ধনী সিনট্যাক্স বিগত কয়েক মাস ধরে প্রায় করেনি 331 00:29:07,340 --> 00:29:10,020 যখনই 5.4 বা কাছাকাছি এসেছিলেন. 332 00:29:10,020 --> 00:29:12,710 এই ভাবে আপনি সূচক. 333 00:29:12,710 --> 00:29:30,610 সি মতো কিভাবে আপনি $ অ্যারের [0], $ অ্যারের [1], $ অ্যারের [2], ভালো বর্গাকার বন্ধনী দ্বারা ইনডেক্স করবে 334 00:29:30,610 --> 00:29:36,320 আপনি যদি একই ভাবে আপনি আপনার সূচকগুলি হচ্ছে স্ট্রিং আছে ঘটতে সূচক. 335 00:29:36,320 --> 00:29:40,440 সুতরাং $ অ্যারের ['একটি'] $ এবং অ্যারের ['খ']. 336 00:29:40,440 --> 00:29:47,410 $ অ্যারের [খ]. কেন এই ভুল করা হবে? 337 00:29:52,490 --> 00:29:59,870 এটি সম্ভবত একটি সতর্কবার্তা উৎপন্ন কিন্তু এখনও কাজ করবে. পিএইচপি কি সেটা থাকে. 338 00:29:59,870 --> 00:30:04,890 এটা প্রমান করে যে, "আমি এই বিষয়ে আপনাকে সতর্ক চলেছি যাও থাকে, কিন্তু আমি শুধু যাও বর্তা যাচ্ছে 339 00:30:04,890 --> 00:30:07,550 "যাই হোক না কেন এবং কি আমি করতে পারেন." 340 00:30:07,550 --> 00:30:11,500 এটি সম্ভবত একটি পংক্তি এই অনুবাদ হবে, 341 00:30:11,500 --> 00:30:15,000 কিন্তু এটা সম্ভব যে বিগত কাউকে কিছু স্থানে বলেন, 342 00:30:15,000 --> 00:30:20,180 বো to be 'হ্যালো ওয়ার্ল্ড' সংজ্ঞায়িত. 343 00:30:20,180 --> 00:30:28,740 তাই এখন বো একটি ধ্রুবক এবং $ অ্যারে হতে পারে [খ] আসলে কাজ করা 'হ্যালো ওয়ার্ল্ড' হবে. 344 00:30:28,740 --> 00:30:32,380 আমি এই সময়ে মনে হয়, অথবা অন্তত আমাদের পিএইচপি সেটিংস, 345 00:30:32,380 --> 00:30:37,870 যদি আপনি সূচক চেষ্টা একটি অ্যারের মধ্যে এবং যে কি না বিদ্যমান, তা ব্যর্থ হবে. 346 00:30:37,870 --> 00:30:40,150 আমি এটা আপনি সতর্কবার্তা প্রদর্শন করা হবে তা মনে করি না. 347 00:30:40,150 --> 00:30:44,560 বা অন্তত আপনি এটি সেট যাতে এটা আপনাকে সতর্ক করতে পারে না, এটা সোজা আপ ব্যর্থ. 348 00:30:44,560 --> 00:30:49,290 >> উপায় আপনি যদি আসলে যেমন একটি সূচক আছে দেখুন isset হয়. 349 00:30:49,290 --> 00:30:54,690 সুতরাং isset ($ অ্যারের ['হ্যালো ওয়ার্ল্ড']) মিথ্যা ফিরে আসবে. 350 00:30:54,690 --> 00:30:59,160 isset ($ অ্যারের ['খ']) সত্য ফিরে আসবে. 351 00:31:06,830 --> 00:31:09,880 আপনি এই syntaxes মিশ্রিত করা যাবে. 352 00:31:15,060 --> 00:31:22,440 আমি কি সুন্দর এই অ্যারে আপ হচ্ছে শেষ হয়ে যাবে মনে হয় - আমরা এটি পরীক্ষা করে দেখতে পারেন. 353 00:31:43,290 --> 00:31:45,700 ওহ, আমি PHPWord প্রয়োজন. 354 00:31:53,960 --> 00:32:00,260 এই বাক্য গঠন যেখানে আপনি কি কি উল্লেখ করা হয় মিশ 355 00:32:00,260 --> 00:32:03,330 এবং আপনি কি কি না নির্দিষ্ট করে. 356 00:32:03,330 --> 00:32:05,520 তাই 3 এখানে ডান একটি মান. 357 00:32:05,520 --> 00:32:08,080 আপনি না স্পষ্টভাবে বলেন, তার কি কি হতে যাচ্ছে. 358 00:32:08,080 --> 00:32:11,670 আপনি কি মনে করেন তার কি হবে? 359 00:32:11,670 --> 00:32:21,410 0 [ছাত্রদের]. >> আমি 0 অনুমান করছি শুধুমাত্র কারণ এটা প্রথম আমরা একটি নির্দিষ্ট করেন নি. 360 00:32:21,410 --> 00:32:23,500 আমরা আসলে এই ক্ষেত্রে একটি দম্পতি করতে পারেন. 361 00:32:23,500 --> 00:32:28,030 সুতরাং print_r হয় recursive মুদ্রণ. এটা সম্পূর্ণ অ্যারে মুদ্রণ করা. 362 00:32:28,030 --> 00:32:32,700 এটা অ্যারের subarrays মুদ্রণ যদি কোনো দিন ছিল. 363 00:32:32,700 --> 00:32:36,630 সুতরাং print_r ($ অ্যারে); php.test.php. 364 00:32:36,630 --> 00:32:38,810 এটি মত দিয়েছেন 0 এটা দেখাচ্ছে. 365 00:32:38,810 --> 00:32:43,530 এর প্রকৃতপক্ষে কিছু আছে এখানে মনে রাখা, কিন্তু আমরা তা পেতে একটি দ্বিতীয় ফিরে পাবেন. 366 00:32:43,530 --> 00:32:45,850 কিন্তু যদি আমি এই সূচক 1 ঘটতে না? 367 00:32:45,850 --> 00:32:51,170 পিএইচপি স্ট্রিং সূচকগুলি এবং পূর্ণসংখ্যা সূচকের মধ্যে পার্থক্য আছে না, 368 00:32:51,170 --> 00:33:00,280 তাই এই সময়ে আমি একটি সূচক 1 সংজ্ঞায়িত করেছি এবং আমি উভয় $ অ্যারের [1] এবং $ অ্যারের ['1 '] কি করতে পারেন 369 00:33:00,280 --> 00:33:06,250 এবং এটি একই সূচক এবং একই কী হবে. 370 00:33:06,250 --> 00:33:13,000 সুতরাং এখন কি আপনি মনে 3 হতে যাচ্ছে? >> [ছাত্রদের] 2. >> [Bowden] আমি অনুমান করছি 2. 371 00:33:16,000 --> 00:33:18,690 হাঁ. এটা 2. 372 00:33:18,690 --> 00:33:24,790 , যদি আমরা কি এই 10 এই 4? আপনি কি মনে করেন 3 সূচী হতে যাচ্ছে? 373 00:33:27,360 --> 00:33:29,110 আমি চিন্তা করছি 11. 374 00:33:29,110 --> 00:33:33,060 কি আছে পিএইচপি হিসাবে আমার অনুমান - এবং আমি মনে করি এই আমি করেছি আগে দেখা - 375 00:33:33,060 --> 00:33:39,760 না এটা কি সর্বোচ্চ সাংখ্যিক সূচী এটি এ পর্যন্ত ব্যবহৃত হয় ট্র্যাক রাখে. 376 00:33:39,760 --> 00:33:44,230 এটি 3 থেকে একটি পংক্তি সূচক দায়িত্ব অর্পণ করা যাচ্ছে না. এটা সবসময় একটি সাংখ্যিক সূচক হবে. 377 00:33:44,230 --> 00:33:47,690 সুতরাং এটি সর্বোচ্চ এক এতদূর নিয়োগ এর, যা 10 ঘটবে ট্র্যাক রাখে, 378 00:33:47,690 --> 00:33:52,540 এবং এটি 3 থেকে 11 দিন যাচ্ছে. 379 00:33:52,540 --> 00:34:02,110 আমি কি আগে বলেন, এটার এই অ্যারে হয় মুদ্রণ বিজ্ঞপ্তি. 380 00:34:02,110 --> 00:34:06,850 এটা কি 10 ছাপে, কী 4, 11 কী, কী ঘ. 381 00:34:06,850 --> 00:34:09,790 বা এমন কি এর যাক - 382 00:34:15,760 --> 00:34:22,489 আর আমি মনে 0 বার করা না, কিন্তু এটা মুদ্রণ 1, 2, 3, 4. 383 00:34:22,489 --> 00:34:29,330 আমি যদি এখানে সুইচ অথবা আমি কি আসলে এই 2 সুইচ. 384 00:34:29,330 --> 00:34:31,940 এখন এটি 2, 1, 3, 4 ছাপে. 385 00:34:31,940 --> 00:34:41,270 পিএইচপি এর অ্যারে শুধুমাত্র আপনার নিয়মিত হ্যাশ টেবিল এর মত না. 386 00:34:41,270 --> 00:34:45,570 এটা পুরোপুরি যুক্তিসঙ্গত তাদের হ্যাশ টেবিল সময় 99% হিসাবে মনে করি. 387 00:34:45,570 --> 00:34:53,790 কিন্তু আপনার হ্যাশ টেবিল যাতে যা জিনিষ ঢোকানো হয় কোন অনুভূতি নেই. 388 00:34:53,790 --> 00:34:56,639 সুতরাং যত তাড়াতাড়ি আপনি আপনার হ্যাশ টেবিল মধ্যে সন্নিবেশ, 389 00:34:56,639 --> 00:35:00,590 অনুমান কোন লিঙ্ক তালিকা আছে এবং আপনি একটি লিঙ্ক তালিকা মধ্যে বিচারক পারে 390 00:35:00,590 --> 00:35:03,980 যা প্রথম ঢোকানো ছিল. 391 00:35:03,980 --> 00:35:10,060 কিন্তু আমরা এখানে 2 প্রথম ঢোকানো এবং জানেন যখন এই অ্যারে প্রিন্ট আউট যে 2 এর প্রথম আসে. 392 00:35:10,060 --> 00:35:13,090 এটা প্রমান করে যে কোনো অনুক্রমে তা না প্রিন্ট আউট. 393 00:35:13,090 --> 00:35:17,550 প্রযুক্তিগত তথ্য কাঠামো যে এটি ব্যবহার করে এর একটি মানচিত্র নির্দেশ দেয়, 394 00:35:17,550 --> 00:35:24,690 তাই এটা মান নির্দেশক মানচিত্র এবং এটি ক্রম যা তাদের কি ঢোকানো ছিল মনে. 395 00:35:24,690 --> 00:35:31,600 মূলত এটি কিছু জটিলতা যেখানে এটা আসলে বিরক্তিকর যাও যাও এর - 396 00:35:31,600 --> 00:35:34,510 চলুন শুরু করা যাক বলতে আপনি একটি অ্যারের 0, 1, 2, 3, 4, 5 আছে 397 00:35:34,510 --> 00:35:37,700 এবং আপনি সূচক 2 নিতে চান. 398 00:35:37,700 --> 00:35:47,750 এরকম ওয়ান ওয়ে, কি যে এর মতো দেখতে দেখতে দিন. 399 00:35:47,750 --> 00:35:50,410 0, 2, 1, 3, 4. 400 00:35:50,410 --> 00:35:54,880 আনসেট উভয় ভেরিয়েবল এবং অ্যারের সূচকগুলি আনসেট ঘটবে. 401 00:35:54,880 --> 00:35:58,630 সুতরাং আনসেট ($ অ্যারের [2]); 402 00:35:58,630 --> 00:36:03,430 এখন কি ভালো সন্ধান করছেন? 2 ঠিক চলে গেছে, তাই এটা পুরোপুরি সূক্ষ্ম. 403 00:36:03,430 --> 00:36:11,670 আরো বিরক্তিকর হয় যদি আপনি একটি অ্যারের ভালো জিনিস আসলে হতে চান. 404 00:36:11,670 --> 00:36:14,910 আমি র্যান্ডম সংখ্যার রেখে দেব. 405 00:36:14,910 --> 00:36:20,400 এখন আমার সূচকগুলি বিজ্ঞপ্তি. 406 00:36:20,400 --> 00:36:26,860 1 - আমি এটি একটি সি অ্যারের মত শুধু যেখানে এটি থেকে 0 দ্বারা যায় হতে চান 407 00:36:26,860 --> 00:36:30,810 এবং আমি এটি উপর যেমন পুনরুক্তি করতে পারেন. 408 00:36:30,810 --> 00:36:38,520 কিন্তু যত তাড়াতাড়ি আমি দ্বিতীয় সূচক, সূচক 3 কি ছিল আনসেট সূচক 2 এখন হত্তয়া না. 409 00:36:38,520 --> 00:36:44,790 এর পরিবর্তে এটি যে শুধুমাত্র ইনডেক্স মুছে ফেলা হয় ও এখন আপনি 0, 1, 3, 4 যান. 410 00:36:44,790 --> 00:36:48,740 এটি পুরোপুরি যুক্তিসঙ্গত. 411 00:36:48,740 --> 00:36:53,950 শুধু বিরক্তিকর এবং আপনি অ্যারে সংযুক্ত করান ভালো কিছু করার আছে. হাঁ. 412 00:36:53,950 --> 00:36:57,200 >> [ছাত্রদের] যদি আপনি লুপের জন্য একটি ছিল ঘটতে পারে 413 00:36:57,200 --> 00:36:59,630 এবং আপনি সমস্ত উপাদানের উপরে যেতে চেয়েছিলেন? 414 00:36:59,630 --> 00:37:02,290 যখন এটি 2 আঘাত, এটা কখনও সমর্পণ করা হবে? 415 00:37:02,290 --> 00:37:10,150 একটি অ্যারের উপর Iterating. 2 উপায়ে আপনি এটি করতে পারেন. 416 00:37:10,150 --> 00:37:12,770 আপনি লুপের জন্য একটি নিয়মিত ব্যবহার করতে পারেন. 417 00:37:12,770 --> 00:37:22,000 এই PHP 'র আরেকটি জটিলতা. 418 00:37:22,000 --> 00:37:27,420 বেশীরভাগ ভাষা শিক্ষা, আমি বলতে হবে, দৈর্ঘ্য বা Len বা কিছু কিছু বাছাই করা আছে 419 00:37:27,420 --> 00:37:30,470 একটি অ্যারের দ্বারা চিহ্নিত করা হবে. 420 00:37:30,470 --> 00:37:32,820 এটি পিএইচপি এর গণনা. 421 00:37:32,820 --> 00:37:36,160 সুতরাং গণনা ঃ ($ অ্যারে); $ i + +) 422 00:37:36,160 --> 00:37:42,950 চলুন শুরু করা যাক ঠিক মুদ্রণ ($ অ্যারের [$ i]); 423 00:37:45,920 --> 00:37:48,820 নোটিশ: অনির্দিষ্ট অফসেট: 2. 424 00:37:48,820 --> 00:37:51,610 এটা ঠিক এর নারা যাচ্ছে. 425 00:37:51,610 --> 00:38:03,020 এই কারণে যে, অধিকাংশ অংশ জন্য, আপনি ভালো একটি অ্যারের উপর পুনরুক্তি করা প্রয়োজন হবে না. 426 00:38:03,020 --> 00:38:07,110 এটি একটি রঙ হতে পারে, কিন্তু আপনি ভালো একটি অ্যারের উপর পুনরুক্তি করা প্রয়োজন হবে না পারে 427 00:38:07,110 --> 00:38:19,410 কারণ পিএইচপি প্রদান করে তার foreach সিনট্যাক্স যেখানে foreach ($ $ অ্যারে হিসাবে আইটেম). 428 00:38:19,410 --> 00:38:31,830 এখন আমরা যদি মুদ্রণ ($ আইটেম); - we'll একটি দ্বিতীয় মধ্যে আলোচনা - যে কাজ পুরোপুরি সূক্ষ্ম. 429 00:38:31,830 --> 00:38:38,960 উপায় যে foreach কাজ হয় প্রথম যুক্তি হল যে আপনি অ্যারের উপর iterating করছি. 430 00:38:38,960 --> 00:38:44,060 এবং দ্বিতীয় যুক্তি, প্রতিটি লুপ জন্য পাস মাধ্যমে আইটেমটি, 431 00:38:44,060 --> 00:38:52,690 এটি অ্যারের মধ্যে পরবর্তী জিনিস যাওয়া যাচ্ছে. তাই মনে রাখবেন অ্যারে অর্ডার. 432 00:38:52,690 --> 00:38:55,690 লুপ জন্য প্রথম মাধ্যমে সময়, আইটেমটি 123 হতে চলেছে 433 00:38:55,690 --> 00:38:59,540 তারপর এটি 12 হতে হবে তাহলে 13 হতে হবে তাহলে 23 হতে হবে, তাহলে এটি হতে হবে 213. 434 00:38:59,540 --> 00:39:04,670 জিনিসপত্র পেতে সত্যিই অদ্ভুত যখন আপনি foreach মত কিছু একটা করুন. 435 00:39:04,670 --> 00:39:07,480 এর কারণ কি আপনি কখনো এটা কি করা উচিৎ কি না. 436 00:39:07,480 --> 00:39:13,320 যদি আমরা আনসেট ($ অ্যারের [1]); 437 00:39:20,410 --> 00:39:26,030 যে সম্ভবত ছিল প্রত্যাশিত. 438 00:39:26,030 --> 00:39:30,950 আপনি এই অ্যারে উপর, iterating এবং প্রতিটি সময় আপনি প্রথম সূচক unsetting করছি করছি. 439 00:39:30,950 --> 00:39:39,720 সুতরাং সূচক 0 জন্য, প্রথম জিনিস, আইটেমটি মান 0 লাগে, তাই এটি যাও 123 হতে যাচ্ছে. 440 00:39:39,720 --> 00:39:44,630 কিন্তু ভিতর জন্য লুপ আমরা আনসেট সূচক 1, যাতে মানে 12 সর্বস্বান্ত হয়. 441 00:39:44,630 --> 00:39:57,480 তাই প্রিন্ট করা হবে. PHP_EOL. 442 00:39:57,480 --> 00:40:03,580 PHP_EOL শুধুমাত্র newline, কিন্তু এটি টেকনিক্যালি আরো পোর্টেবল 443 00:40:03,580 --> 00:40:08,890 যেহেতু Windows এ newlines হয় Mac এবং UNIX-এর উপর newlines থেকে ভিন্ন. 444 00:40:08,890 --> 00:40:18,040 উইন্ডোজ অন newline অন্য যেকোন স্থানে যেহেতু \ r \ n হয়, এটি ঠিক করতে \ n হতে থাকে. 445 00:40:18,040 --> 00:40:25,150 PHP_EOL যাতে এটি ব্যবহার করে যাই হোক না কেন আপনার সিস্টেমের newline হয় কনফিগার করা হয়. 446 00:40:25,150 --> 00:40:29,310 যাতে মুদ্রণ. চলুন শুরু করা যাক print_r ($ অ্যারে) শেষে না. 447 00:40:32,830 --> 00:40:37,390 আমি কোন ধারণা ছিল যে আচরণ করা হবে. 448 00:40:41,740 --> 00:40:48,960 মান 12 আইটেম এখনও লাগে যদিও আমরা 12 আনসেট আগে আমরা কখনও এটা অ্যারে থেকে পেয়েছিলাম. 449 00:40:52,770 --> 00:40:58,840 এই কি আমার শব্দ করে না, কিন্তু এটা মনে foreach সৃষ্টি অ্যারের একটি অনুলিপি 450 00:40:58,840 --> 00:41:02,160 এবং তারপর যে অনুলিপি সমস্ত মানগুলি আইটেমটি প্রদর্শিত হবে. 451 00:41:02,160 --> 00:41:07,760 তাই, এমনকি যদি আপনি ভিতরে লুপ জন্য অ্যারের পরিবর্তন 452 00:41:07,760 --> 00:41:17,240 এটি যত্ন হবে না. মূল বিষয়ের উপর মান নিতে হবে. 453 00:41:17,240 --> 00:41:19,240 চলুন এটি unsetting চেষ্টা করুন. 454 00:41:19,240 --> 00:41:24,460 যদি এই হয় $ অ্যারের [1] = "হ্যালো"; 455 00:41:24,460 --> 00:41:31,770 যদিও আমরা অ্যারের মধ্যে "হ্যালো" করা, আইটেমটি লাগে যে মান না. 456 00:41:31,770 --> 00:41:37,430 অন্য সিনট্যাক্স যাও loops foreach আছে 457 00:41:37,430 --> 00:41:45,900 যেখানে আপনি 2 একটি তীর দ্বারা পৃথকীকৃত ভেরিয়েবল করা. 458 00:41:45,900 --> 00:41:49,680 এই প্রথম পরিবর্তনশীল যে মান কি হবে, 459 00:41:49,680 --> 00:41:53,050 এবং এই দ্বিতীয় পরিবর্তনশীল একই সঠিক আইটেমটি হবে. 460 00:41:53,050 --> 00:42:01,610 এখানে এই নীরস, কিন্তু যদি আমরা আমাদের 'একটি' আসল কেস ফিরে যান -> 1, 461 00:42:01,610 --> 00:42:06,090 'খ' -> 1, 462 00:42:06,090 --> 00:42:14,470 এখানে যদি আমরা শুধুমাত্র আইটেম হিসাবে প্রতিটি অ্যারের জন্য বারবার, আইটেমটি হতে 1 প্রতি একক সময় যাচ্ছে. 463 00:42:14,470 --> 00:42:18,170 কিন্তু যদি আমরা কি যে আইটেম জানতে চাই 464 00:42:18,170 --> 00:42:25,230 > $ আইটেমটি - তারপরে আমরা হিসাবে $ কি না. 465 00:42:25,230 --> 00:42:31,980 . ':' সুতরাং এখন আমরা মুদ্রণ ($ কী করতে পারেন. 466 00:42:31,980 --> 00:42:39,380 এখন এটা আবার iterating এবং প্রতিটি গুরুত্বপূর্ণ এবং তার সংযুক্ত মান মুদ্রণ এর. 467 00:42:39,380 --> 00:42:47,030 >> একটি অতিরিক্ত জিনিস আমরা foreach loops কি করা যেতে পারে, আপনি এই সিনট্যাক্স দেখতে হতে পারে. 468 00:42:47,030 --> 00:42:54,770 পরিবর্তনশীল নামের আগে Ampersands কিভাবে পিএইচপি আছে রেফারেন্স হতে থাকে. 469 00:42:54,770 --> 00:43:00,460 যেখানে তথ্যসূত্র উল্লেখ করা হয় পয়েন্টার অনুরূপ, 470 00:43:00,460 --> 00:43:04,820 আপনি, না আছে পয়েন্টার না যাতে আপনি সরাসরি মেমরির সাথে কখনও কারবার. 471 00:43:04,820 --> 00:43:12,620 কিন্তু আপনি রেফারেন্স যেখানে 1 পরিবর্তনশীল অন্য পরিবর্তনশীল একই জিনিস হিসাবে চিহ্নিত করা আছে. 472 00:43:12,620 --> 00:43:21,450 এখানে ভিতরে যাক এর $ আইটেমটি না. চলুন 1, 10 ফিরে যান. 473 00:43:21,450 --> 00:43:28,800 চলুন শুরু করা যাক $ না আইটেমটি +; এটা পিএইচপি এখনও বিদ্যমান. আপনি এখনও + করতে পারেন. 474 00:43:28,800 --> 00:43:38,260 php.test.php. আমি এটা মুদ্রণ আছে. print_r ($ অ্যারে); 475 00:43:38,260 --> 00:43:42,730 আমরা 2, 11 মুদ্রণ. 476 00:43:42,730 --> 00:43:49,560 যদি আমি foreach ($ $ অ্যারে হিসাবে আইটেম) সম্পন্ন করে তারপর আইটেমটি মান 1 হবে 477 00:43:49,560 --> 00:43:54,190 লুপের মাধ্যমে প্রথম সময়. এটি 1 2 বাড়ায় এবং তারপর আমরা সম্পন্ন হবে. 478 00:43:54,190 --> 00:43:57,260 আমি তখন এটি লুপ দ্বিতীয় পাস মাধ্যমে এবং যে আইটেমটি 10 ​​যেতে হবে. 479 00:43:57,260 --> 00:44:01,570 এটি 11 থেকে বাড়তি আইটেম, এবং তারপর যে ঠিক এর দূরে প্রক্ষিপ্ত. 480 00:44:01,570 --> 00:44:06,670 তারপর আমরা print_r ($ অ্যারে); এবং এর দেওয়া হয় যে এই মাত্র 1, 10. 481 00:44:06,670 --> 00:44:09,070 তাই বৃদ্ধি আমরাও হারিয়ে গেছে. 482 00:44:09,070 --> 00:44:13,410 কিন্তু foreach ($ অ্যারে হিসাবে & $ আইটেম) 483 00:44:13,410 --> 00:44:21,910 এখন এই আইটেমটি এখানে এই অধিকার হিসাবে একই আইটেম. এটা একই জিনিস. 484 00:44:21,910 --> 00:44:26,820 সুতরাং $ আইটেমটি + 0 অ্যারের পরিবর্তন করা হয়. 485 00:44:29,330 --> 00:44:41,850 মূলত, তাহলে $ ট করতে পারেন -> $ আইটেম এবং আপনি $ করতে পারেন অ্যারের [$ ট] +; 486 00:44:41,850 --> 00:44:48,650 >> যে এরকম আরেকটি উপায়, তাই আমরা আইটেমকে সংশোধন বিনামূল্যে, 487 00:44:48,650 --> 00:44:54,070 কিন্তু যে আমাদের আসল অ্যারের সংশোধন করবে না. 488 00:44:54,070 --> 00:44:59,720 কিন্তু আমরা যদি ট, যা আমাদের কী ব্যবহার তারপর, আমাদের অ্যারের মধ্যে শুধুমাত্র ইনডেক্স যে কি আমরা ব্যবহার করতে পারেন 489 00:44:59,720 --> 00:45:01,530 এবং যে বাড়ায়. 490 00:45:01,530 --> 00:45:05,410 এই আরো সরাসরি আমাদের মূল অ্যারের পরিবর্তন করা যাবে. 491 00:45:05,410 --> 00:45:10,690 এমনকি আপনি যে যদি কোনো কারণে পরিবর্তনের ক্ষমতা চেয়েছিলেন করতে পারেন - 492 00:45:10,690 --> 00:45:13,510 বাস্তবিক, এই পুরোপুরি যুক্তিসঙ্গত. 493 00:45:13,510 --> 00:45:16,020 আপনি $ অ্যারের লিখুন আছে না চান [$ ট] + + ', 494 00:45:16,020 --> 00:45:27,890 আপনি ঠিক $ আইটেমটি লিখতে চেয়েছিলেন + কিন্তু আপনি এখনও করি যদি ($ ট === 'একটি') 495 00:45:27,890 --> 00:45:30,620 তারপর আইটেমটি বাড়ায় এবং তারপর আমাদের অ্যারের মুদ্রণ. 496 00:45:30,620 --> 00:45:36,290 তাই এখন আমরা কি print_r কি আশা করবেন? কি মান প্রিন্ট করা উচিত? 497 00:45:36,290 --> 00:45:43,770 [ছাত্রদের] 2 এবং 10. >> [Bowden] শুধু যদি কী ছিল 'একটি' আসলে আমরা যে প্রিন্ট করা হবে. 498 00:45:51,940 --> 00:45:55,670 >> আপনি সম্ভবত খুব কমই, যদি কখনও, যাও পিএইচপি ফাংশন সংজ্ঞায়িত করতে হবে, 499 00:45:55,670 --> 00:46:03,370 কিন্তু আপনি যদি এমন কিছু দেখতে পাবেন যেখানে আপনি অনুরূপ ফাংশান যাহা মত একটি ফাংশন সংজ্ঞায়িত করতে পারে. 500 00:46:03,370 --> 00:46:09,900 সাধারণত আপনি ($ foo বিন্যাস, $ বার) এবং তারপর বলে যাও যাহা সংজ্ঞায়িত করা হবে. 501 00:46:09,900 --> 00:46:17,580 কিন্তু যদি আমি এই কাজের জন্য, তাহলে তার মানে যাই হোক না কেন কল যাই হোক না কেন, 502 00:46:17,580 --> 00:46:25,110 যাই হোক না কেন কল baz, তাই প্রথম যুক্তি baz প্রেরণ পরিবর্তন করা যাবে. 503 00:46:25,110 --> 00:46:38,100 চলুন শুরু করা যাক $ foo বিন্যাস করবেন +; 504 00:46:38,100 --> 00:46:48,020 এবং এর ভিতর এখানে baz ($ আইটেম) না দেওয়া; 505 00:46:48,020 --> 00:46:52,250 এখন আমরা একটি ফাংশন আহ্বান করা হয়. 506 00:46:52,250 --> 00:46:56,780 আর্গুমেন্ট উল্লেখ করতে হয়, যার মানে হচ্ছে যে আমরা যদি এটা সংশোধন করুন 507 00:46:56,780 --> 00:47:00,390 আমরা যে কাজটা ইন পাশ করছি পরিবর্তন 508 00:47:00,390 --> 00:47:04,420 এবং এই আমরা আশা মুদ্রণ - যদি না আমি তছনছ বাক্যগঠন আপ - আমরা 2, 11 পেয়েছিলাম, 509 00:47:04,420 --> 00:47:06,300 তাই আসলে এটা মান বৃদ্ধি হয়. 510 00:47:06,300 --> 00:47:08,790 আমরা রেফারেন্স বিজ্ঞপ্তি 2 জায়গা প্রয়োজন. 511 00:47:08,790 --> 00:47:13,050 আমি যদি এই কি এর মানে কি? 512 00:47:13,050 --> 00:47:15,810 [ছাত্রদের] এটা পরিবর্তন করতে হবে. >> হ্যাঁ. 513 00:47:15,810 --> 00:47:18,290 আইটেম শুধুমাত্র অ্যারের মধ্যে মান একটি কপি. 514 00:47:18,290 --> 00:47:26,670 সুতরাং 2 আইটেম, কিন্তু পরিবর্তন অ্যারের ['একটি'] এখনও 1 করবে. 515 00:47:26,670 --> 00:47:32,560 অথবা যদি আমি কি এই না? 516 00:47:32,560 --> 00:47:39,260 এখন baz একটি কপি আইটেম হিসাবে প্রেরিত হয়. 517 00:47:39,260 --> 00:47:46,330 তাই যুক্তি 2 কপি করা হবে মান বৃদ্ধি, 518 00:47:46,330 --> 00:47:49,240 কিন্তু নিজেই 2 আইটেম যাও মান বৃদ্ধি করা হয়নি. 519 00:47:49,240 --> 00:47:52,880 এবং আইটেমটি অ্যারের বন্ধনী যাই হোক না কেন একই জিনিস, 520 00:47:52,880 --> 00:47:55,380 যাতে অ্যারের মান বৃদ্ধি করা হয়নি. 521 00:47:55,380 --> 00:47:57,960 তাই উভয় ঐ জায়গা প্রয়োজন. 522 00:47:57,960 --> 00:48:03,830 >> পিএইচপি সাধারণত এই বিষয়ে সুন্দর স্মার্ট. 523 00:48:03,830 --> 00:48:06,570 আপনি আমি রেফারেন্স উপেক্ষা করতে চান, মনে হতে পারে - 524 00:48:06,570 --> 00:48:09,560 এটি প্রকৃতপক্ষে ছিল psets এক একটি প্রশ্ন. 525 00:48:09,560 --> 00:48:14,480 এটা ছিল একটি questions.txt জিনিস যেখানে এটা বলেন, 526 00:48:14,480 --> 00:48:19,280 তাহলে কেন আপনি রেফারেন্স দ্বারা এই struct প্রেরণ করতে ইচ্ছুক হতে পারে? 527 00:48:19,280 --> 00:48:21,250 কী ছিল যে উত্তর? 528 00:48:21,250 --> 00:48:25,100 [ছাত্রদের] সুতরাং আপনি কিছু বড় কপি করতে হবে না. >> হ্যাঁ. 529 00:48:25,100 --> 00:48:32,920 একটি struct ইচ্ছামত বড় হতে পারে, এবং আপনি যখন একটি আর্গুমেন্ট হিসাবে পাস struct পারেন 530 00:48:32,920 --> 00:48:36,800 এটা যে সমগ্র struct যাও ফাংশন এটি পাস কপি করা প্রয়োজন, 531 00:48:36,800 --> 00:48:40,410 পক্ষান্তরে আপনি যদি শুধুমাত্র রেফারেন্স দ্বারা struct পাস 532 00:48:40,410 --> 00:48:46,530 তারপর এটি শুধু ফাংশন আর্গুমেন্ট হিসাবে একটি 4 বাইট ঠিকানা কপি করা প্রয়োজন. 533 00:48:48,520 --> 00:48:52,320 পিএইচপি হল একটি সামান্য বিট বুদ্ধিমতী যে. 534 00:48:52,320 --> 00:49:00,650 যদি আমি কিছু ফাংশন আছে এবং এটা আমি 1,000 জিনিস একটি অ্যারের পাস, 535 00:49:00,650 --> 00:49:03,990 কিন্তু এর অর্থ এটা ঐ জিনিস সব 1,000 কপি আছে যাচ্ছে 536 00:49:03,990 --> 00:49:10,450 যাও ফাংশন মধ্যে এটি পাস? এটি অবিলম্বে যে কি না. 537 00:49:10,450 --> 00:49:15,940 যদি এই ফাংশনের ভিতর এটি আসলে foo বিন্যাস পরিবর্তন করা যাবে না, 538 00:49:15,940 --> 00:49:22,660 তাই যদি ($ foo বিন্যাস === 'হ্যালো') ফিরে সত্য.; 539 00:49:22,660 --> 00:49:26,460 আমরা এই ফাংশন আর্গুমেন্ট ভিতরে আসলে কখনও পরিবর্তন লক্ষ্য করুন, 540 00:49:26,460 --> 00:49:30,010 যার মানে যাই হোক না কেন মধ্যে foo বিন্যাস হিসাবে কপি করা প্রয়োজন কখনও পাশ 541 00:49:30,010 --> 00:49:32,100 কারণ এটি পরিবর্তন না. 542 00:49:32,100 --> 00:49:39,240 তাই উপায় পিএইচপি কাজ হয় সবসময় আর্গুমেন্ট উল্লেখ করা হয় পাস 543 00:49:39,240 --> 00:49:42,170 যতক্ষন না আপনি আসলে এটি পরিবর্তন করার চেষ্টা করুন. 544 00:49:42,170 --> 00:49:51,160 এখন যদি আমি $ foo বিন্যাস + বলে; এটি এখন আসল foo এর একটি কপি এবং অনুলিপি করা সংশোধন করবে না. 545 00:49:51,160 --> 00:49:53,090 এই কিছু সময় সাশ্রয় করে. 546 00:49:53,090 --> 00:49:58,210 আপনি যদি এই বিপুল অ্যারের স্পর্শ না করে থাকেন, আপনি আসলে এটি পরিবর্তন করা না, 547 00:49:58,210 --> 00:50:02,360 এটি কপি করা না প্রয়োজন, 548 00:50:02,360 --> 00:50:06,640 পক্ষান্তরে যদি আমরা এই ampersand মানে এটা এমনকি কোনো কপি না করা 549 00:50:06,640 --> 00:50:08,640 এমনকি যদি আপনি এটি পরিবর্তন করবেন না. 550 00:50:08,640 --> 00:50:10,680 এই আচরণ কপি অন লিখতে বলা হয়. 551 00:50:10,680 --> 00:50:17,380 আপনি অন্যান্য স্থানে এটি, দেখতে পাবেন, বিশেষ করে আপনি যদি একটি অপারেটিং সিস্টেম কোর্স নিতে. 552 00:50:17,380 --> 00:50:23,880 অনুলিপি অন লেখার একটি চমত্কার চলিত প্যাটার্ন যেখানে আপনি কিছু একটি অনুলিপি করা প্রয়োজন হবে না 553 00:50:23,880 --> 00:50:26,650 যদি না আসলে এটি পরিবর্তন করা হচ্ছে. হাঁ. 554 00:50:26,650 --> 00:50:29,520 [ছাত্রদের] আপনি যদি পরীক্ষা ভিতরে বৃদ্ধি ছিল, 555 00:50:29,520 --> 00:50:33,700 তাই শুধুমাত্র 1,000 আউট 1 উপাদান পরিবর্তন করতে হবে? 556 00:50:33,700 --> 00:50:38,770 আমি নিশ্চিত না. 557 00:50:38,770 --> 00:50:51,250 আমার মনে হয় এটা সম্পূর্ণ জিনিস কপি করবে, কিন্তু এটি সম্ভব এটা যে যথেষ্ট স্মার্ট - 558 00:50:51,250 --> 00:51:00,020 বাস্তবিক, আমি কি চিন্তা করছি হয় আমরা একটি অ্যারের ভালো দেখায় যে ছিল কল্পনা: $ array2 = [ 559 00:51:00,020 --> 00:51:11,000 তারপর ইনডেক্স 'একটি' হল [1 2 3 4], এবং সূচক 'বো' র একটি অ্যারের হয় যাই হোক না কেন একটি অ্যারে. 560 00:51:11,000 --> 00:51:15,380 আমি সেই সমস্ত মধ্যে কমা প্রয়োজন. কল্পনা কমা আছে. 561 00:51:15,380 --> 00:51:21,210 তারপর 'গ' মান 3. 562 00:51:24,210 --> 00:51:26,290 ঠিক আছে. 563 00:51:26,290 --> 00:51:33,440 এখন কিছু বলতে আমরা 'baz ($ array2) করবেন; 564 00:51:33,440 --> 00:51:36,540 যেখানে baz রেফারেন্স দ্বারা এই সময় লাগবে না. 565 00:51:43,510 --> 00:51:47,370 সুতরাং $ foo বিন্যাস ['গ'] +; 566 00:51:47,370 --> 00:51:52,340 এটি যেমন একটি উদাহরণ যেখানে আমরা একটি আর্গুমেন্ট হিসাবে array2 হয় ক্ষণস্থায়ী 567 00:51:52,340 --> 00:51:57,010 এবং তারপর তা বৃদ্ধিশীল দ্বারা একটি অ্যারের নির্দিষ্ট সূচক পরিবর্তন হয়. 568 00:51:57,010 --> 00:52:01,090 আমি ভাল কোন ধারণা কি পিএইচপি করতে যাচ্ছে আছে. 569 00:52:01,090 --> 00:52:07,200 এটি সহজে সমগ্র জিনিস একটা কপি করতে পারেন, কিন্তু যদি স্মার্ট, 570 00:52:07,200 --> 00:52:15,030 এটি এই কি 'র একটি কপি যেখানে এই তার স্বতন্ত্র মান থাকবে করতে হবে 571 00:52:15,030 --> 00:52:20,620 কিন্তু এই একই অ্যারের 1,2,3,4 নির্দেশ করতে পারেন 572 00:52:20,620 --> 00:52:22,320 এবং এখনও এই একই অ্যারের নির্দেশ করতে পারেন. 573 00:52:22,320 --> 00:52:24,170 আমি এটি রহমান করব. 574 00:52:28,900 --> 00:52:45,950 আমরা এই অ্যারের মধ্যে পাস যেখানে এই লোক পয়েন্ট 3 এই লোক পয়েন্ট, [1,2,3,4] যাও, 575 00:52:45,950 --> 00:52:51,350 এই লোক বিন্দুতে [34, ...] 576 00:52:51,350 --> 00:52:58,590 এখন যে আমরা baz তা পার করছি, আমরা এই পরিবর্তন করা হয়. 577 00:52:58,590 --> 00:53:03,550 যদি পিএইচপি হয় স্মার্ট, এটা করতে পারেন - 578 00:53:11,850 --> 00:53:18,230 আমরা এখনও কিছু মেমরি কপি ছিল, কিন্তু যদি এই বিশাল নেস্টেড subarrays ছিল 579 00:53:18,230 --> 00:53:21,560 আমরা যারা কপি না প্রয়োজন. 580 00:53:21,560 --> 00:53:27,530 আমি যদি তাই এটি আছে কি, না জানি কিন্তু আমি যে সেটা কল্পনা করতে পারেন. 581 00:53:29,050 --> 00:53:36,690 এটি একটি চমত্কার C-এর উপর পিএইচপি বড় সুবিধা. 582 00:53:36,690 --> 00:53:40,320 >> পিএইচপি তোলে জীবন তাই একটা জন্য অনেক অনেক সহজ, 583 00:53:40,320 --> 00:53:45,060 কিন্তু আপনি কি ধরনের একেবারে ধারণা নেই কিভাবে কাউন্সিল সঞ্চালন করা হবে 584 00:53:45,060 --> 00:53:52,530 কারণ আমি বোরখা নীচে কোন ধারণা আছে যখন এটি জিনিস এইসব কপি তৈরীর এর, 585 00:53:52,530 --> 00:53:55,170 উহু, যে একটি ধ্রুবক সময় কপি করা হচ্ছে, 586 00:53:55,170 --> 00:54:01,140 এটি শুধুমাত্র 1 পয়েন্টার পরিবর্তন করতে যাচ্ছেন, এটি একটি কঠিন ridiculously রৈখিক কপি হবে? 587 00:54:01,140 --> 00:54:03,000 যদি এটি স্থান খুঁজে পাচ্ছেন না? 588 00:54:03,000 --> 00:54:06,760 এটা পরে গার্বেজ কালেকশন আরো কিছু স্থান পেতে চালানোর প্রয়োজন? 589 00:54:06,760 --> 00:54:11,210 এবং গার্বেজ কালেকশন ইচ্ছামত দীর্ঘ সময় লাগতে পারে. 590 00:54:11,210 --> 00:54:13,600 সি আপনি এই জিনিষ চিন্তা করতে হবে না. 591 00:54:13,600 --> 00:54:19,780 প্রতিটি একক লাইন আপনি লিখে কিভাবে এটি সঞ্চালনের দেয়া হবে প্রশংসনীয় অনেক কারণে হতে পারে. 592 00:54:26,800 --> 00:54:29,150 >> চলুন এই ফিরে. 593 00:54:35,400 --> 00:54:37,520 কত সুন্দর এটা যে আপনি হ্যাশ ফাংশান মোকাবেলা করতে হবে না, 594 00:54:37,520 --> 00:54:39,010 লিঙ্ক তালিকা, বা ওই জাতীয় কিছু? 595 00:54:39,010 --> 00:54:41,980 যেহেতু হ্যাশ টেবিল সহ কাজ হয় এখন তাই সহজ, এখানে একটা মজার ধাঁধা কাজ. 596 00:54:41,980 --> 00:54:45,920 নামক কোনো ফাইল এবং unique.php মধ্যে এটি খুলুন আপ একটি পিএইচপি প্রোগ্রাম লিখুন 597 00:54:45,920 --> 00:54:48,330 (একটি "স্ক্রিপ্ট" নামেও পরিচিত). 598 00:54:48,330 --> 00:54:55,700 আমরা তাদের স্ক্রিপ্ট কল ঝোঁক যদি তারা ছোট যে আপনি কমান্ড লাইনে রান. 599 00:54:55,700 --> 00:55:02,950 মূলত, কোন ভাষা যে আপনি কিন্তু আপনি এক্সেকিউটেবল চালানো চলুন না কম্পাইল 600 00:55:02,950 --> 00:55:05,920 কমান্ড লাইনে, আপনি যে এক্সেকিউটেবল স্ক্রিপ্ট কল করতে পারেন. 601 00:55:05,920 --> 00:55:08,510 আমি একটি সি প্রোগ্রাম আছে যে এই ভাল লিখতে পারেন, 602 00:55:08,510 --> 00:55:12,300 কিন্তু আমি এটি একটি স্ক্রিপ্ট থেকে প্রথম আমি এটা কম্পাইল এবং তারপর বাইনারি চালানোর না কল. 603 00:55:12,300 --> 00:55:15,480 কিন্তু এই পিএইচপি প্রোগ্রাম একটি স্ক্রিপ্ট কল আমরা চলুন. 604 00:55:15,480 --> 00:55:23,830 অথবা যদি আমরা Python অথবা পার্ল বা Node.js বা যারা যে কোনো এটা লিখেছে, 605 00:55:23,830 --> 00:55:26,500 আমরা তাদের সব স্ক্রিপ্ট কারণ আপনি কমান্ড লাইনে তাদের চালানোর কল চাই 606 00:55:26,500 --> 00:55:30,040 কিন্তু আমরা তাদের কম্পাইল না. 607 00:55:30,860 --> 00:55:33,400 আমরা কি এই চমত্কার দ্রুত হতে পারে. 608 00:55:36,960 --> 00:55:41,480 আমরা argv ব্যবহার করতে যাচ্ছি না. এর মাধ্যমে ঠিক করা যাক এই গাট্টা. 609 00:55:41,480 --> 00:55:45,730 এটি অনন্য কল করুন, একটি প্রোগ্রাম লিখতে. 610 00:55:45,730 --> 00:55:49,400 আপনি যে ইনপুট প্রতি লাইনে একটি শব্দ থাকতে হবে ধারনা করতে পারি. 611 00:55:49,400 --> 00:55:52,020 বাস্তবিক, argv চমত্কার ব্যবহার নগণ্য হবে. 612 00:56:03,730 --> 00:56:06,720 unique.php. 613 00:56:08,550 --> 00:56:13,750 প্রথম প্রথম জিনিস, আমরা যদি আমরা হয়েছে 1 কমান্ড লাইন আর্গুমেন্ট গৃহীত চেক করতে চান. 614 00:56:13,750 --> 00:56:20,900 শুধু হিসাবে আপনি argc এবং argv সি আশা করে, আমরা এখনও পিএইচপি যারা আছে. 615 00:56:20,900 --> 00:56:33,900 তাই আপনি যদি ($ argc! == 2) তারপর আমি একটি বার্তা বা কিছু মুদ্রণ মোকাবেলা করবে না. 616 00:56:33,900 --> 00:56:37,340 আমি প্রস্থান 1 ত্রুটির কোড, করব. 617 00:56:37,340 --> 00:56:41,340 আমি ফিরে আসতে পারে 1. 618 00:56:41,340 --> 00:56:53,180 কদাচ পিএইচপি এই রাষ্ট্র হয় আপনি যেখানে আমরা করছি - 619 00:56:53,180 --> 00:56:57,820 সাধারণত আপনি একটি ফাংশন একটি ফাংশন একটি ফাংশান দ্বারা একটি ফাংশন বলা দ্বারা একেই বলা হয় আপনি আছেন. 620 00:56:57,820 --> 00:57:02,070 এবং যদি কিছু গোলমাল এবং আপনি শুধু সম্পূর্ণভাবে সবকিছু থেকে প্রস্থান করতে চান, 621 00:57:02,070 --> 00:57:05,680 প্রস্থানের ঠিক প্রোগ্রাম শেষ. 622 00:57:05,680 --> 00:57:08,160 এই সি বিদ্যমান 623 00:57:08,160 --> 00:57:10,700 যদি একটি ফাংশন একটি ফাংশন আপনাকে একটি ফাংশন একটি ফাংশন আছেন 624 00:57:10,700 --> 00:57:17,540 এবং আপনার ঠিক প্রোগ্রাম বধ করতে চান, আপনি ফোন করে প্রস্থান করুন এবং এটি ঠিক করা থেকে প্রস্থান করতে পারেন. 625 00:57:17,540 --> 00:57:23,120 কিন্তু পিএইচপি এর আরও বিরল যে আমরা এই শীর্ষ পর্যায়ে রয়েছে. 626 00:57:23,120 --> 00:57:26,090 সাধারণত আমরা ফাংশন কিছু সাজানোর ভিতরে করছি, যাতে আমরা কল করে প্রস্থান করুন 627 00:57:26,090 --> 00:57:29,650 যাতে আমরা 1 টি জিনিস যা পরে বুঝতে ফিরে আপ না করার সময় একটি ত্রুটি আছে 628 00:57:29,650 --> 00:57:32,270 যাতে ফেরৎ আপ যদি স্বীকার করে যে একটি ত্রুটি ঘটেছে. 629 00:57:32,270 --> 00:57:35,270 আমরা মোকাবেলা করতে না চান, তাই (1) প্রস্থান; 630 00:57:35,270 --> 00:57:38,240 রিটার্ন (1); এই ক্ষেত্রে সমতুল্য হবে. 631 00:57:38,240 --> 00:57:44,000 >> তারপর কি আমরা খুলতে চাই আমরা fopen করতে চান. 632 00:57:44,000 --> 00:57:46,760 যুক্তি অনুরূপ চমত্কার চেহারা যাচ্ছি. 633 00:57:46,760 --> 00:57:51,600 আমরা fopen ($ argv [1], এবং আমরা পড়ার জন্য এটি খুলতে চান. চান 634 00:57:51,600 --> 00:57:55,720 যে কোন রিসোর্সকে যা আমরা চ কল ফেরৎ চলুন. 635 00:57:55,720 --> 00:58:02,180 এই দেখায় কিভাবে সি আছে তা ছাড়া আমরা ফাইল * না কাছে প্রশংসনীয় অনুরূপ. 636 00:58:02,180 --> 00:58:06,170 এর পরিবর্তে আমরা $ চ বলতে. ঠিক আছে. 637 00:58:06,170 --> 00:58:17,190 বাস্তবিক, আমি মনে করি এই এমনকি দেয় পিএইচপি ফাংশন নামক ফাইল হিসাবে একটি ইঙ্গিতটি আমাদের. পিএইচপি ফাইল. 638 00:58:17,190 --> 00:58:23,990 এই কি করতে হবে একটি অ্যারের মধ্যে একটি সম্পূর্ণ ফাইল পড়তে হয়. 639 00:58:23,990 --> 00:58:29,770 আপনি এটি fopen না এমনকি প্রয়োজন হবে না. এটা আপনার জন্য যে কাজ করে যাচ্ছে. 640 00:58:37,450 --> 00:58:43,700 সুতরাং $ লাইন = ফাইল ($ argv [1]); 641 00:58:43,700 --> 00:58:49,680 এখন ফাইল লাইনের সব লাইন আছে. এখন আমরা লাইনে সাজাতে চান. 642 00:58:49,680 --> 00:58:52,180 কিভাবে লাইন আমরা সাজাতে পারি? 643 00:58:52,180 --> 00:58:54,920 আমরা লাইন সাজাতে. 644 00:58:54,920 --> 00:58:58,080 এবং এখন আমরা তাদের বা যাই হোক না কেন মুদ্রণ করতে পারেন. 645 00:58:58,080 --> 00:59:05,580 সম্ভবত সবচেয়ে সহজ উপায় হল foreach ($ $ লাইন হিসাবে লাইন) $ echo লাইন; 646 00:59:05,580 --> 00:59:10,960 [ছাত্রদের] এমনকি আমরা সাজানোর মধ্যে কিছু উল্লেখ করে না লাইন ক্রুশ চান? 647 00:59:10,960 --> 00:59:28,850 এটি যেখানে ফাংশন সাজানোর (& $ অ্যারে) হিসাবে বাছাই করা হবে সংজ্ঞা. 648 00:59:28,850 --> 00:59:32,650 আপনি যখন ফাংশন কল আপনি এটি দ্বারা উল্লেখ না পাশ. 649 00:59:32,650 --> 00:59:36,900 এটা ফাংশন যে রেফারেন্স হিসাবে এটি গ্রহণ হিসাবে এটি সংজ্ঞায়িত করে. 650 00:59:36,900 --> 00:59:40,900 এটি আসলে ঠিক কি ভুল হয়েছে 651 00:59:40,900 --> 00:59:46,220 যখন আমরা আমাদের সার্ভার থেকে সব কিছু করা হলে আমরা 5.3 থেকে 5.4 গিয়েছিলাম. 652 00:59:46,220 --> 00:59:53,800 5.4 যতক্ষণ না পর্যন্ত, এই ছিল পুরোপুরি যুক্তিসঙ্গত. 653 00:59:53,800 --> 00:59:58,740 একটি ফাংশন রেফারেন্স হিসাবে লাগবে, না আশা কিন্তু আপনি রেফারেন্স হিসাবে এটি পাস করতে পারেন 654 00:59:58,740 --> 01:00:02,860 তাই যদি ফাংশন এটি পরিবর্তন ঘটবে না, এখনও এটা পরিবর্তিত হচ্ছে. 655 01:00:02,860 --> 01:00:05,850 5.4 এর হিসাবে, আপনি এই কাজ করতে অনুমিত করছি না. 656 01:00:05,850 --> 01:00:11,740 তাই এখন একমাত্র উপায় আপনি রেফারেন্স উপেক্ষা করা হয় যদি এটি স্পষ্টভাবে ফাংশন আছে. 657 01:00:11,740 --> 01:00:19,840 যদি আপনি তা পরিবর্তন করতে না চান, তাহলে $ অনুলিপি = $ লাইন এবং পাস কপি করতে হবে. 658 01:00:19,840 --> 01:00:24,820 তাই এখন লাইন সংরক্ষিত হবে এবং কপি পরিবর্তন করা হবে. 659 01:00:27,670 --> 01:00:31,460 php.unique.php. আমি কিছু বিশৃঙ্খলার সৃষ্টি করে থাকতে পারে. 660 01:00:31,460 --> 01:00:33,190 অপ্রত্যাশিত 'সাজান'. 661 01:00:38,320 --> 01:00:43,850 গিয়ে কিছু যা আমাদের জন্য এই আছে আছে এর. 662 01:00:43,850 --> 01:00:45,820 এটা এমন কি আছে না. 663 01:00:45,820 --> 01:00:52,140 লক্ষ্য করুন যখন আপনি যে ম্যানুয়াল প্রথম আর্গুমেন্টের একটি অ্যারের প্রত্যাশিত পড়া 664 01:00:52,140 --> 01:00:56,490 এবং এটি দ্বারা রেফারেন্স নেওয়া. 665 01:00:58,160 --> 01:01:03,540 কেন হয় এই সম্পর্কে অভিযোগকারী? যেহেতু আমি এখানে আছে এখনও এই ফাংশন সাজানোর যে আমি চান না. 666 01:01:03,540 --> 01:01:09,210 ঠিক আছে, php.unique.php. আমি এটি একটি যুক্তি না পাস কারণ আমি একটি ফাইল নেই. 667 01:01:09,210 --> 01:01:13,560 এটা test.php উপর php.unique.php. 668 01:01:13,560 --> 01:01:19,080 এখানে test.php সব একটি সুন্দর সাজানো ক্রম প্রিন্ট আউট. 669 01:01:19,080 --> 01:01:24,600 উল্লেখ্য যে ক্রম অনুসারে সাজানো একটি কোড ফাইল জন্য ধরনের অদ্ভুত 670 01:01:24,600 --> 01:01:27,460 কারণ আমাদের ফাঁকা লাইন সমস্ত প্রথম আসা যাচ্ছে 671 01:01:27,460 --> 01:01:30,190 তারপর আমাদের 1 টি স্তর indentations সব আসা যাচ্ছে 672 01:01:30,190 --> 01:01:33,360 তাহলে আমাদের কোন indentations সব আসা. 673 01:01:33,360 --> 01:01:38,620 হাঁ. >> সোর্স কোড জন্য [ছাত্রদের] সুতরাং রেফারেন্স দ্বারা প্রেরণ করা হত না? 674 01:01:38,620 --> 01:01:42,240 যে মান গৃহীত হয় সাধারণত? 675 01:01:42,240 --> 01:01:50,240 [Bowden] আপনি যখন একটি ফাংশন কল, এটি তা নির্ধারণ করে রেফারেন্স দ্বারা প্রেরণ করা হত না. 676 01:01:50,240 --> 01:01:53,960 এটা ফাংশন সংজ্ঞা নির্ধারণ করে যা কিনা তা উল্লেখ দ্বারা প্রেরণ করা হত. 677 01:01:53,960 --> 01:01:59,450 এবং খুঁজছেন ধরণের ফাংশন সংজ্ঞা এ অথবা এই সময়ে মাত্র খুঁজছেন, 678 01:01:59,450 --> 01:02:02,820 এটি দ্বারা যুক্তি রেফারেন্স লাগে. 679 01:02:02,820 --> 01:02:07,160 সুতরাং নির্বিশেষে কিনা তা আপনি উল্লেখ করে এটি নিতে চান, এটা আছে রেফারেন্স দ্বারা লাগবে. 680 01:02:07,160 --> 01:02:10,200 এটা স্থান অ্যারের পরিবর্তন করা যাবে. 681 01:02:10,200 --> 01:02:17,400 এটি অনুমোদিত নয়. আপনি এটি করতে অনুমতি দেওয়া হয় না. >> [ছাত্রদের] ওহ, ঠিক আছে. 682 01:02:17,400 --> 01:02:22,410 [Bowden] এই, সাজানোর যাও রেফারেন্স দ্বারা লাইন নিয়ে এটি পরিবর্তন করা হবে. 683 01:02:22,410 --> 01:02:26,850 এবং আবার, যদি আপনি এটা করতে না চান, তাহলে আপনি ধরণের একটি কপি করতে পারে. 684 01:02:26,850 --> 01:02:35,850 এমনকি এই ক্ষেত্রে, কপি হয় আসলে লাইনের একটি কপি না. 685 01:02:35,850 --> 01:02:40,620 এটা ঠিক একই জিনিস স্থানটিকে পর্যন্ত প্রথম এটি পরিবর্তন পরার, 686 01:02:40,620 --> 01:02:44,430 যেখানে প্রথম এটি হচ্ছে যাও সাজানোর কাজ পরিবর্তন করতে পারেন, 687 01:02:44,430 --> 01:02:50,940 যেখানে, কারণ এটা একটা কপি অন লিখুন, এখন অনুলিপি একটি অনুলিপি তৈরি করা যাচ্ছে. 688 01:02:57,500 --> 01:03:04,250 আপনি এটা করতে পারেন. এটা অন্যান্য জায়গা ampersand আপনি দেখতে পারেন. 689 01:03:04,250 --> 01:03:07,190 আপনি foreach loops এটা দেখুন, আপনি ফাংশন ঘোষণা এটা দেখুন, 690 01:03:07,190 --> 01:03:10,040 এবং আপনি যখন মাত্র ভেরিয়েবলের মান নির্ধারণের দেখুন. 691 01:03:10,040 --> 01:03:12,350 এখন আমরা এই করে কিছুই আছে সম্পন্ন 692 01:03:12,350 --> 01:03:15,600 কারণ কপি এবং লাইনগুলি আক্ষরিক একই জিনিস. 693 01:03:15,600 --> 01:03:19,940 আপনি লাইন ব্যবহার এবং অদলবদল করে কপি করা যাবে. 694 01:03:19,940 --> 01:03:25,430 আপনি আনসেট (কপি) করতে পারেন; এবং যে আছে আনসেট লাইন না, 695 01:03:25,430 --> 01:03:29,120 আপনি ঠিক একই জিনিস আপনার রেফারেন্স হারান. 696 01:03:29,120 --> 01:03:33,440 তাই এই পয়েন্ট হিসাবে এখন, লাইন শুধুমাত্র আপনার লাইন অ্যাক্সেস করতে পারেন. 697 01:03:36,450 --> 01:03:38,770 >> প্রশ্ন? 698 01:03:41,000 --> 01:03:42,460 হাঁ. 699 01:03:42,460 --> 01:03:45,880 বিষয় সম্পূর্ণরূপে বন্ধ [ছাত্রদের], কিন্তু আপনি সঙ্গে পিএইচপি বন্ধ হবে না - >> আপনি করবেন না. 700 01:03:45,880 --> 01:03:47,730 ঠিক আছে. 701 01:03:47,730 --> 01:03:53,790 [Bowden] আমি যতদূর এটা কুক্রিয়া তাদের বন্ধ বলতে যেতে হবে. 702 01:03:53,790 --> 01:03:57,580 যে সম্ভবত বিশেষত একটি স্ক্রিপ্টের মধ্যে একটি রঙ,, 703 01:03:57,580 --> 01:04:03,740 কিন্তু যাক এর কি যদি আমি এই তা দেখতে. 704 01:04:03,740 --> 01:04:08,890 যে কিছু করেনি. আমি যদি চেয়েছিলেন - [sighs] 705 01:04:13,870 --> 01:04:16,960 আমি একটা আর্গুমেন্টটি প্রেরণ করার প্রয়োজন. 706 01:04:19,000 --> 01:04:22,050 অঙ্কুর. আমি এটা বলা ভুল. 707 01:04:24,340 --> 01:04:28,310 একটি যুক্তি যাতে php.unique.php. 708 01:04:28,310 --> 01:04:30,980 এখন আমি এমনকি এই প্রয়োজন হয় না. 709 01:04:34,520 --> 01:04:37,740 আমি একটি বৈধ যুক্তি এটি পাস করব. 710 01:04:37,740 --> 01:04:42,050 এই মুদ্রিত যাই হোক না কেন এটা মুদ্রণ. 711 01:04:45,260 --> 01:04:50,080 আমি কপি এবং অনুলিপি মুদ্রণ'm বিদ্যমান নেই. তাই লাইন. 712 01:04:53,650 --> 01:04:58,270 সবকিছু মুদ্রিত, এবং তারপর এখানে নিচে এই সব আবর্জনা বিজ্ঞপ্তি, 713 01:04:58,270 --> 01:05:06,690 কারণ যে পিএইচপি কিছু হয় পিএইচপি ট্যাগ বাইরে 714 01:05:06,690 --> 01:05:09,520 না করছি করা আক্ষরিক মুদ্রিত যাও. 715 01:05:09,520 --> 01:05:18,050 এটা কেন এইচটিএমএল, এটা এত সুন্দর যে আমি div বাজে, বাজে কথা, বাজে কথা বর্গ বা যাই হোক না কেন তা করতে পারেন, 716 01:05:18,050 --> 01:05:25,140 বাজে কথা, বাজে কথা, বাজে কথা এবং তারপর কিছু পিএইচপি কোড এবং তারপর কি শেষ div না. 717 01:05:25,140 --> 01:05:36,460 এবং এখন এই মুদ্রণ আমি উপরে আমার চমৎকার div পেতে, যা পিএইচপি মুদ্রিত, নীচে div. 718 01:05:36,460 --> 01:05:43,510 বিপর্যয়মূলক যখন ভালো কিছু হয়ে যায়, যা অত্যন্ত সাধারণ, 719 01:05:43,510 --> 01:05:47,930 শুধু একটি ফাইল নীচে বিপথগামী newline. 720 01:05:47,930 --> 01:05:50,940 আপনি এটি একটি চুক্তি যে বড় মনে হবে না 721 01:05:50,940 --> 01:05:58,660 যতক্ষন না আপনি যে ব্রাউজার দিয়ে আসলে বিবেচনা - 722 01:05:58,660 --> 01:06:03,880 >> কিভাবে কাজ পুননির্দেশনা বা মূলত কোনো হেডার কাজ, 723 01:06:03,880 --> 01:06:07,980 যখন আপনি একটি ওয়েবসাইটে আপনার সংযোগ করতে এবং এটি ফেরত পাঠায় সব হেডার এবং এইসব জিনিস 724 01:06:07,980 --> 01:06:12,020 ভালো প্রতিক্রিয়া 200 বা প্রতিক্রিয়া বা পুনর্নির্দেশ যাই হোক না কেন, 725 01:06:12,020 --> 01:06:18,230 শুধুমাত্র হেডার পর্যন্ত বৈধ তথ্য প্রথম বাইট পাঠানো হয়. 726 01:06:18,230 --> 01:06:23,140 আপনি বার হাজার হাজার পুনর্নির্দেশ, কিন্তু যত তাড়াতাড়ি তথ্য প্রথম বাইট পাঠানো যায় 727 01:06:23,140 --> 01:06:26,120 আপনি আবার পুনর্নির্দেশ করছি অনুমিত না. 728 01:06:26,120 --> 01:06:31,860 >> আপনি যদি একটি ফাইল নীচে একটি বিপথগামী newline আছে 729 01:06:31,860 --> 01:06:37,260 এবং আসুন যে আপনি এই ফাংশান ব্যবহার এবং তারপর আপনি বলতে চান - 730 01:06:41,580 --> 01:06:52,870 এটা ফাইল অন্য যে index.php বলতে এবং আপনি কিছু require_once চলুন শুরু করা যাক - 731 01:06:52,870 --> 01:06:56,920 আমি এটি একটি ভাল উদাহরণ মনে করতে পারেন না. 732 01:06:56,920 --> 01:07:04,740 সমস্যা ঘটনা যখন নীচে এই লাইন প্রতিধ্বনিত হয়. 733 01:07:04,740 --> 01:07:08,660 আপনি এখনও প্রতিধ্বনিত আছে কিছু চাই না. 734 01:07:10,820 --> 01:07:15,700 যদিও আপনি কিছু প্রতিধ্বনিত হচ্ছে এ অভিপ্রায় করা হয় নি, কিছু প্রতিধ্বনিত হয়নি 735 01:07:15,700 --> 01:07:17,990 এবং এখন, তাই আপনার আর কোন হেডার পাঠাতে অনুমিত করছি না 736 01:07:17,990 --> 01:07:20,030 এবং আপনি অভিযোগ পেতে যাচ্ছেন. 737 01:07:22,170 --> 01:07:24,420 আপনি শুধুমাত্র যারা ক্লোজিং ট্যাগ প্রয়োজন নেই. 738 01:07:24,420 --> 01:07:27,420 যদি আপনি HTML এর দ্বারা কিছু পরিকল্পনা - 739 01:07:27,420 --> 01:07:30,490 এবং এটা পুরোপুরি যুক্তিসঙ্গত ডাউন করতে এখানে div যাই হোক না কেন 740 01:07:30,490 --> 01:07:39,450 এই সময়ে এবং তারপর আপনি আপনার বা করতে পারে তাদের অন্তর্ভুক্ত নয়. 741 01:07:39,450 --> 01:07:41,590 এটা সত্যিই কোনো ব্যাপার নয়. 742 01:07:41,590 --> 01:07:45,450 কিন্তু পিএইচপি স্ক্রিপ্ট এর বন্ধ বিরল. 743 01:07:45,450 --> 01:07:50,400 যখন সবকিছু হয় পিএইচপি, একেবারে সবকিছু, 744 01:07:50,400 --> 01:07:55,460 আপনি তা / বন্ধ আপনি এটি বন্ধ করা উচিত প্রয়োজন সত্যিই না. 745 01:08:02,030 --> 01:08:05,720 >> স্ট্রিং সঙ্গে লেনদেন হয় সি অনেক nicer 746 01:08:05,720 --> 01:08:09,470 পিএইচপি আপনি বা একক উদ্ধৃতি চিহ্ন দিয়ে একটি স্ট্রিং নির্দিষ্ট করতে পারেন. 747 01:08:09,470 --> 01:08:12,820 একক উদ্ধৃতি চিহ্ন দিয়ে আপনি "এস্কেপ" ক্রম ব্যবহার করতে পারবেন না. 748 01:08:12,820 --> 01:08:17,640 ক্রমাগত বাজে, বাজে কথা, বাজে কথা অব্যাহতি,. 749 01:08:19,920 --> 01:08:24,010 তাই printf পিএইচপি মধ্যে খুব বিরল. 750 01:08:24,010 --> 01:08:32,290 আর আমি মনে printf আমি যদি জিনিস কেমন চেয়েচিলাম ব্যবহার করেন - আপনি pset 5 ব্যবহৃত sprintf বা যাই হোক না কেন. 751 01:08:32,290 --> 01:08:36,060 কিন্তু আপনি 001.jpg এবং 002.jpg কাজ করতে চান. 752 01:08:36,060 --> 01:08:40,300 তাই আর যে সাজানোর জন্য যেখানে আমি আসলে টেক্সট আমি printf ব্যবহার করে ফরম্যাট করতে চান. 753 01:08:40,300 --> 01:08:44,689 কিন্তু অন্যথায় আমি স্ট্রিং সংযোগ ব্যবহার করেন. 754 01:08:44,689 --> 01:08:47,000 আমি সত্যিই printf ব্যবহার না. 755 01:08:49,229 --> 01:09:00,170 আমরা ঠিক করছি একক উদ্ধৃতি চিহ্ন এবং উদ্ধৃতি চিহ্ন বিবরণ মধ্যে পার্থক্যকারী. 756 01:09:00,170 --> 01:09:07,490 সবচেয়ে বড় পার্থক্য হল, একক উদ্ধৃতি চিহ্ন, এটা আক্ষরিক প্রিন্ট করা হবে. 757 01:09:07,490 --> 01:09:15,390 কোন গৃহস্থালি পিএইচপি ডাটা টাইপ আছে, অসদৃশ সি, তাই এই সমতূল্য এই যাও. 758 01:09:15,390 --> 01:09:17,970 ঐগুলি উভয় পংক্তি. 759 01:09:17,970 --> 01:09:29,180 এবং একক উদ্ধৃতি স্ট্রিং সম্পর্কে চমৎকার একটি বিষয় আমি বলতে পারে 'দুনিয়া হ্যালো!' বাজে কথা, বাজে কথা, বাজে কথা, 760 01:09:29,180 --> 01:09:33,340 $ $ Wooo. 761 01:09:33,340 --> 01:09:38,260 যখন আমি এই মুদ্রণ এটা এটা আক্ষরিক প্রিন্ট হবে কি হয়. 762 01:09:38,260 --> 01:09:40,680 চলুন আমাদের তরিতরকারি সব পরিত্রাণ পেতে. 763 01:09:40,680 --> 01:09:44,700 সুতরাং $ str1 প্রতিধ্বনি; 764 01:09:48,569 --> 01:09:56,570 এটা আক্ষরিক সেগুলো সব মুদ্রিত: ডলার চিহ্ন, 765 01:09:56,570 --> 01:09:58,770 backslash হবে, যা আপনি newlines হবে মনে - 766 01:09:58,770 --> 01:10:01,500 সেগুলো সব এটা আক্ষরিক ছাপে. 767 01:10:01,500 --> 01:10:05,650 কেবল জিনিস আপনি অব্যাহতি প্রয়োজন হয় একক উদ্ধৃতি চিহ্ন 768 01:10:05,650 --> 01:10:09,470 কারণ অন্যথায় তা একক উদ্ধৃতি চিহ্ন এর শেষদিকে মনে. 769 01:10:09,470 --> 01:10:15,050 উদ্ধৃতি চিহ্ন, সম্পূর্ণ ভিন্ন. 770 01:10:20,300 --> 01:10:25,870 আমরা ইতিমধ্যে সিনট্যাক্স হাইলাইটিং কি ভয়ঙ্কর সম্পর্কে ভুল যান এর উপর আমাদের cluing দেখুন. 771 01:10:25,870 --> 01:10:36,190 php.unique. অনির্দিষ্ট পরিবর্তনশীল: wooo কারণ এই একটি পরিবর্তনশীল নামক wooo হিসাবে ব্যাখ্যা করা হয়. 772 01:10:36,190 --> 01:10:42,400 ডাবল কোট আপনাকে ভেরিয়েবলের মধ্যে সন্নিবেশ - 773 01:10:42,400 --> 01:10:52,730 '$ Name = "রব" বলতে চলুন শুরু করা যাক; 774 01:10:52,730 --> 01:10:58,020 সুতরাং echo "হাই, আমার নাম হল '$ name!!"; 775 01:10:58,020 --> 01:11:09,260 এটি একটি পরিবর্তনশীল এই হিসাবে স্বীকৃতি দেয়. 776 01:11:09,260 --> 01:11:21,210 যখন আমি যে রান - এবং আমি একটি newline সন্নিবেশ করা - হাই, আমার নাম রব! এবং হ্যালো দুনিয়া! 777 01:11:21,210 --> 01:11:24,910 কারণ আমি wooo এর মুদ্রণ সরানো উপরে না. 778 01:11:24,910 --> 01:11:30,020 1 পরবর্তী ধাপে আপনি কি করতে পারেন পর্যন্ত. 779 01:11:30,020 --> 01:11:39,250 $ অ্যারের = [1, 2, 3]; 780 01:11:39,250 --> 01:11:43,270 ? আমি যদি অ্যারের প্রথম সূচক মুদ্রণ করতে চান 781 01:11:43,270 --> 01:11:45,150 আপনি $ অ্যারের [0] না. 782 01:11:45,150 --> 01:11:49,280 সিনট্যাক্স হাইলাইটিং একটি খেই. না কি এই চালু করতে হবে? 783 01:11:52,320 --> 01:11:54,510 php.unique. 784 01:11:54,510 --> 01:11:59,860 হাই, আমার নাম 1! যা কি না আমি চেয়েছিলেন. 785 01:11:59,860 --> 01:12:05,050 সিনট্যাক্স হাইলাইটিং সম্পর্কে যাও lied. 786 01:12:05,050 --> 01:12:13,020 চলুন শুরু করা যাক চেষ্টা 'একটি' -> 1, 'খ' -> 2. 787 01:12:18,450 --> 01:12:21,440 এটা কিভাবে আমি তা লিখতে হবে. 788 01:12:26,350 --> 01:12:32,160 অপ্রত্যাশিত একক উদ্ধৃতি চিহ্ন (T_ENCAPSED বাজে, বাজে কথা, বাজে কথা, বাজে কথা, বাজে কথা). 789 01:12:32,160 --> 01:12:41,780 ধারণা করা হয় যে এটি এই স্বীকৃতি এর অ্যারের অংশ হিসাবে না. 790 01:12:41,780 --> 01:12:46,620 এটি এই স্বীকৃতি অ্যারে এর একটি চিঠি সূচীবদ্ধ হিসাবে না. 791 01:12:46,620 --> 01:12:49,870 আপনি যে কোঁকড়া ধনুর্বন্ধনী দ্বারা বেষ্টিত করে যেতে চাই, 792 01:12:49,870 --> 01:12:54,730 এবং এখন এই তরঙ্গায়িত বক্রবন্ধনী মধ্যে যা কিছু থাকে ইন্টারপোলেট করা হবে, 793 01:12:54,730 --> 01:13:00,340 যা শব্দ আমরা magically ঠিক জায়গায় মধ্যে এই ভেরিয়েবলগুলি ব্যবহার ঢোকানোর জন্য. 794 01:13:00,340 --> 01:13:04,280 এখন এই করছেন, php.unique, এবং হাই, আমার নাম 1! হিসাবে প্রত্যাশিত 795 01:13:04,280 --> 01:13:07,720 বা হাই, আমার নাম রব! 796 01:13:14,110 --> 01:13:23,130 তবে একটি বিষয় যে এর একক উদ্ধৃতি চিহ্ন সম্পর্কে চমৎকার ধরনের হয় যে - 797 01:13:23,130 --> 01:13:28,480 প্রক্ষেপক কিছু খরচ আছে. 798 01:13:30,520 --> 01:13:35,100 আপনি যদি উদ্ধৃতি চিহ্ন ব্যবহার, ইন্টারপ্রেটার এই স্ট্রিং যান উপর আছে, 799 01:13:35,100 --> 01:13:41,500 এমনটা নিশ্চিত করা যে, "ওহ, এখানে একটি ভেরিয়েবল. এখন আমি যে পরিবর্তনশীল এবং এটি পেতে এখানে সন্নিবেশ যাওয়া প্রয়োজন." 800 01:13:41,500 --> 01:13:48,930 এমনকি আপনি যদি কোন ভেরিয়েবল ব্যবহার করবেন না, 801 01:13:48,930 --> 01:13:52,220 কিছুই এইসব উদ্ধৃতি চিহ্ন ভেতরে ইন্টারপোলেট করা প্রয়োজন যাও, 802 01:13:52,220 --> 01:13:56,800 কিন্তু এখনও এটি হতে মন্থর কারণ উদ্ধৃতি চিহ্ন যেতে বেশী প্রয়োজন হবে 803 01:13:56,800 --> 01:14:00,130 যে প্রয়োজন ইন্টারপোলেট করা খুঁজছেন. 804 01:14:00,130 --> 01:14:05,360 তাই একক উদ্ধৃতি চিহ্ন একটি বিট দ্রুত যদি কিছুই ইন্টারপোলেট করা প্রয়োজন হতে পারে, 805 01:14:05,360 --> 01:14:15,650 এবং আমি একক উদ্ধৃতি চিহ্ন জন্য ব্যবহার এমনকি, 'হাই, আমার নাম' ঝোঁক. $ অ্যারের ['একটি'] যাইহোক. 806 01:14:15,650 --> 01:14:20,430 যে সমতুল্য কি আমরা আগে কখনো হতে যাচ্ছে. 807 01:14:24,840 --> 01:14:28,440 কিন্তু পছন্দের একটি ব্যাপার. 808 01:14:28,440 --> 01:14:34,750 আপনি যদি পিএইচপি ব্যবহার করছেন, তাহলে সম্ভবত গতি পার্থক্য সম্পর্কে যত্ন না. 809 01:14:34,750 --> 01:14:39,480 হয় তাদের আউট দিয়ে শুরু করতে যথেষ্ট কারণ নেই. 810 01:14:39,480 --> 01:14:43,030 >> চূড়ান্ত কোন প্রশ্ন? 811 01:14:47,430 --> 01:14:51,710 >> এমনকি আমরা আসলে এটা সব মাধ্যমে পাইনি, কিন্তু এই উপাদান ছিল বিরক্তিকর. 812 01:14:51,710 --> 01:14:59,080 শেষ জিনিস যে পিএইচপি এর ধরনের সুন্দর হয় যখন আপনি HTML এর সঙ্গে আচরণ করছেন, 813 01:14:59,080 --> 01:15:06,450 আপনি একটি পরিবর্তনশীল মুদ্রণ জন্য এটি একটি বিট, তাই সুন্দর শর্টকাট সিনট্যাক্স ব্যবহার করব. 814 01:15:32,400 --> 01:15:36,730 পিএইচপি এখানে নির্বাণ ছাড়া, এই সংক্ষিপ্ত ট্যাগ বলা হয়. 815 01:15:36,730 --> 01:15:44,330 আনুষ্ঠানিকভাবে হিসেবে পিএইচপি 5.4, এই অবচিত হয়েছে. 816 01:15:44,330 --> 01:15:48,640 আপনি পিএইচপি সুপারিশ করা হয়. 817 01:15:48,640 --> 01:15:55,770 এই এখনও সমর্থিত <যাতে ছোট ট্যাগ,? = এখনও পুরোপুরি সূক্ষ্ম. 818 01:15:55,770 --> 01:16:02,480 এটা ডিফল্ট দ্বারা সমর্থিত হয়, তাই আপনি এই হিসাবে ব্যবহার করতে চান করতে পারেন, এবং তারা চমত্কার সুবিধাজনক. 819 01:16:02,480 --> 01:16:05,700 >> কোন প্রশ্ন? 820 01:16:07,780 --> 01:16:09,270 ঠিক আছে. 821 01:16:10,840 --> 01:16:13,800 >> উত্কৃষ্ট থাকুন, সান দিয়েগো. 822 01:16:13,800 --> 01:16:16,070 [Chuckles] 823 01:16:18,620 --> 01:16:22,660 Bye. [Laughs] 824 01:16:24,350 --> 01:16:28,470 [সাধুবাদ] [laughs] 825 01:22:46,460 --> 01:22:49,460 >> [CS50.TV]