ڈوگ لایڈ: تو ہم نے C میں کام کی ایک بہت کچھ کیا، اور C ایک بہت ٹھنڈا ہے زبان یہ آپ دیتا ہے کیونکہ واقعی ڈوبکی کرنے کی صلاحیت آپ کے پروگراموں میں کم سطح. ہم کے طور پر چیزوں کو حاصل کرنے کے لئے توڑ کے طور پر واقعی منٹ میموری کی انفرادی بائٹس. واقعی اشارہ کو یاد ہوگا کہ ہمیں اس لچک کی اجازت. لیکن ہم نے ہمیشہ ہونا ضروری ہے تفصیل کے ٹھیک اناج کی سطح کو منتخب ہمارے پروگرام میں؟ شاید نہیں، ٹھیک ہے؟ اور ہم جا رہے ہیں تو ہونے کے درمیان ایک تجارتی آف واقعی، واقعی ایسا کرنے کے قابل منٹ چیزیں اور واقعی، واقعی ہم سوچنے کی ضرورت نہیں ہے کہ بڑی باتیں کے بارے میں، ہم پر عملدرآمد کرنے کی ضرورت نہیں یہ واقعی بڑے خیالات تو انہوں نے پہلے ہی، ہمارے لئے میں تعمیر کر رہے ہیں عام طور پر بڑی تعمیر کے لئے پروگرام یا بڑے منصوبوں، ہم شاید طرف غلطی کرنے جا رہے ہیں سے زیادہ زبان چیزیں میں تعمیر ہونے ہمارے لئے، بجائے ہونے کے کم سطح کی چیزیں. پی ایچ پی کی واقعی میں آتا ہے اور یہ ہے جہاں. اب، وجوہات میں سے ایک ہم CS50 میں پی ایچ پی سکھانے کے کہ یہ بھاری طرف سے حوصلہ افزائی کی ہے کہ سی اور حقیقت میں، میری رائے میں، دو واقعی وہاں ہو مورث زبانوں کہ آج کل بہت عام ہیں. C اور تتلاہٹ. اور وہ مورث زبانوں ہیں ہر دوسرے جدید پروگرامنگ کیونکہ تیار کیا ہے کہ زبان اس کے بعد حوصلہ افزائی ہے ایک یا دوسرے syntactically ہے کی طرف سے. پی ایچ پی کی syntactically ہے بہت ملتا جلتا ہے C کرنے کے لئے، سکیم کی طرح زبانوں جبکہ، مثال کے طور پر، جس آپ کے بارے میں سنا ہے ہو سکتا ہے بھاری ایک زبان کی طرف سے حوصلہ افزائی ہے ایک پرانے زبان ہے جس میں کہا جاتا تتلاہٹ،. ہم سکھانے کی وجہ سے تو CS50 میں پی ایچ پی کی ہے، بنیادی طور پر سی جاننے کی طرف سے آپ اس نقطہ پر کرتے ہیں کے طور، دیتا ہے اٹھا پی ایچ پی، بہت اعلی سطح کام کرنے کی صلاحیت سی کرتا ہے کے مقابلے، نہیں ہے کہ ایک رکاوٹ کے زیادہ تر، آپ نے پہلے ہی ہے، کیونکہ نحو کے بنیادی خیال. سی تقریبا کے لئے ارد گرد کیا گیا ہے اس وقت 45 سال. پی ایچ پی کے بارے میں 20 سال کے لیے مروج ہے. اور یہ کہ 25 سالوں میں ، پروگرامرز کے درمیان میں مقرر ہے کہ وہ زیادہ سے زیادہ کریں گے بلکہ، اعلی سطح صلاحیتوں ہے اور غلطیوں اور جدوجہد درمیان میں 20 سال کی پی ایچ پی اور دیگر جدید زبانوں کی وجہ سے. کے پی ایچ پی کی ایک بہت اچھا انتخاب سافٹ ویئر کے لئے زبان کے لئے allow-- کہ تم کہاں that-- سافٹ ویئر میں ہے کہ چیزوں کو کرنے کی ضرورت ہے سی اصل میں پیچیدہ ہیں. لہذا مثال کے طور، کام C میں ڈور کے ساتھ کیونکہ، بہت پیچیدہ ہے ہم جانتے ہیں کے طور پر، C میں ڈور واقعی صرف حروف کا arrays ہیں. یہ ایک بلٹ میں ڈیٹا کی قسم نہیں ہے. یا شاید زیادہ بنیادی طور پر، ہم بھی سی کا احاطہ نہیں کیا کچھ، آپ کو ایسا کرنے کی ضرورت ہے تو کیا کچھ کمپیوٹر نیٹ ورکنگ؟ بالکل ٹھیک؟ سی ایسا کرنے کی صلاحیت ہے، لیکن یہ تو ہے arcane اور اصل میں کرتے ہیں کے لئے اتنا مشکل. یہ تو اچھا نہیں ہو گا زبان ایک بلٹ میں، آسان طریقہ تھا نیٹ ورکنگ پر عملدرآمد کرنے کے لئے؟ اور پی ایچ پی بنا دیتا ہے کہ ایک زبان ہے، یا، کہ بہت تھوڑا سا زیادہ سہولت فراہم. جیسا میں نے کہا، پی ایچ پی کی بہت بھاری متاثر ہے سی کی طرف سے نحو بہت ملتا جلتا ہے. اور اس طرح یہ امید کرنا چاہئے ایک سے دوسرے میں منتقلی کچھ کے مقابلے میں تھوڑا سا معتدل دیگر زبانوں ہو سکتا ہے. PHP لکھ شروع کرنے کے لئے، صرف کھول پی ایچ پی فائل توسیع کے ساتھ ایک فائل. تکنیکی طور پر یہ نہیں ہے اصل ضرورت، لیکن آپ نحو کی طرح چیزوں کو چاہتے ہیں تو اس قسم کے تو، IDE میں اجاگر ناموں، یا متغیر کے نام، کام کرتا ہے، آپ زبان کے الفاظ جانتے ہیں ایک میں اجاگر کر رہے ہیں مخصوص رنگ، آپ عام طور پر ساتھ آپ کی فائلوں کا نام کرنا چاہتے ہیں ایک مخصوص فائل چڑھانے کی کوشش. تو ہم نے ایک پی ایچ پی کے ساتھ ہماری فائل کا نام ہے توسیع، لیکن پھر بھی پی ایچ پی کے ساتھ، ہم اس میں لکھنے تمام پی ایچ پی کوڈ فائل ان پی ایچ پی میں منسلک کیا جا سکتا ہے ہم دیکھتے ہیں کہ کی delimiters یہاں کی سکرین پر. زاویہ بریکٹ پی ایچ پی کی شروع کرنے کے لئے. پھر ہم نے اپنے پی ایچ پی کی تمام لکھنا ہم درمیان میں چاہتے ہیں کہ کوڈ. اور پھر ؟ زاویہ بریکٹ بند کرنے. ہم اس، تو ایسا نہیں کرتے ہیں تو کیا ہونے جا رہا ہے؟ یہ کریش ہوا جا رہا ہے. یہ کرنے کے لئے نہیں جا رہا ہے واقعی ہمارے پروگرام کو برباد. لیکن اس بات کو نہیں جا رہا ہے ہم چاہتے ہیں کہ اثر. کیا ہونے جا رہا ہے، واقعی، ہے ہم کوشش کرتے ہیں اور اس پروگرام کو چلانے جب کہ، سب کچھ نہیں ان کی delimiters درمیان لفظ بہ لفظ باہر پرنٹ کرنے کے لئے کی جا رہی ہے. یہ کرنے کے لئے نہیں جا رہا ہے اصل میں کوڈ کو پھانسی، یہ کرنے کے لئے جا رہا ہے صرف لفظ بہ لفظ اسے باہر پرنٹ. اب معاملہ ہے؟ لہذا سی جانا جاتا ہے کیا ہے ایک مرتب زبان کے طور پر. آپ نے شاید سے واقف ہیں آپ کے پروگرام بنانے کے قدم، سی فائلوں اور ایچ فائلوں رخ میک کے ساتھ ایک executable میں، خاص طور پر استعمال کر رہے ہیں ہمارے سنکلک طور پر بجنا. پی ایچ پی، اگرچہ، نہیں کرتا اس کے برابر ہے. پی ایچ پی کی ایک کہا جاتا ہے تشریح زبان. اور اس کا کیا مطلب ہے؟ ٹھیک ہے، یہ ہم کو تبدیل کرنے کی ضرورت نہیں ہے کا مطلب ہے zeros اور ہیں کے لئے ہمارے ماخذ کوڈ پہلے. بلکہ، ایک پروگرام ہے، جو بھی کہا جاتا ہے پی ایچ پی اور سمجھتا ہے کہ پی ایچ پی، قسم کی مکھی پر یہ کر سکتے ہیں. کہ، واقعی بالکل درست نہیں ہے لیکن یہ ایک بہت اچھا قیاس ہے کے کیا ہو رہا ہے. یہ ان کی تشریح ہے مکھی پر zeroes اور ہیں. اگر ایسا ہے تو یہ معلوم نہیں ہے کس طرح کچھ پر عملدرآمد کرنے میں، یہ معلوم نہیں ہے تو کس طرح پی ایچ پی کی عمل، آپ کو شاید صحیح، وہاں ہے کہ متن ڈال کرنے کے لئے کرنا چاہتا تھا؟ آپ نے شاید میں کوڈ ڈال چاہتے تھے وہاں، یہ PHP-- درمیان نہیں ہے یہاں تک کہ اگر پی ایچ پی کی delimiters. But-- تو یہ نہیں جا رہا ہے آپ کے لئے اس کو حذف کرنے، یہ صرف بنیادی طور پر یہ ضائع کرنے جا رہا ہے. تو یہ پرنٹ کرنے کے لئے جا رہا ہے یہ پردے پر باہر. یہ ایک برا ہے جیسے یہ لگتا ہے بات، لیکن اصل میں یہ ہے واقعی ایک ہونے جا رہا اچھی بات ہے، ہم کریں گے کے طور پر ہم کے بارے میں بات کرتے وقت دیکھیں پی ایچ پی کی ویب کی ترقی، اس کا مطلب ہے کیونکہ ہم کر سکتے ہیں پی ایچ پی اور ایچ ٹی ایم ایل intersperse. ہم ان کے ساتھ استعمال کر سکتے ہیں ایک سے زیادہ متحرک ویب صفحہ تخلیق. لیکن میں اس پر مزید پی ایچ پی کی ویب کی ترقی پر ویڈیو. تو پی ایچ پی کی نحو کیا ہے؟ کہ اس ویڈیو کے بارے میں ہے کیا ہے. اس کے بارے میں بات کرتے ہیں. تو، متغیر باہر شروع کرنے کے لئے. پی ایچ پی کی متغیر کا کوئی وجود. صرف دو بڑی ہیں C. سے اختلافات وہاں سب سے پہلے ہے یہ ہے کہ کوئی قسم specifier یہ. ہم int کہنا نہیں ہے چار، فلوٹ، سب چیزیں. ہم اب ایسا کرنے کی ضرورت نہیں. پی ایچ پی کی ایک جدید زبان ہے. یہ آپ کیا کر رہے ہیں پتہ کر سکتے ہیں یا ایک بہترین بنانے کی کوشش آپ کو ایسا کرنے کی کوشش کر رہے ہیں کے طور پر لگتا ہے. تاکہ بہت اچھا ہے. دوسری بات یہ ہے تمام متغیر ہے نام ایک ڈالر علامت کے ساتھ شروع کرنا پڑے. اس کے استعمال کرنے کے لئے صرف کچھ ہے. اس کی وجہ سے، ایک چھوٹا سا عجیب ہے پی ایچ پی سمجھ سکتے ہیں تاکہ یہ کیا ایک متغیر ہے اور کیا نہیں ہے. تو ہر متغیرہ کا نام ایک ڈالر علامت کے ساتھ شروع ہوتا ہے. تو C میں ہم کچھ کہہ سکتا ہے اس طرح، int ایکس = 54. ہم پی ایچ پی میں اب ایسا کرنے کی ضرورت نہیں. ہم صرف ایکس = 54 $ کہہ سکتے ہیں. اور ہم C میں، مثال کے طور پر، کہہ سکتے ہیں، ہم CS50 ایچ پونڈ بھی شامل تھا تو ہیڈر فائل، ہم کہہ سکتے ہیں سٹرنگ کرتے ہیں = "یہ CS50 ہے." ہم اگرچہ، پی ایچ پی میں ایسا کرنے کی ضرورت نہیں. ہم صرف $ جملہ کہہ سکتے ہیں = "یہ CS50 ہے." اور حقیقت میں، سٹرنگ ہے پی ایچ پی میں ایک بلٹ میں ڈیٹا کی قسم، یا بلکہ پی ایچ پی سمجھتا ایک تار کیا ہے. یہ ایک سرنی کی طرف سے الگ ہے کرداروں میں سے یہ سی میں ہے جیسے اپنے تمام پسندیدہ C سے مشروط بیانات اب بھی آپ کو استعمال کرنے کے لئے دستیاب ہیں. تو وہاں کوئی بڑی تبدیلی. ہم کر سکتے ہیں کر سکتے ہیں say-- اس طرح کے بیانات تو. $ Y 43، یا $ Z = 15. تاکہ بہت سیدھا ہے. اگر ہم اور کچھ ہو سکتا ہے. اگر ہم اور کچھ تو کر سکتے ہیں. اور کچھ نوٹس خوبصورت یہاں اچھا، اور یہ ان میں سے ایک کی طرح ہے سی، پی ایچ پی کی نوٹس بمقابلہ کے فوائد کیا تقریب ہم یہاں استعمال نہیں کر رہے؟ ہم ایک موازنہ کرنے == استعمال کر رہے ہیں متغیر، $ نام، ایک تار. ہم صحیح، C میں ایسا نہیں کر سکتا؟ ہم نامی ایک تقریب کا استعمال کرنا پڑا StrComp یا StrEndComp یا کسی اس سے متعلق کزن. اور اس طرح پہلے سے ہی ہم ان فوائد کو دیکھنے کے. ہمیں کچھ کرنا نہیں ہے کے طور پر پاگل یا شاید پر unintuitive نامی ایک تقریب کہتے ہیں StrComp میں صرف ٹیسٹ کرنے کے لئے کرنا چاہتے ہیں تو چاہے وہ ایک قدر ایک تار کے برابر ہے. میں صرف برابر ہے استعمال کر سکتے ہیں جیسے میں نے کچھ اور کر سکتے ہیں. تو ایک فائدہ ہے. کبھی کبھی، راہ کی طرف سے، آپ کو ہو سکتا ہے elseif، اور کے طور پر اگر ایک لفظ دیکھیں. اور اس کے ساتھ ساتھ پی ایچ پی میں ٹھیک ہے. تو کبھی کبھی آپ دیکھ سکتے ہیں کہ. یہ ٹائپنگ میں کوئی غلطی نہیں ہے. پی ایچ پی کی اصل elseif سمجھتا. مجھے پتہ نہیں کیوں وہ کہ لاگو کرنے کا فیصلہ، لیکن ہم نے کئی بار دیکھا ہے اب تک ہمارے ویڈیوز میں، ہم پروگرامرز تو اس سے محبت ہم فوری طور پر کام کر سکتے ہیں تاکہ اس جگہ سے چھٹکارا حاصل بظاہر ایک بڑا فائدہ یہ ہے. تو ہے کہ تو elseif ہے. ہم نے بھی تہرا آپریٹر ہے، یاد سوالیہ نشان بڑی آنت، اور اگر بہت مختصر فارم کے لئے یا مشروط branching کے. اور بظاہر، اس میں، جو ہم یہاں کیا کرنے کی کوشش کر رہے متغیر تفویض ہے صحیح یا غلط $ خط، $ متغیر یا نہیں پر منحصر ایک اکشراتمک کردار ہے. تو اس isalpha سے بہت ملتا جلتا ہے ہم سی سے سے واقف ہیں یہ پی ایچ پی میں برابر کی طرح ہے. تقریب بظاہر ہے ctype_alpha بلایا، لیکن ہے کہ ہم پی ایچ پی میں ایسا کس طرح ہے. تو یہ سب تو ہونا ہے جا رہا ہے $ متغیر ایک خط ہے، $ خط سچ ہے. $ متغیر ایک خط نہیں ہے تو، $ خط باطل ہے. ہم اب بھی سوئچ بیانات ہیں. ہم C سے ان کے طور پر اچھی طرح سے یاد کرتے ہیں. وہاں بہت سے اوپر دیئے گئے، کہ ہم کس طرح ہے حاصل int یا سٹرنگ حاصل کی طرح کچھ. تو پی ایچ پی میں بنایا گیا ہے کہ ہے. ہم اب CS50 لائبریری کی ضرورت نہیں ہے. ہم صرف تقریب readline استعمال کر سکتے ہیں. کیا ایسا کرنے کے لئے جا رہا ہے پرنٹ کریں پیغام، "آپ کی ریاست، ، براہ مہربانی "اور پھر فوری طور پر ٹمٹمانے ان پٹ کے لئے صارف کے لئے انتظار کر رہے ہیں کچھ معلومات. اب کیا کسی نوٹس ہم سوئچ کے ساتھ کر سکتے ہیں. تم سے پہلے اسے استعمال کیا جاتا ہے تو، آپ اس سوئچ یاد کر سکتے ہیں integers کے بہت زیادہ محدود ہے اور حروف، لیکن اب ہم ڈور استعمال کر سکتے ہیں. اور حقیقت میں، سوئچ بیان پی ایچ پی میں بہت تھوڑا سا زیادہ لچک دار ہے C. سے اس کے کزن سے loops کے. بس کونداٹاونالس طرح، تمام اپنے پرانے پسندیدہ اب بھی وہاں ہیں. ہم شمار ہے کہ جبکہ loops ہے 1 سے اس معاملے میں سے 100. ہم loops جبکہ کرتے ہیں کہ، 1 سے 100 شمار اور ہم loops کے لئے ہے 1 سے 100 شمار. تو وہاں کوئی بڑی چھلانگ. نحو خوبصورت ہے وہی زیادہ، اب ہم استعمال کر رہے ہیں سوائے ڈالر کا نشان متغیر بجائے عددی متغیر کا اعلان یا ہمارے کاؤنٹر کے لئے کچھ اس طرح. چیزوں کو حاصل ہے جہاں یہاں ہے اگرچہ، C سے بہت بہتر. لڑیاں. تو ہم تھے یاد کرتے ہیں جب ترتیب میں، سی کے بارے میں بات ہم اگاتے اور سکڑ کرنے کے لئے معلومات کے سیٹ، ہم ڈیفالٹ کی الگ الگ کرنے کی ضرورت ہے ایک لنک کی فہرست کے اس خیال سے، سی arrays کے سائز میں مقرر کیا گیا تھا کی وجہ سے. ہم ان کو چھوٹا نہیں کر سکتے. ہم ان کے بڑھنے نہیں کر سکتے. ہم میموری reallocate کرنے تھا اور یہ سب جنون کرتے یا منسلک فہرستوں، استعمال کرتے ہیں جس بہت تھوڑا سا زیادہ جگہ لے. لیکن پی ایچ پی میں، arrays ہیں اب سائز میں طے نہیں. وہ اگاتے ہیں کر سکتے ہیں اور وہ سکڑ کر سکتے ہیں. تو ایک بار پھر، ان 20 سال موجود ہے کہ سی کے پہلے رہائی کے درمیان اور سب سے پہلے رہائی پی ایچ پی، ہم، آپ کو معلوم ہے، کہ اس کا فیصلہ یہ واقعی بہت اچھا ہو جائے گا ہم ایسا کر سکتے ہیں تو. اور اس طرح ہم اس کو لاگو کیا. تو پی ایچ پی arrays میں طے نہیں کر رہے ہیں سائز، اور پی ایچ پی نہیں ہے کیونکہ واقعی پروگرامر فرنٹ کا سامنا ہے اقسام کے تصورات، ہم اعداد و شمار اقسام کے اختلاط کر سکتے ہیں ہمارے arrays میں، بھی. تو ہم بھی سب کو استعمال کرنے کی ضرورت نہیں integers کے یا تمام سچل پوائنٹس، ہم سب کا ایک مرکب ہو سکتا ہے ایک صف میں مختلف قسم کے. ایک صف ہے کا اعلان خوبصورت براہ راست. یہ صرف کسی دوسرے متغیر کی طرح ہے. $ 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. لیکن ان مثالوں کے دونوں یہاں مجھے دے اس صورت integers کے میں چار کی ایک سرنی. میں اب کچھ سمت کیا چاہتے ہیں؟ ویسے میں صرف $ nums 4، کا کہنا ہے کہ کر سکتے ہیں جو ایک بار پھر، ہم اب بھی یہاں 0 سے گن رہے ہیں پی ایچ پی میں، پانچویں ہوگا صف کے عنصر. میں صرف کہہ سکتے ہیں کہ. میں ایک SEG شکار کرنے کے لئے نہیں جا رہا ہوں میری سرنی صرف ہے کیونکہ، غلطی کہ ایڈجسٹ کرنے کے لئے بڑھ رہا. یہ ٹھیک ہے، بہت اچھا ہے؟ اور حقیقت میں، میں بھی کرنے کی ضرورت نہیں میں ڈال کرنا چاہتے ہیں جہاں کی وضاحت. میں صرف یہ اور صرف کہہ سکتے ہیں ختم کرنے کا حق پر سمت، یا میں یہاں تک کہ صرف کر سکتے ہیں $ 20 یا nums 1،000 کہہ. یہ واقعی کوئی فرق نہیں پڑتا. یہ اب بھی صرف جا رہا ہے ختم کرنے کے لئے حق پر سمت. تو میں اگاتے ہیں، اور ہم ہیں as-- کر سکتے ہیں یہاں میں اس کا احاطہ کرنے کے لئے نہیں جا رہا، لیکن میں نے بیاہ یا پٹی کر سکتے ہیں اس کے ساتھ ساتھ صف کے باہر عناصر، اور صف ایڈجسٹ کرنے کے لئے سکڑ جائے گا کہ اب غائب یا خالی جگہ. سمت کرنے کے لئے ایک راستہ نہیں ہے ایک صف پر کچھ، جس array_push نامی ایک تقریب ہے. تو ایک بار پھر، کیا جا رہا ہے کے صرف اس خیال چیزیں بہت سے مختلف طریقوں ایسا کرنے کے قابل. تو کیا اب ہم تین مختلف طریقوں کو دیکھا ہے ایک صف پر ایک اور عنصر سمت. تو یہ ایک عنصر کا اضافہ کر دیتی $ nums صف کے آخر سے. اور ہم نے اپنے اعداد و شمار اقسام کو ملا کر سکتے. تو میں نے نہیں کی ایک سرنی کر سکتے ہیں 1، 2، 3، 4، لیکن اس کی 1، سچ، 3، 4، جہاں حقیقی ایک بولین ہے، اور اس کے بعد میں نے ایک اور عنصر پر سمت کرنا چاہتے ہیں تو اس صف کے لئے، شاید ایک سٹرنگ، سٹرنگ "پانچ،" میں ایسا کر سکتا ہے. اور اب میری صف گے سچ 1،، 3، 4، پانچ ہو. لفظ پانچ، نہیں عددی 5. تو وہاں لچک کا ایک بہت. لچک ہو جاتا ہے یہاں تک کہ بہتر، اگرچہ، پی ایچ پی کی کچھ کے لئے حمایت حاصل ہے کیونکہ ایک ساہچری سرنی بلایا. اور ہم قسم کی مبہم بات سی میں ساہچری arrays ہیش میزیں کے تناظر، کیونکہ کیا ساہچری arrays واقعی ہیں اہم کر رہے ہیں کے بارے میں قدر جوڑی مور. اور اگر اس معاملے میں، keys-- ہم C سے arrays کے ساتھ واقف ہیں چابیاں انڈیکس تعداد میں ہیں. 0، 1، 2، 3. اور اقدار ہے کہ ہم اس کو تلاش کیا ہے صف 0، صف 1، اسی طرح صف 2، اور. تو چابیاں اشاریہ جات ہیں، اور اقدار ہیں اس صف کی جگہ میں ہے، کہ انڈیکس کی طرف سے مخصوص. لیکن پی ایچ پی میں، ہم ایسا کرنے کی ضرورت نہیں ہے صف 0 کے تصور، صف 1، سرنی 2 اب. اب ہم اصل الفاظ استعمال کر سکتے ہیں اقدار کی چابیاں نقشے پر. اور اس میں کچھ اس طرح کہہ سکتے ہیں. میں استعمال کرتے ہوئے ایک صف بنانے کے کر سکتے ہیں مندرجہ ذیل کے طور پر مربع بریکٹ نحو. $ پججا = مربع بریکٹ "پنیر" اور پھر ڈبل تیر سنکیتن کی اس طرح، 8.99، "پیپرونی،"، 10.99-- 9.99 تیر اور اسی طرح. اور تو کیا یہاں کیا ہو رہا ہے؟ میں اصل میں کیا کر رہا ہوں؟ میں کلیدی قدر جوڑی مور پیدا کر رہا ہوں. تو کہنے کی بجائے، مثال کے طور پر، پججا 0، ٹکڑے ٹکڑے کر 1، پججا 2، اب پججا کہہ سکتے ہیں پنیر، پججا پیپرونی، اور اقدار کا حوالہ دیتے ہیں ان کے ساتھ منسلک. تو یہاں ہمارے چابیاں سبز رنگ میں ہیں. پنیر، پیپرونی، سبزی، بینس چکن. یہاں ہے کہ تیر ہے اس کلیدی قدر جوڑی تعریفیں. اور پھر یہاں اقدار ہیں اس صف کے مقام پر. تو یہ صف 0 8.99 برابر کہہ طرح ہے. کلیدی 0 ہے. قیمت 8.99 ہے. اب صف پنیر کہہ، یا اس میں کر سکتے ہیں کیس پججا پنیر، پنیر، کلید ہے اور میں کیا تلاش پججا پنیر 8.99 ہے. کہ میں وہاں مل جائے اس کی قیمت ہے. تو میں نے چیزوں کو پسند کہہ سکتے ہیں. $ پیزا پنیر = 7.99. میں ایک فروخت چل رہا ہے کا کہنا ہے کہ. مجھے چھوڑ کرنا چاہتے ہیں dis-- چاہتے پنیر کا پیزا کی قیمت. یا میں سبزیوں استعمال کر سکتے ہیں پیزا ایک شرط کے طور پر، یا میں نے ایک نئے عنصر شامل کر سکتے ہیں میرے سرنی، صرف میں نے پہلے کر سکتے ہیں پسند. میں نے اس کے لئے ایک نیا عنصر شامل کر سکتے ہیں اہم "بیکن" کے ساتھ ساہچری سرنی اور قیمت 13.49. لیکن اس طرح کے، ایک مسئلہ متعارف کرایا آپ کو ایک سیکنڈ کے لئے اس کے بارے میں لگتا ہے کہ اگر. ہم کس طرح اس صف کے ذریعے iterate گے؟ ٹھیک ہے؟ C میں، ہم صرف ایک ہوگا لوپ کے لئے، عام طور پر، کہ 0 سے چلائیں گے 1 مائنس صف کے سائز. صف میں (ن) کے عناصر ہے، درست اشاریہ جات ن مائنس 1 0 ہے. تو ہم کرنے کے لوپ کے لئے ایک استعمال کر سکتے ہیں ہر ایک عنصر کے ذریعے قدم. لیکن یہ واقعی نہیں ہے کیس اب، ٹھیک ہے؟ اب ہم کلیدی قدر جوڑی ہے جہاں چابیاں الفاظ ہیں جہاں مور، ہم کس طرح الفاظ کی تمام iterate ہیں؟ ویسے، خوش قسمتی سے، پی ایچ پی کی ہے ایک طریقہ، بھی اس کے ساتھ نمٹنے کے لئے اور اسی طرح ہم واپس کود گا ایک سیکنڈ کے لئے loops کے لئے لوپ کے چوتھے قسم متعارف کرانے کے لئے کہ پی ایچ پی کی ایک foreach لوپ ملاقات میں موجود ہے. اور کیا ایک جعلی foreach لوپ کرتا ہے یہ بنیادی طور پر ایک ہی خیال ہے. آپ کو صف میں سے کسی بھی قسم کے لئے استعمال کر سکتے ہیں. لیکن یہ بنیادی طور پر ہے لوپ کے لئے ایک کے طور پر ایک ہی خیال، بجائے استعمال کرتے ہوئے سوائے سوچکانک، آپ کو صرف یہ عجیب نحو جہاں ہے آپ کو ہر ایک عنصر کو فون اس لوپ کے مقاصد کے لئے ایک نام. تو اس صورت میں، جعلی foreach ($ کلید کے طور پر $ سرنی). بنیادی طور پر، کہ تبصرہ نوٹ کے طور پر، کہ جعلی foreach لوپ کے اندر، یہ ہر ایک پر جانے کے لئے جا رہا ہے عام طور پر ہے جس میں $ صف کے عنصر ایک ساہچری سرنی ہونے جا رہا، لیکن واقعی صف کے کسی بھی قسم کی ہو سکتی ہے آپ پی ایچ پی میں چاہتا ہوں کہ. اور میں ہر وقت ہے کہ لوپ کے لئے ایک پرممکن ہے کہ آپ $ سرنی مربع بریکٹ کہا ہے $ میں، آپ کو صرف $ اہم کہہ سکتے ہیں. تاکہ $ اہم ہر ایک کے لئے ایک عرف بن آپ پی ایچ پی ساہچری سرنی کے انڈیکس، اور تو آپ کو اس طرح استعمال کر سکتے ہیں. لہذا مثال کے طور، ہم نے اب ہمارے پججا سرنی ہے. میں اس قسم کی اس دور tucked ہے وہاں کونے میں تو ہم نے ایک فوری مثال کرنے کے لئے استعمال کر سکتے ہیں. میں کے طور پر جعلی foreach ($ پججا کہتے ہیں $ پتزا)، ٹھیک ہے، کیا ہو رہا ہے؟ ٹھیک ہے، میں ہر ذریعے iterate کرنے جا رہا ہوں سرنی $ پججا کی واحد عنصر، اور ایسا کرنے میں، میں نے فون کرنے جا رہا ہوں ہر عنصر، جب میں اندر ہوں لوپ کے لئے اس کے جسم کی، پیزا $. تو یہ ایک کی طرح ہے موقف میں، یاد، کہ $ پیزا ایک موقف میں کہنے کے لئے ہے $ پججا مربع بریکٹ $ میں ہم لوپ، جہاں ہم نے کے لئے ایک کا استعمال کرتے ہوئے کر رہے تھے تو اس معاملے میں $ میں = 0، سے جا سکتے ہیں، $ میں 3 =. ہم کلیدی قدر جوڑوں ضرورت نہیں تھی تو یہاں، اس عنصر 0، 1، 2، 3 ہو جائے گا، اور ہم جانے کے لئے لوپ کے لئے ایک کا استعمال کریں گے $ پججا 0، $ پججا 1، $ پججا 2، $ پججا 3. تو اب صرف پیزا substituting کی ہے $ کہ انفرادی چابی کے لئے. تو کیا اس سے باہر پرنٹ کرنے کے لئے جا رہی ہے؟ میں $ پیزا باہر پرنٹ کر رہا ہوں. کیا میں کی لمبائی تو تلاش کرنے کے لئے جا رہا ہوں مجھے $ پججا $ باہر پرنٹ ہے؟ ٹھیک ہے؟ میں باہر پرنٹ کرنے کے لئے جا رہا ہوں تو پججا کی ith عنصر، جو میں پرنٹ کرنے کے لئے جا رہا ہوں؟ میں باہر پرنٹ کرنے کے لئے جا رہا ہوں اس مقام پر اقدار، ٹھیک ہے؟ ہم کیا کر رہے تھے تو طرح C کے تناظر میں اس، ہم عام طور پر ہمارے iterator استعمال نہیں کرتے متغیر،، میں = 0، میں سے کم 3 int کی میں 0، 1، 2، 3 باہر پرنٹ کرنے، + +. ہم صف 0 باہر پرنٹ کر رہے ہیں صف 1، 2 سرنی، سرنی 3. اور اس طرح یہ باہر پرنٹ کیا ہے. یہ قیمتوں کی فہرست ہے. 8.99، 9.99، 10.99، 11.99. اب یہاں ایک فوری نوٹ. ایک foreach لوپ ضروری نہیں ہے حکم میں چیزیں باہر پرنٹ. اس بات کی ضمانت نہیں ہے. یہ عام طور پر کرتا ہے. یہ عام طور پر آرڈر میں پر مبنی ہے جو عناصر صف میں شامل کر رہے ہیں، تاکہ ذہن میں برداشت. اس کی ترتیب میں نہیں ہو سکتا. لیکن ایک جعلی foreach لوپ iterate گا ہر عنصر بھر میں سوال میں صف کے. اس صورت میں، ایک بار پھر، اس صف $ پججا ہے. میں تو، اگرچہ، نحو تبدیل کر سکتے ہیں میں اہم اور قیمت دونوں چاہتے ہیں. اس کے بجائے $ پججا کہہ کے $ pizza کے طور پر، میں نے اس سے کہہ سکتے ہیں. اور تم میں کردینے پر نظر ڈالیں تو یہاں سبز رنگ میں روشنی ڈالی، یہ ایک اہم قدر جوڑی تعریفیں کی طرح لگتا ہے. اور اس طرح you-- اگر آپ نہیں ہیں یہاں تک کہ اگر مکمل طور پر ایسا کرنے کے لئے کیا ہو رہا ہے اس بات کا یقین، آپ کو شاید اندازہ لگا سکتے ہیں کہ $ ٹاپنگ رہا ہے اس معاملے میں اہم ہو اور $ قیمت کی قیمت ہونے جا رہا ہے. تو اب میں ہر عنصر کی جگہ ہوں $ کی ایک کلیدی قدر جوڑی کے طور پر پججا، اور اب میں اہم کی طرف رجوع کر سکتے ہیں اور قیمت، جو ہو سکتا ہے ہاتھ میں، مثال کے طور پر، کے طور پر مندرجہ ذیل ہے. "مجموعی" - یہ ایک بہت ہے پرنٹنگ یہاں "ایک پوری" پر جا ٹاپنگ تو قیمت، اور "پزا $ اخراجات" میں ایک مدت اور ایک الٹا سلیش (ن) کو پرنٹ. تو اب، نوٹس پھر میں تک رسائی حاصل ہے ایک اہم، $ ٹاپنگ، اور ایک قدر، $ قیمت. تو تم نے کیا اس اندازہ لگا سکتے ہیں باہر پرنٹ کرنے کے لئے جا رہی ہے؟ پرنٹ بیانات کی ایک بہت نہیں ہے، لیکن صرف ایک الٹا سلیش (ن) ہے، تو اس پر کچھ پرنٹ کرنے کے لئے جا رہا ہے کوڈ کی ایک لائن پر ایک entire--. میں چابی کی طرف رجوع کر سکتے ہیں اور قیمت، تو اب، کی بجائے صرف قابل ہونے کی وجہ سے قیمتوں باہر پرنٹ کرنے، میں نے اس طرح کچھ باہر پرنٹ کر سکتے ہیں. "ایک پوری پنیر کا پیزا $ 8.99 اخراجات." اور اب میں keys-- کے تمام استعمال کر رہا ہوں پنیر، پیپرونی، سبزی، بھینس chicken-- اور اقدار. 8.99، 9.99، 10.99، 11.99 تو کہ صرف ایک مختلف طریقہ ہے ایک foreach لوپ ایسا کرنے کی بجائے صرف، آپ کو اقدار تک رسائی دینے سے یہ آپ سب turnarounds you-- یہ صرف ہے چابیاں اور اقدار تک رسائی. تاکہ معلومات باہر پرنٹ. میں نے پہلے ہی اس کے ایک جوڑے کے کیا ہے مختلف طریقوں سے، آپ نے محسوس کیا ہو سکتا ہے. دو افعال ہم بنیادی طور پر ہے پرنٹ اور گونج دیکھا. اور بہت زیادہ تمام intents اور مقاصد، وہ بالکل ایک جیسے ہیں. They're-- ایک بہت ہی ٹھیک ٹھیک وہاں ہے بھی قابل نہیں ہے کہ فرق بنیادی طور پر ہر جگہ میں ہو رہی ہے، لیکن آپ کو شاید استعمال کر سکتے ہیں پرنٹ استعمال کر سکتے ہیں اس کے ساتھ ساتھ بازگشت. اور یہ کہ صرف دو نہیں ہے. پی ایچ پی کی مختلف کی ایک بہت ہے چیزوں کو باہر پرنٹ کرنے کے لئے طریقوں، اور یہ بھی ضم کرنے کے طریقوں ہے سٹرنگ کے وسط میں متغیر. تو سی سے یاد، تم کرتے ہو کیا تقریب یاد ہے ہم متغیر متبادل کرنے کے لئے استعمال کر سکتے ہیں چیزوں میں ہم باہر پرنٹ کرنے کے لئے چاہتے ہیں؟ آپ نے شاید اس کا استعمال بہت سے کام. printf کے، ٹھیک ہے؟ تو یہ ہے کہ ہم اندر سے پہلے تھا کیا ہے ہمارے جعلی foreach لوپ کے سیاق و سباق سے. ہمیں ان پانچوں تھا علیحدہ پرنٹ بیانات، کہ صرف تھا کیونکہ راہ میں واقعی وقت بھی جانتا تھا کس طرح پیغامات کو پرنٹ کرنے کے لئے. میں ضم کرنے کے لئے کس طرح پتہ نہیں تھا اپنے پی ایچ پی کوڈ میں ٹاپنگ متغیر $. ٹھیک ہے، میں صرف ایک جنگلی اندازہ اگر لیا، printf کے، یہ اصل میں کام کیا جائے گا. printf کے استعمال کر سکتے ہیں کہ ایک تقریب ہے پی ایچ پی میں، صرف میں سی میں اس کا استعمال کر سکتے ہیں پسند اور اس طرح کچھ اس طرح، printf کے، ایک بار پھر، ہم اس سے واقف ہیں. پہلے میں٪ s تبدیل کیا جاتا ہے $ ٹاپنگ کی قدر کے ساتھ. دوسری٪ ے تبدیل کیا جاتا ہے $ قیمت کی قیمت کے ساتھ. اور اس طرح میں interpellating ہوں، جس میں صرف ایک پسند ہیں طریقہ ہے کہہ کے میں چپکی ہوئی ہوں اس مقام میں متغیر. تو میں ٹاپنگ میں $ plugging رہا ہوں جہاں سرخ٪ S $ قیمت جہاں نیلے٪ ے ہے اور ہے، اور پھر میں پیغام مل جائے گا، "ایک پوری پنیر کا پیزا $ 8.99 اخراجات." میں اگرچہ، یہ کر سکتے ہیں نہ صرف طریقہ. شاید میں اس طریقہ کا استعمال کرنا چاہتے ہیں کریں گے. یہ سب سے زیادہ عام طور پر کیا ہے اصل میں ہے متغیر دخل بلایا. میں ایک گونج استعمال کر سکتے ہیں. ہم دیکھیں گے کے طور پر میں، بھی ایک پرنٹ استعمال کر سکتے ہیں. لیکن یہاں کیا ہو رہا ہے؟ سب سے پہلے، میں پڑے ڈالر کا نشان فرار. ہم اصل میں تھے کیونکہ جب، یاد پججا کی قیمتوں باہر پرنٹ، میں اصل میں کے طور پر ان فارمیٹنگ گیا ایک ڈالر علامت کے ساتھ مالیاتی اعداد و شمار. لیکن ہم یہ بھی ڈالر نشانیاں استعمال کر رہے ہیں پی ایچ پی میں متغیر کے نام کی نمائندگی کرنے، اور خاص طور پر میں ہوں جب گھوبگھرالی کا یہ طریقہ استعمال کر رہے ہیں تسمہ متغیر دخل طریقہ، مجھے اس کی ضرورت یہ نہیں کرتا تو میرے ڈالر کا نشان سے بچنے کے لئے میں ایک متغیر کے بارے میں بات کر رہا ہوں لگتا ہے. یہ اصل میں جا رہا ہے لفظی ایک ڈالر کا نشان پرنٹ. تو اس طرح کی کے لئے اس analogize تم وہاں آخر میں دیکھ کر کیا. یہ اصل میں نہیں ہے پرنٹ الٹا سلیش (ن)، ٹھیک ہے؟ یہ ایک نئی سطر کردار باہر پرنٹ. یہ کرنے کے لئے نہیں جا رہا ہے is-- پرنٹ الٹا سلیش ڈالر کا نشان، یہ صرف باہر پرنٹ کرنے کے لئے جا رہا ہے ایک ڈالر کی نشانی کردار. ایک ہی خیال. انداز فرار، کیا ان چیزوں کو کہا جاتا ہے. لیکن میں نہیں کر رہا ہوں کہ محسوس ٪ s کو متبادل کے کسی بھی طرح، میں صرف لفظی plugging رہا ہوں ان متغیرات میں. اور اس طرح this-- میں یہاں کیا ہوگا ، کہ $ topping-- کی قدر ایک بار پھر ہے ہم کیا گیا ہے کے ساتھ رکھنے تو far-- پنیر کے بارے میں بات کر ملے گا وہاں میں پلگ. اور $ قیمت ہے جو قیمت ہو جائے گا پججا پر، مربع بریکٹ، پنیر، جو 8.99 تھا. اور اس طرح یہ بھی کو پرنٹ کریں گے "ایک پوری پنیر کا پیزا $ 8.99 اخراجات." جیسے میں نے کہا، میں استعمال کر سکتے ہیں بجائے گونج یہاں پرنٹ، اور فعالیت ہونا وہی بہت. یہ ایک ہی بات کو پرنٹ کریں گے. ایسا کرنے کے لئے ایک راستہ نہیں ہے، اور یہ ایک دوسرے فائدہ یہ ہے پی ایچ پی کی ڈور کے ساتھ کام کر رہے ہیں. ہم سٹرنگ concatenation کر سکتے ہیں. ہم بھی، C میں ایسا کر سکتا ہے، strcat نامی ایک تقریب کا استعمال کرتے ہوئے، لیکن ایک بار پھر، ہم نے کرنا پڑا علیحدہ افعال کہتے ہیں. ایسا کرنے کے لئے یہ ساری گندگی تھی. ہم کرنے کے لئے تھا string.h کے پونڈ شامل. یہ درست ہے، ایک پیداوار تھا؟ لیکن اب میں صرف اس نقطہ آپریٹر کا استعمال کر سکتے ہیں ایک دوسرے کے ساتھ ڈور سلسلہ بندی کرنا. تو میں نے "ایک پوری" concatenating کی ہوں اور تو جو کچھ بھی $ ٹاپنگ کی قدر ہے، اور پھر ایک سٹرنگ، "پزا اخراجات $" اور اس کے بعد جو کچھ بھی concatenating کی $ قیمت کی قدر ہے، اور پھر آخر میں ہوں مدت الٹا سلیش (ن) پر tacking کی. اور اس طرح یہ بھی کریں گے "مجموعی" باہر پرنٹ - پھر، ہم سب سے پہلے کے بارے میں بات کر رہے ہیں تو کہ پججا صف کے عنصر "ایک پوری پنیر کا پیزا $ 8.99 اخراجات." مدت، پھر (ن)، کے ساتھ، $ ٹاپنگ اور $ قیمت substituting کی ہم اپنے جعلی foreach میں مخصوص کیا تھا کے لئے کلیدی قدر جوڑی تعریفیں کے طور پر لوپ. پی ایچ پی افعال کو سنبھال سکتا ہوں. افعال قسم کے تھے C کرنے کے لئے لازمی طور پر ہم نے دیکھا. متغیر کی طرح، ہم نے کی ضرورت نہیں ہے ، تقریب کی واپسی کی قسم کی وضاحت یہ واقعی کوئی فرق نہیں ہے کیونکہ. اور ہم وضاحت نہیں کرتے کسی بھی پیرامیٹرز کے اعداد و شمار اقسام، وہ واقعی نہیں ہے کیونکہ بات، ہم پی ایچ پی میں دیکھا ہے کی طرح. ہر تقریب پیش کیا جاتا ہے تقریب مطلوبہ الفاظ کے ساتھ. یہی ہے جو ہم کہ پی ایچ پی کو اس بات کی نشاندہی کے لئے کس طرح ہے کیا ہم کے بارے میں بات کر رہے ہیں ایک تقریب ہے. اور ہم نے کی ضرورت نہیں ہے میں تمام اہم کے ساتھ نمٹنے کے، مترجم کی وجہ سے، پی ایچ پی کی مترجم، اوپر سے نیچے کام کرتا ہے، سے قطع نظر. اس کو دیکھتا ہے تو آپ کر سکتے ہیں ایک تقریب کو فون، یہ کروں گا تقریب کال مل جانا، یہاں تک کہ اس کے بعد آتا ہے. لیکن یہ اوپر سے پڑھنے کے لئے جا رہا ہے نیچے، تو ہم وضاحت کرنے کی ضرورت نہیں، آپ کو شروع کرنے یہاں ہے جہاں. آپ کی سطر 1 پر شروع آپ پی ایچ پی کی وہاں سے نیچے کام کرتے ہیں اور. لہذا ہم یہاں پیدا کرے گا کہ کس طرح ہے ایک تقریب hard_square بلایا. یہ بظاہر ایک لیتا ہے پیرامیٹر، میں $ X بلا رہا ہوں جس میں. یہ تقریب صرف پیچیدہ ہے مختلف چیزوں کی وضاحت کرنے. ہم اب بھی واپسی اقدار ہے. میں یہاں لوپ کے لئے ایک استعمال کر رہا ہوں. لیکن یہ بنیادی طور پر صرف، کیا یہ ہے صرف $ X بار $ ایکس کرنے کے مترادف ہے. کیا میں واقعی میں صرف اضافہ کر رہا ہے کر رہا ہوں X X اوقات 0 یا $ صفر $ X اوقات ایکس. لیکن یہ مؤثر طریقے بالکل وہی جو ہے $ X اوقات $ X ضرب کے طور پر اسی. میں اب بھی ایک قدر واپس کر سکتے ہیں، اس صورت $ نتیجے میں، اور میں پی ایچ پی میں ایک تقریب بنا دیا ہے. یہاں آپ کو سیاق و سباق میں استعمال کر سکتے ہیں کس طرح ہے. تو شاید میں نے کچھ پی ایچ پی کی فائل کے اندر ہوں. وہاں اس نیلے رنگ میں نوٹس میں نے اپنے پی ایچ پی کی delimiters کا استعمال کیا ہے، زاویہ بریکٹ سوالیہ نشان پی ایچ پی. ان کے درمیان میں ہیں میں لکھنا چاہتا ہوں کہ پی ایچ پی. تو میں نے بظاہر get-- کرنے جا رہا ہوں میں صارف فوری طور پر جا رہا ہوں مجھے ایک نمبر، اسٹور دینے کے لئے متغیر، کہ متغیر $ X میں سٹور، جو کچھ انہوں نے مجھے دیا. پھر میں بازگشت کرنے جا رہا ہوں اس قدر کی hard_square، اور بظاہر جا ایک نئی سطر پر سمت اس کے ساتھ ساتھ، اور پھر بعد میں کروں گا تو hard_square تقریب کی وضاحت میں نے جب اس hard_square کو پکارے، اس کے بارے میں بات کر رہا ہوں کیا جانتا ہے. اب، میں بھی کر سکتے ہیں کچھ اس طرح. یہ تھوڑا سا مختلف ہے. یہ تقریبا بالکل وہی جو ہے ہم نے پہلے دیکھا ہے کے طور پر ایک ہی، X بجائے صرف $ کہہ کے علاوہ وہاں پیرامیٹر hard_square کے طور پر، میں $ X = 10 کہہ رہا ہوں. تو اس کی ایک مثال ہے دفاعی پروگرامنگ، آپ کے پروگراموں کی حفاظت بدنیتی پر مبنی صارفین کے خلاف. یہ کچھ خرابی ایسا کرنے کا ایک طریقہ ہے ہم واقعی نہیں کیا ہے کہ جانچ پڑتال سی میں ایک آپشن کے طور پر ہے ہم کبھی نہیں کر سکتے کچھ پہلے سے طے شدہ قیمت کی وضاحت. ہم نے ہمیشہ کی جانچ پڑتال کرنے کے لئے تھا چاہے، مثال کے طور پر، ہم GetString کو فون کر دیا، تو یہ تھا سب سے زیادہ مناسب فوری طور پر اگر ہم بعد ، ہم جانچ پڑتال کہ جانچ پڑتال سٹرنگ چاہے صارف ہمیں دیا ہے کہ ، شہوت انگیز null برابر نہیں ہے ہم شروع کرنے کے لئے نہیں کرنا چاہتے کیونکہ شہوت انگیز null سٹرنگ کے ساتھ کام کر رہے ہیں. یہاں، یہ ایک طریقہ ہے اس کے خلاف کی حفاظت کے لئے. صارف ہمیں کچھ فراہم نہیں کرتا تو کسی نہ کسی طرح، کیا ہم کیا کرنے جا رہے ہیں؟ ٹھیک ہے، ہم صرف کہیں گے جو وہ ہمیں فراہم نہیں کیا، ہم صرف اس کی بجائے 10 میں پلگ کرنے کے لئے جا رہے ہیں. وہ ہمیں ایک قیمت دے نہیں کیا تو، صرف ڈیفالٹ کی طرف سے 10 کا استعمال کریں. اور اس طرح یہاں، میں بنا رہا ہوں کہ توجہ ایک hard_square کو پکارے، لیکن کوئی فوری طور پر وہاں ہے صارف کو، ٹھیک ہے؟ میں صرف ایک خالی کال کر رہا ہوں. لیکن میری تقریب hard_square ایک پیرامیٹر کی توقع ہے. کیا اس سے باہر پرنٹ کرنے کے لئے جا رہی ہے؟ یہ درست ہے، 100 سے باہر پرنٹ کرنے کے لئے جا رہا ہے؟ صارف نہیں تھا کیونکہ مجھ سے کچھ دے. اور اس میں صرف فرض کرنے جا رہا ہوں 10-- 10 پہلے سے طے شدہ قیمت ہے. اور اس طرح یہ پرنٹ گی 100 پر اپنی ہی سطر. پی ایچ پی فائلوں کی ضرورت نہیں ہے صرف ایک فائل. تم ایک دوسرے کے ساتھ ایک سے زیادہ فائلوں کو اکٹھا کر سکتے، صرف C. میں آپ کر سکتے ہیں جس طرح چاہیں ہم C میں ایک کرنا عام طور پر تھا کہ کیا # شامل ہیڈر فائلوں میں نکالا حاصل کرنے کے لئے. ہم پی ایچ پی میں ایسا نہیں ہے. ہم require_once نامی کچھ. اور پھر اس پورے نہیں ہے بات، یہ __DIR__ کیا ہے؟ وہ صرف ایک خاص ہے متغیر، یا خصوصی مسلسل، واقعی، اس کا کیا کی وضاحت کرتا ہے اپنے موجودہ ڈائریکٹری ہے. اور اس طرح یہ نظر آئے جا رہا اپنے موجودہ ڈائریکٹری میں ایک فائل کہا جاتا cs50.php لئے یہاں اس مثال میں، اور یہ کہ فائل رہنا جا رہا ہے آپ پی ایچ پی پروگرام کے سب سے اوپر، آپ کی ضرورت ہوتی ہے ڈال دیا ہے کہ سنبھالنے آپ پی ایچ پی فائل کے سب سے اوپر آن لائن ایک بار. تو پی ایچ پی کی بنیادی طور پر، استعمال کیا جاتا ہے لیکن خاص طور پر، استعمال نہیں ویب پر مبنی پروگرامنگ کے لئے ایک زبان کے طور پر. یہ ہونے کے لئے آیا واقعی کس طرح ہے. لیکن یہ ایک بھرا ہوا ہے ہم نے دیکھا ہے کے طور پر زبان،. ہم بہت زیادہ سب کچھ دیکھا ہے یہ سی کی طرح ہیں کہ کر سکتے ہیں کہ، اور اس کی ایک heck کر سکتے ہیں اس سے بھی زیادہ ایک بہت. لیکن یہ ہے کیونکہ ایک مکمل زبان اور ہم اس میں کمانڈ لائن پروگرامنگ کر سکتے ہیں. ہم کمانڈ لائن پروگرام چلا سکتے ہیں. تمام ہے کہ ایک کمانڈ چلانے کے لئے کی ضرورت ہے پی ایچ پی میں لکھا ہے کہ لائن پروگرام آپ کو ایک پی ایچ پی کی ترجمان ہے. تو اس کے لئے قسم کی مثل ہے آپ کے سسٹم پر ایک سنکلک ہونے آپ کو آپ C کوڈ مرتب کرنے کے لئے چاہتے ہیں تو فائلوں میں تبدیل کرنے. آپ کو ایک پی ایچ پی کی ترجمان کی ضرورت ہے کہ آپ کے سسٹم پر موجود لہذا آپ کو پی ایچ پی فائلوں کی تشریح کر سکتے ہیں. تم کرتے ہو یہ سمجھتے ہوئے، اور عام طور پر اس مترجم، پی ایچ پی کہا جاتا ہے اور یہ عام طور پر سب سے زیادہ کے ساتھ بنڈل ہے ڈاؤن لوڈ یا پی ایچ پی کی تنصیبات آپ کو یقینی طور آن لائن حاصل، اور کر سکتے ہیں ایچ پی کی ترجمان کا نام ہم CS50 میں IDE ہے. تم کرتے ہو سب قسم پی ایچ پی فائل ہے. اور کیا آپ کے پروگرام کی کیا جا رہا ہے ہے کے ذریعے چلانے کے لئے جا مترجم، یہ ہے ہے کہ سب کچھ نظر انداز کرنے جا سوال mark-- درمیان میں یا، زاویہ بریکٹ سوالیہ نشان پی ایچ پی، پی ایچ پی کی delimiters، اور اسے باہر پرنٹ اور اس کی تشریح اور عملدرآمد کیا جائے گا آپ پی ایچ پی کی delimiters کے اندر کوڈ. تو CS50 IDE سے زیادہ پاپ دو اور پی ایچ پی کی فائلوں کے ایک جوڑے پر ایک نظر ہے، میں، پی ایچ پی کی فائلوں کے ایک جوڑے کو چلانے کے CS50 IDE کے کمانڈ لائن انٹرفیس. تو یہاں ہم CS50 IDE میں ہیں، اور میں آزادی لے لیا ہے کے کہا جاتا hello1.php ایک فائل کھولنے. اس کی اور بظاہر، مواد فائل، وہاں صرف پی ایچ پی کی delimiters ہیں اور، گونج کے درمیان میں ("ہیلو، دنیا"). یہ ایک بہت آسان پی ایچ پی پروگرام ہے. میں صرف ذیل میں سکرال کرنے جا رہا ہوں یہاں میرے ٹرمنل ونڈو میں، اور میں پی ایچ پی ٹائپ کرنے جا رہا ہوں hello1.php، درج کریں مارا. ہیلو، دنیا. کہ ہم کیا تھے شاید ایسا کرنے کے لئے امید کر رہا، ٹھیک ہے؟ کی جانا اور ڈالیں ایک اور پروگرام کو دیکھو. hello2.php. بہت ایک ہی بات، ایک بہت کچھ یہاں پر نہیں جا. اس بار، اگرچہ، میں فوری طور پر جا رہا ہوں صارف نے مجھے ان کے نام دینے کے لئے. میں نے پھر اس readline تقریب استعمال کر رہا ہوں. $ نام = readline. کہ فوری طور پر، ہے "آپ کا نام کیا ہے؟" بظاہر میں چھپائی رہا ہوں یہ اس کی اپنی لائن پر. اور پھر، تو کی لکیر سے نیچے کہ فوری طور پر ہو جائے گا جہاں صارف ان کے نام درج کر سکتے ہیں. اور پھر میں نے تھوڑا سا کا استعمال کرتے ہوئے کر رہا ہوں لائن 3 پر متغیر دخل "ہیلو" باہر پرنٹ کرنے کے لئے اور جو اندر صارف اقسام. تو یہ ہیلو، کہہ کے مطابق ہے، کوما،٪ S ہم C. میں printf استعمال کر رہے تھے تو تو جاؤ اور اس پروگرام کی تشریح دو. تو ایک بار پھر، میں ذیل میں سکرال کریں گے میرے ٹرمنل ونڈو میں. پی ایچ پی کی hello2.php. تمہارا نام کیا ہے؟ ڈوگ. ہیلو، ڈوگ. میں بھی ایک ہے فائل hello3.php بلایا. میں صاف کرنے کے لئے جا رہا ہوں میری کنٹرول L کے ساتھ سکرین، اور میں نے اس پر عمل کرنے جا رہا ہوں. تمہارا نام کیا ہے؟ ڈوگ. ہیلو، ڈوگ. تو رویے کی ایک جیسی ہے hello2.php، لیکن کیوں اس hello3.php ہے؟ ٹھیک ہے، یہاں فرق ہے. اس صورت میں، نوٹس کہ یہاں سطر 1 پر، میں نہیں ہے کہ کچھ ہے پی ایچ پی کی delimiters درمیان میں. میں صرف out-- یا میں چھپائی رہا ہوں صرف "آپ کا نام کیا ہے؟"، ٹائپ ایچ پی کی ترجمان اس کو دیکھتا ہے، تو یہ کوئی اندازہ نہیں ہے کہ کس طرح پی ایچ پی کے طور پر تشریح کی ہے، اور اس کی بجائے، میں ناکام یہ صرف باہر تھوکنے جا رہا ہے. تو، اب لائن 3 پر میری کال نوٹس readline، اب کوئی فوری طور پر موجود ہے. دراصل میں to-- جب جا رہا ہوں ایچ پی کی ترجمان، اس کو دیکھتا ہے اسے باہر پرنٹ کرنے کے لئے جا رہا ہے "تمہارا نام کیا ہے؟" اس کے بعد یہ here's--، ٹھیک ہے، اوہ، دیکھتا ہے سب کچھ ہونے جا رہا ہے لہذا، پی ایچ پی کے طور پر تشریح یہ کام کرتا ہے یہی وجہ ہے کہ. میں ضروری فوری طور پر کرنے کی ضرورت نہیں readline کی اندر صارف to--، میں نے صرف اسے باہر کر سکتے ہیں پی ایچ پی کی delimiters سے اور مترجم کی اجازت دیتے ہیں صرف میرے لئے اسے باہر پرنٹ کرنے کے لئے. تو آپ کو اصل میں صرف کی ضرورت نہیں ہے پی ایچ پی کی delimiters کی ایک سیٹ حاصل کرنے آپ کے پروگرام میں. تم واقعی میں، ان میں سے کئی کر سکتے ہیں کھولنے اور ضرورت کے مطابق ان کو بند. تو ایک نظر ڈالیں پروگراموں کی ایک جوڑے کو جہاں CS50 IDE میں ہم ہونے کے اس خیال کی وضاحت ختم ہونے والی پی ایچ پی کی ایک سے زیادہ سیٹ. ٹھیک ہے، تو میں نے ایک فائل کو کھول دیا ہے یہاں add1.php بلایا. اور یہاں کیا ہو رہا ہے محسوس. بس کے طور پر پہلے، میں نے ایک ہی پی ایچ پی delimiters سے مقرر. میں باہر پرنٹ کرنے کے لئے جا رہا ہوں پیغام، "مجھے ایک نمبر دے دو." پھر میں نے ایک آن لائن پڑھنے کے لئے جا رہا ہوں اور متغیر $ num1 میں سٹور. پھر میں نے ایک بار پھر باہر پرنٹ کرنے کے لئے جا رہا ہوں. مجھے ایک دوسرے نمبر دو. صارف، سٹور سے ایک سطر پڑھیں وہ $ num2 میں ٹائپ جو کچھ بھی. ان کے ساتھ شامل کریں اور اس مواد کو محفوظ $ نامی ایک متغیر رقم کے نتیجے میں، اور پھر "، باہر پرنٹ ان دو اعداد کا مجموعہ ، ہے "اور پھر interpellate وہاں متغیر $ رقم. تو صرف اس کو چلانے کے دو مترجم کے ذریعے یہ ہم توقع ہے اس بات کی تصدیق. پی ایچ پی کی add1.php. مجھے ایک نمبر، 3 دینے کریں. مجھے ایک دوسرا نمبر، 4 دے براہ مہربانی. ان دو نمبروں کی رقم 7. 3 کے علاوہ 4. ٹھیک ہے؟ وہاں تو کچھ بھی نہیں بہت پسند. اور اب add2.php اور کھول دو. یہاں، میں پی ایچ پی کے ایک جوڑے کی ہے ہے وہاں سیٹ ختم ہونے والی، ٹھیک ہے؟ لکیریں 1، 3-- لائنوں 1 اور 3 کوئی پی ایچ پی کی delimiters ہے. تو جب مترجم یہ صرف ہے، ان کو دیکھتا ہے بالکل تھوکنے جا رہا کیا میں ٹائپ ہے. ہوں تاکہ جہاں میرے فورا سب کر. کے علاقے میں 2 اور 4 پر، ہم دیکھیں بہت واقف $؟ delimiters سے پی ایچ پی کی طرح، لہذا ان دو لائنیں ہیں پی ایچ پی کے طور پر پر عمل کرنے جا رہا. اور پھر آن لائن 5، میں یہ ہے یہیں عجیب بات، ٹھیک ہے؟ یہ زاویہ بریکٹ سوالیہ نشان برابر علامت. میں بھی تھوڑا سا مزید میں زوم کریں گے. آپ کو اس میں ہوں کیا ہے دیکھ سکتے ہیں ، وہیں کے بارے میں اس بات $ =؟. یہ تاکہ عام ہے کہ باہر کر دیتا ہے ہم پی ایچ پی کی ایک سیٹ کو کھولنے کے اس وجہ سے delimiters کی ایک قدر باہر پرنٹ کرنے کے لئے ہے. اور یہ کہ ہم کیا کرنے جا رہے ہیں تمام ہے. لیکن اس کے لئے بھی آشلپی ہے. $ =؟ کہنے کے لئے پی ایچ پی کی آشلپی ہے $ طرح کچھ؟ بازگشت پی ایچ پی کی رقم num1 اور num2 کی. تو یہ صرف ایک اور مثال ہے اس کے لئے آشلپی. میں اس پروگرام، پی ایچ پی add2.php اور چلانے تو. میں نے تھوڑا سا نیچے زوم کریں گے. مجھے ایک نمبر، 4 دے براہ مہربانی. مجھے ایک دوسرا نمبر دے دو. اور میں واقعی پرواہ نہیں ہے کے بعد پی ایچ پی میں اعداد و شمار اقسام، میں 4.8 کہہ سکتے ہیں. ان دو نمبروں کی رقم 8.8 ہے. یہ فنکشن بہت برتاؤ ہم توقع کریں گے کے طور پر بالکل اسی، اس کے ساتھ ساتھ. اور میں نے ایک کھول دیا ہے یہاں dice.php بلایا. ایک بار پھر اس کی کوشش کریں. میں نے ایک یہاں بلایا ہے بھی، دیکھ جس dice1.php،، کہ زاویہ بریکٹ سوال ہے وہاں میں برابر علامت سنکیتن کو نشان زد کر، لیکن اس معاملے میں ہوں کہ محسوس تقریب رینڈ، بلا جس سے آپ کے طور پر توقع ہو سکتی ہے ایک بے ترتیب تعداد پیدا کرتا ہے. "آپ کو ایک نافذ" اور یہ جا رہا ہے + کچھ بے ترتیب تعداد، جدید 6 حساب 1. تو ہے کہ مجھے نمبر دیں گے 1 سے 6 کی حد میں. جدید 6 مجھے دے گی یاد رکھیں کہ 0 5 کی حد میں ایک بڑی تعداد، لیکن میں نرد فہرستوں تخروپن ہوں تو، جو میں یہاں کیا کر رہا ہوں، میں ان نرد 0 سے جانے کے لئے نہیں کرنا چاہتے 5 میں 1 سے 6 تک جانا ہے کہ نرد چاہتے. اور اس طرح اس کو حاصل کرنے کا ایک طریقہ ہے 1 سے 6 کی حد میں مجھے. میں نے دو بار یہ کر رہا ہوں. تو بظاہر میں رولنگ ہوں اس پروگرام میں دو نرد. تو میں نے اپنے سکرین صاف کریں گے، اور میں پی ایچ پی dice1.php کروں گا. آپ کو ایک 4 اور 2 نافذ. اور میں نے پروگرام چلاتے ہیں ایک بار پھر، آپ کو ایک 5 اور ایک 5 نافذ. تو میں نے پروگرام کو چلانے کے لئے ہر وقت، میں، مختلف تعداد ہو رہی ہے کیونکہ میں ہر وقت تو، اس کے بارے میں شروع ہو رہا ہے. یہ ایک نیا پیدا کرنے کے لئے جا رہا ہے میرے لئے بے ترتیب تعداد کے سیٹ. ہم استعمال کر رہے ہیں تو C کی طرف سے پروگرام چلانے، ہم ./ ٹائپ کرنے کے لئے استعمال کر رہے ہیں ٹھیک ہے، ایک پروگرام کا نام؟ کہ ہم سب کیا ہے کہ کس طرح ہے C میں ہمارے پروگراموں کے اتنی دور. ہم اس کے ساتھ ساتھ پی ایچ پی میں ایسا کر سکتے ہیں کچھ انہوں نے مزید کہا کی طرف سے کہا ہمارے پی ایچ پی فائل کے سب سے اوپر ایک shebang کی. میں نے اسے ایک پاگل لفظ کی طرح ہے جانتے ہیں. یہ ہیش دھماکے کے لئے مختصر ہے. کہ پہلے دو حروف ہے. ہم فجائیہ نقطہ کال یاد رکھیں کمپیوٹر سائنس میں کثرت سے ایک دھماکے. یہ بھی تیز بینگ کے لیے ہو سکتا ہے. اس کی تشریح کرنے کے ایک جوڑے کے طریقوں ہے. لیکن یہ بنیادی طور پر ایک خاص طرح ہے کا حکم ہے کہ پی ایچ پی کی ترجمان اوہ، میں چاہتا ہوں، کے طور پر سمجھتا ہے آپ کو اس پروگرام پر عمل کرنے، جو بظاہر / صارف / بن / پی ایچ پی، ہے جو جہاں ایچ پی کی ترجمان اصل میں ہے خاص طور پر ہمارے نظام پر رہتا ہے. it's-- تو کیا ہے یہاں کیا ہوتا مترجم، اوہ، سمجھتا ہے میں بظاہر استعمال کرنے کے لئے کی توقع کر رہا ہوں اس پروگرام میں اس فائل کو چلانے کے لئے. اور اس طرح یہ آپ کی اجازت دیتا قدم پر جائیں کرنے کے لئے کے پی ایچ پی something.php کہنا ہے کہ کرنے. ایک دوسرے کو پکڑنے نہیں ہے یہاں، ہے جو کہ اگر ہم ہمارے پروگراموں کے لئے چاہتے ہیں توقع کے مطابق، ہم کام کہا جاتا ہے کچھ کرنے کی ضرورت ہے ایک فائل کی اجازت تبدیل. اور ہم go-- کریں گے اور ہم ایک چھوٹی سی بات تھوڑا سا زیادہ کے بارے میں فائل کی اجازت تبدیلیاں ہماری MVC پر ویڈیو، لیکن میں اس کے لئے کافی یہ آپ کیا کرنے کی ضرورت ہے کا کہنا ہے کہ بنانے کے لئے میں آپ کی پی ایچ پی فائلوں کارکردگی. تو کے طور پر اس پر ایک نظر ڈالیں CS50 IDE میں ہماری آخری مثال کے طور پر زیادہ. تو یہاں IDE میں اس میں دو فائلوں ہے نہیں ہونا ظاہر ہے کہ پی ایچ پی کی ڈائرکٹری پی ایچ پی نامی. میں نے ایک تقریب میں بلایا ہے add-- میں نے ایک فائل کہا جاتا add3 ہے اور ایک فائل dice2 بلایا. تو ایک فوری ڈالیں نظر آتے ہیں اور add3 کھولو. اور آپ کو شروع میں، دیکھ سکتے ہیں کے طور پر میری فائل میں نے صحیح، اس shebang کی ہے؟ یہ ہیش نشان فجائیہ نقطہ. اب، آپ کو شاید میں بھی کروں گا کسی وجہ کے لئے ہے کہ محسوس کریں، میں کسی بھی نحو نہیں ہے اب اجاگر، اور یہ میں نے پہلے اشارہ کیا ہے جس میں میری فائل کا نام نہیں ہے تو یہ تھی کہ پی ایچ پی، میں فائدہ نہیں ہے نحو کی اب اجاگر. یہ فائل صرف add3 کہا جاتا ہے. میں اسے بعد میں چلا سکتے ہیں تاکہ ./ add3 اور ./ add3.php ساتھ. تو reason-- یہ اب بھی ٹھیک، یہ اب بھی درست پی ایچ پی کی، لیکن اس کی وجہ، پر روشنی ڈالی نحو نہیں ہے اس فائل something.php نہیں بلایا ہے. کہ صرف حقیقی فرق ہے یہاں، کے علاوہ shebang کی. تو کیا ہوتا ہے جب دیکھتے ہیں میں کوشش کریں اور اس پروگرام کو چلانے. ./ add3، صرف میں سی پارٹی کے ساتھ جیسے. ./ add3 اجازت دینے سے انکار. یہ آپ جا رہے ہیں کیا ہے آپ بھول جاتے ہیں تو دیکھنے کے لئے تبدیل کرنے کے لئے chmod کمانڈ استعمال کرنے کے لئے فائل کی اجازت. یہ پی ایچ پی کی باقاعدہ باہر کر دیتا ہے کے طور پر فائلوں کو صرف پھانسی نہیں کیا جا سکتا. انہوں نے تشریح کی جا سکتی، لیکن ہم ہیں یہاں ایک چھوٹا سا کچھ مختلف کر. ہم اس عمل کر رہے ہیں. اور اس طرح میں اجازت شامل کرنے کی ضرورت پھانسی کی، A + ایکس add3 سے chmod. پھر میں نے ./ add3 کہہ سکتے ہیں. مجھے ایک نمبر دے دو. 5، 6. ان دو اعداد کا مجموعہ 11 ہے. اسی طرح، میں نے پہلے ہی chmoded ہے dice2، تو میں صرف، dice2 ./ ٹائپ کر سکتے ہیں آپ کو ایک 1 اور 1 نافذ، آپ اسی طرح ایک 5 اور 4، اور نافذ کیا. تاکہ بہت زیادہ ہے ایک پی ایچ پی کی نحو کے خیال، ٹھیک ہے؟ کے ذریعے حاصل کرنے کے لئے بہت کچھ ہے، مجھے معلوم ہے. لیکن امید ہے کہ آپ کہ پی ایچ پی اب دیکھا ہے C کی طرف سے سچ ہے کہ مختلف نہیں ہے اور واقعی ہمیں صلاحیت دیتا ایک نشان یا دو چیزیں لینے کے لئے. ہم واقعی میں فکر کرنے کی ضرورت نہیں ہے ہم واقعی نہیں about-- بہت زیادہ کے بارے میں بہت زیادہ فکر کرنے کی ضرورت کم سطح کی تفصیلات ہم دائیں، سی کے ساتھ کے بارے میں فکر کرنے کی ضرورت تھی؟ ہم اعلی پر توجہ مرکوز کر سکتے ہیں سطح کی چیزیں کہ پی ایچ پی ہمیں ایسا کرنے کی اجازت دیتا ہے کے لئے لے یہ ہمارے لئے کام کریں گے کہ حاصل کی جاچکی. تو یہ، اب ہمیں صلاحیت دیتا پی ایچ پی سی کی طرف سے تبدیل، بہت زیادہ ہیں کہ پروگرام بنانے کے لئے پیچیدہ اور شاید ایک بہت زیادہ مضبوط. تو میں آپ کو مزہ کام ہے امید ہے کہ پی ایچ پی کے ساتھ، اور میں ڈوگ لایڈ ہوں. یہ CS50 ہے.