ڈیٹا کی اقسام کے ساتھ کام کرنا Working with Data Types
متغیرات میں کئی مختلف قسم کی ویلیوزشامل ہو سکتی ہیں- مثال کے طور پر، دن کا وقت، ڈالر کی رقم، یا کسی شخص کا نام۔ڈیٹا کی قسم معلومات کی مخصوص کیٹگری ہے جو ایک متغیر میں پائی جاتی ہے۔ڈیٹا کی اقسام کو نیے پروگرامرز کے لیے اکثر مشکل ہوتا ہے کیونکہ حقیقی زندگی میں آپ اکثر معلومات کی مختلف اقسام میں فرق نہیں کرتے۔اگر کوئی آپ سے آپ کا نام، آپ کی عمر، یا موجودہ وقت پوچھتا ہے، تو آپ عام طور پر اس بات پر غور نہیں کرتے ہیں کہ آپ کا نام ایک ٹیکسٹ سٹرنگ ہے اور یہ کہ آپ کی عمر اور موجودہ وقت نمبرز ہیں۔تاہم، ایک متغیر کی مخصوص ڈیٹا کی قسم پروگرامنگ میں بہت اہم ہے کیونکہ ڈیٹا کی قسم اس طریقہ کار کا تعین کرنے میں مدد کرتی ہے جس میں کسی ویلیو کو ذخیرہ کیا جاتا ہے اور کمپیوٹر متغیر میں ذخیرہ شدہ ڈیٹا کے لیے کتنی میموری مختص کرتا ہے۔ڈیٹا کی قسم ان کارروائیوں کی قسم کو بھی کنٹرول کرتی ہے جو متغیر پر انجام پا سکتیں ہیں۔ڈیٹا کی وہ اقسام جنہیں صرف ایک ہی ویلیو تفویض کی جا سکتی ہے، انہیں پرائمیٹو ٹائپ کہا جاتا ہے۔
ڈیٹا کی وہ اقسام جنہیں صرف ایک ہی قدر تفویض کی جا سکتی ہے، انہیں سادہ(primitive) ٹائپ کہا جاتا ہے۔
Description | Data Type |
---|---|
اعشاریہ کےبغیرتمام مثبت، منفی اور صفر اعداد کا سیٹ | Integer numbers |
اعشاریہ مقامات کے ساتھ مثبت یا منفی اعداد یا ایکسپونینشل نوٹیشن کی مدد سے لکھے گئے اعداد | Floating-point numbers |
“سچ” یا “غلط” کی منطقی قدر | Boolean |
متن جیسے “ہیلو ورلڈ” | String |
ایک خالی قدر، جسے NULL قدر بھی کہا جاتا ہے۔ | NULL |
پی ایچ پی کی زبان حوالہ(reference)، یا جامع(composite)، ڈیٹا کی قسموں کو بھی سپورٹ کرتی ہے، جس میں متعدد ویلیوز یا معلومات کی پیچیدہ اقسام شامل ہو سکتی ہیں، جیسا کہ بنیادی(primitive) ڈیٹا کی اقسام میں ذخیرہ شدہ واحد ویلیوز کے برعکس۔
پی ایچ پی کی زبان دو حوالہ جاتی ڈیٹا کی اقسام کو سپورٹ کرتی ہے اور وہ ارے(arrays) اور آبجیکٹ(object) ہیں۔اس موضوع میں، آپ ایرے کی بنیادی تکنیکوں کا مطالعہ کریں گے۔ آپ بعد کے مضامین میں ایریز(arrays) اور آبجیکٹ کی اعلی تکنیکوں کے بارے میں جانیں گے۔
بہت سی پروگرامنگ زبانیں اس بات بھی کا تقاضا کرتی ہیں کہ آپ ایک متغیر بناتے ہوئے اس کی ڈیٹا ٹائپ کا بھی تعین کریں۔ایسی پروگرامنگ زبانوں کو سٹرانگلی ٹائپد پروگرامنگ زبانیں کہا جاتا ہے۔سٹرانگ ٹائپنگ کو سٹیٹک ٹائپنگ بھی کہا جاتا ہے کیونکہ جب ایک مرتبہ آپ متغیر بنا لیتے ہیں تو پھر اس کی ڈیٹا ٹائپ کو تبدیل نہیں کر سکتے۔
پروگرامنگ زبانیں جن کے لیے آپ کو متغیرات کی ڈیٹا کی قسموں کو بتانے کی ضرورت نہیں ہوتی انہیں لوزلی ٹائپڈ پروگرامنگ زبانیں کہا جاتا ہے۔لوز ٹائپنگ کو ڈائنامک ٹائپنگ بھی کہا جاتا ہے کیونکہ متغیر کی ڈیٹا ٹائپ اس کے بنانے کے بعد بھی تبدیل ہو سکتی ہے۔پی ایچ پی ایک لوزلی ٹائپ پروگرامنگ زبان ہے۔پی ایچ پی میں، آپ کو متغیرات کی ڈیٹا ٹائپ کا تعین کرنے کی ضرورت نہیں ہے،اور، حقیقت میں، آپ کو ایسا کرنے کی اجازت نہیں ہے۔اس کے بجائے، پی ایچ پی اسکرپٹنگ انجن خود بخود تعین کرتا ہے کہ متغیر میں کس قسم کا ڈیٹا محفوظ ہے اور اسی کے مطابق متغیر کو ڈیٹا کی قسم تفویض کرتا ہے۔
مندرجہ ذیل کوڈ یہ ظاہر کرتا ہے کہ جب بھی متغیر کو نئی لٹریل ویلیو دی جاتی ہے تو کس طرح متغیر کی ڈیٹا ٹائپ خود بخود بدل جاتی ہے۔
اگلے دو حصے عام طور پر استعمال ہونے والی ڈیٹا کی دو اقسام پر توجہ مرکوز کرتے ہیں: عددی اور بولین۔
عددی ڈیٹا ٹائپس Numeric Data Types
عددی ڈیٹا کی قسمیں کسی بھی پروگرامنگ زبان کا ایک اہم حصہ ہیں اور خاص طور پر ریاضی کے حساب کے لیے مفید ہیں.پی ایچ پی دو عددی ڈیٹا کی اقسام کو سپورٹ کرتا ہے: انٹیجرز اور فلوٹنگ پوائنٹ نمبرز۔انٹیجرز مثبت اور منفی اعداد اور صفر پر مشتمل ہوتے ہیں، اور ان کا کوئی اعشاری حصہ نہیں ہوتا ہے۔نمبرز 250−، 13−، 0، 2، 6، 10، 100، اور 10,000انٹیجرز کی مثالیں ہیں۔6.16−، 4.4−، 3.17، .52، 10.5، اور 2.7541 عداد انٹیجرز نہیں ہیں۔ وہ فلوٹنگ پوائنٹ نمبرز ہیں۔
ایک فلوٹنگ پوائنٹ نمبر اعشاری جگہوں پر مشتمل ہوتا ہے یا ایکسپونینشل نوٹیشن میں لکھا جاتا ہے۔ایکسپونینشل نوٹیشن ، یا سائنسی نوٹیشن ، بہت بڑی تعداد یا اعداد کو کئی اعشاریہ مقامات کے ساتھ لکھنے کے لیے ایک مختصر شکل ہے۔ایکسپونینشل نوٹیشن میں لکھے گئے نمبروں کو 10− اور 10 کے درمیان ایک ویلیو سے ظاہر کیا جاتا ہے جسے 10 سے ضرب دی جاتی ہے جو کچھ طاقت سے بڑھایا جاتا ہے۔” دس گنا کی طاقت میں اضافہ” کو ایک بڑے یا چھوٹے حرف Eسے ظاہو کیا جاتا ہے۔ مثال کے طور پر، نمبر 200,000,000,000 کو 2.0e11 کے طور پر ایکسپونینشل نوٹیشن میں لکھا جا سکتا ہے، جس کا مطلب ہے “دو گنا دس کی طاقت گیارہ۔”
آئیے ایک اسکرپٹ بناتے ہیں جو متغیرات کو عددی اور ایکسپونینشل نمبرز تفویض کرتا ہے اور پھر ان ویلیوز کو ظاہر کرتا ہے:
- اپنے ٹیکسٹ ایڈیٹر میں ایک نئی دستاویز بنائیں اور اسے DisplayNumbers.php کے بطور محفوظ کریں۔
- اگر آپ وی.ایس کوڈ استعمال کر رہے ہیں تو HTML:5 ٹائپ کریں.یہ ایک HTML ٹیمپلیٹ تخلیق کر دے گا.
- ہیڈر سیکشن کے ٹائٹل ایلیمنٹ میںDisplay Numbers بطور موادلکھیں.
- ڈاکومنٹ باڈی میں معیاری پی ایچ پی اسکرپٹ ڈیلیمیٹر شامل کریں
- اسکرپٹ سیکشن میں درج ذیل لائنیں شامل کریں۔ وہ ایک عددی متغیر اور ایک فلوٹنگ پوائنٹ متغیر بناتی ہیں:
- آخر میں، متغیرات کی ویلیوزکو ظاہر کرنے کے لیے، اسکرپٹ سیکشن کے آخر میں درج ذیل بیانات شامل کریں:
- ڈاکومنٹ کو ویب سرور پر اپ لوڈ کریں اور ویب براؤزر میں اوپن کریں:
- ویب براؤزر ونڈو کو بند کر دیں.
بولین ویلیوز Boolean Values
پی ایچ پی میں، بولین ویلیوز کو اکثر مشروط بیانات میں استعمال کیا جاتا ہے تاکہ اس بات کا تعین کیا جا سکے کہ دی گئی شرط کی بنا پر کوڈ کے کون سے بلاک کو چلانا ہے۔ مثال کے طور پر:
اس مثال میں، if اسٹیٹمنٹ چیک کرتی ہے کہ آیا number$ ویری ایبل 5 سے بڑا ہے۔ چونکہ number$ ویری ایبل کی ویلیو 10 ہے، اس لیے شرط درست ہے، اور کوڈ کا پہلا بلاک عمل میں آتا ہے۔ اس کوڈ کا آؤٹ پٹ یہ ہوگا:
The number is greater than 5
پی ایچ پی کے کئی فنکشنز بولین ویلیوز کو واپس کرتے ہیں۔ مثال کے طور پر، ()is_numeric فنکشن چیک کرتا ہے کہ آیا دی گئی ویلیو ایک عددی ویلیو ہے اور اگر یہ صحیح ہے تو درست ویلیو لوٹاتا ہے، اور دوسری صورت میں غلط:
اس مثال میں، ()is_numeric فنکشن کو یہ چیک کرنے کے لیے استعمال کیا جاتا ہے کہ آیا دی گئی ویلیو value$ عددی ہے۔ چونکہ value$ متغیر کی ویلیو “123” ہے، اس لیے فنکشن صحیح لوٹتا ہے، اور کوڈ کا پہلا بلاک عمل میں آتا ہے۔ اس کوڈ کا آؤٹ پٹ یہ ہوگا:
ایک ایرے ڈیٹا کا ایک ایسا سیٹ ہے جسے ایک متغیر سے ظاہر کیا جاتا ہے۔آپ یوں بھی کہ سکتے ہیں کہ ایرے ایک ایسا متغیر جو مختلف اقسام کے کئی متغیرات پر مشتمل ہوتا ہے۔ آپ ایریز کا اس وقت استعمال کرتے ہیں جب آپ گروپس یا متعلقہ معلومات کی فہرستوں کو ایک واحد، آسانی سے منظم کیے جاتے والے مقام پر ذخیرہ کرنا چاہتے ہیں۔ ناموں، کورسز، ٹیسٹ اسکورز، اور قیمتوں کی فہرستیں عام طور پر ایریز میں محفوظ کی جاتی ہیں۔
ایریز کے ناموں کا اکثر نام کے آخر میں ایرے آپریٹرز ([اور ]) کے ساتھ حوالہ دیا جاتا ہے تاکہ انہیں بطور ایرے واضح طور پر بیان کیا جا سکے۔
عددی ایریز کو بنانا اور ویلیوز دینا Declaring and Initializing Indexed Arrays
پی ایچ پی میں، آپ عددی طور پر انڈیکس ایریز بنا سکتے ہیں۔ایک ایلیمنٹ سے مراد ڈیٹا کا ایک وہ جز ہے جو ایک ایرے میں محفوظ کیا جاتا ہے۔
انڈیکسڈ ایریز ایسی ایریز ہیں جہاں ہر عنصر کی شناخت عددی ترتیب سے ہوتی ہے۔ پہلے ایلیمنٹ کا انڈیکس صفر سے شروع ہوتا ہے اور ہر عنصر کے لیے ایک سے بڑھتا ہے۔آپ ایرےکے نام کے آخر میں بریکٹ میں اس کے انڈیکس کو بند کرکے ایک مخصوص عنصر کا حوالہ دیتے ہیں۔مثال کے طور پر، []Provinces$ کی ایرے میں پہلا عنصر Provinces[0]$ ہے، دوسرا عنصر Provinces[1]$ ہے، تیسرا عنصر Provinces[2]$ ہے،اور اسی طرح.
اس کا مطلب یہ بھی ہے کہ اگر آپ کے پاس 10 عناصر پر مشتمل ایک ایرے ہے، تو ایرے میں 10ویں عنصر کا انڈیکس 9 ہے۔یعنی ٹوٹل ایلیمنٹس سے ایک کم.آپ ()array کنسٹرکٹ کی مدد سے یا ایرے کا نام اور بریکٹ استعمال کرکے ایک ایرے بناتے ہیں جیسے:۔
آئیے ایک اسکرپٹ بناتے ہیں جو ()array کنسٹرکٹ کا استعمال کرتے ہوئے ایک ایرے بناتا اور اسے ابتدائی ویلیوز تفویض کرتا ہے:
- اپنے ٹیکٹ ایڈیٹر میں نیا ڈاکومنٹ بنائیں اور اسے Concerts.php کے نام سے مطلوبہ ڈایریکٹری میں محفوظ کریں.
- ڈاکومنٹ باڈی میں درج ذیل عناصر، متن، اور معیاری پی ایچ پی اسکرپٹ ڈیلیمیٹر شامل کریں:
- []Concerts$ نامی ایرے کو بنانے اور اسے ابتدائی ویلیوز دینے کے لیے اسکرپٹ سیکشن میں درج ذیل لائنیں شامل کریں:
آپ ایرےکے نام اور بریکٹ کا استعمال کرتے ہوئے کسی ایرے کو ویلیوز تفویض کرنے کے لیے درج ذیل سنٹیکس کا استعمال بھی کر سکتے ہیں۔
متغیرات کے برعکس، ایریزمیں پچھلے بیانات موجودہ ویلیوزکو اوور رائٹ نہیں کرتے ہیں۔ اس کے بجائے، ہر ویلیو اگلے لگاتار انڈیکس نمبر کا استعمال کرتے ہوئے ایک نئے ایلیمنٹ کے طور پر []Provinces$ ایرےکو تفویض کی جاتی ہے
ایک ایرے میں مزید عناصر شامل کرنے کے لیے جس میں ایرے کا نام اور بریکٹ شامل ہیں مندرج ذیل بیانات کا استعمال کریں:
- اپنے ٹیکسٹ ایڈیٹر میں Concerts.php ڈاکومنٹ پر واپس جائیں۔
- اس بیان کے فوراً بعد درج ذیل بیانات شامل کریں جس میں ()array کنسٹرکٹ ہے:
- Concerts.php دستاویز کو محفوظ کریں۔
زیادہ تر پروگرامنگ زبانوں کا تقاضا ہے کہ ایرے میں موجود تمام عناصر کی ڈیٹا ٹائپس یکساں ہوں۔تاہم، پی ایچ پی میں، ایک ہی ایرے کے مختلف عناصر کو تفویض کردہ ویلیوزمختلف ڈیٹا ٹائپ کی ہو سکتی ہیں۔مثال کے طور پر، مندرجہ ذیل کوڈ ()array سازی کا استعمال کرتا ہے جس کا نام HotelReservation$ ہے، جو ایریز کے عناصر میں مختلف ڈیٹا ٹائپس ساتھ ویلیوزکو اسٹور کرتا ہے۔
عنصر کی معلومات تک رسائی Accessing Element Information
آپ کسی عنصر کی ویلیوتک اسی طرح رسائی حاصل کرتے ہیں جس طرح آپ عام متغیر کی ویلیو تک رسائی حاصل کرتے ہیں، سوائے اس کے کہ آپ بریکٹ اور عنصر انڈیکس کو شامل کریں۔مثال کے طور پر، درج ذیل کوڈ []Provinces$ کی ایرے میں دوسرے عنصر (“Prince Edward Island”) اور پانچویں عنصر (“Quebec”) کی ویلیودکھاتا ہے۔
ایک صف میں عناصر کی کل تعداد معلوم کرنے کے لیے، ()Count فنکشن استعمال کریں۔ آپ ()Count فنکشن کو اس ایرے کا نام دیتے ہیں جس کے عناصر کو آپ شمار کرنا چاہتے ہیں۔مندرجہ ذیل کوڈ ()Count فنکشن کا استعمال کرتا ہے تاکہ Provinces[] array$ اور Territories[] array$ میں عناصر کی تعداد کو ظاہر کرے۔
ایسے بیانات شامل کرنے کے لیے جو ()Count فنکشن کا استعمال کرتے ہوئے مقررہ کنسرٹس کی تعداد اور ہر اداکار کے نام کو ظاہر کرتے ہیں:
- اپنے ٹیکسٹ ایڈیٹر میں Concerts.php دستاویز پر واپس جائیں۔
- کوڈ بلاک کے آخر میں درج ذیل آؤٹ پٹ اسٹیٹمنٹس شامل کریں، لیکن بند ہونے ڈیلیمیٹر؟> کے اوپر:
- Concerts.php دستاویز کو محفوظ کریں اور اپ لوڈ کریں۔
- اپنے ویب براؤزر میں Concerts.php فائل کھولیں۔
- ویب براؤزر ونڈو کو بند کر دیں.
پی ایچ پی میں ()print_r()، var_export، اور ()var_dump فنکشنز شامل ہیں، جنہیں آپ متغیرات کے بارے میں معلومات ظاہر کرنے کے لیے استعمال کر سکتے ہیں۔یہ فنکشنز arrays کے ساتھ سب سے زیادہ کارآمد ہیں کیونکہ وہ ہر عنصر کی انڈیکس اور ویلیو کو ظاہر کرتے ہیں۔آپ ہر فنکشن کو ایک ایرے کا نام دیتے ہیں۔مندرجہ ذیل ()print_r فنکشن Provinces[] $ ایرےمیں ہر عنصر کی انڈیکس اور ویلیوز دکھاتا ہے۔فگر میں دیکھیں کہ کینیڈا کے 10 صوبوں کو []Provinces$ میں عناصر 0 سے 9 تک تفویض کیا گیا ہے۔
;print_r($Provinces)
()print_r فنکشن میں کوئی بھی XHTML فارمیٹنگ ٹیگز شامل نہیں ہے، لہذا ایرےکے عناصر متن کی ایک مسلسل سٹرنگ کے طور پر ظاہر ہوتے ہیں۔اگر آپ ایرے ایلیمنٹس کو انفرادی لائنوں پر ظاہر کرنا چاہتے ہیں تو ()print_r فنکشن کو ایچ ٹی ایم ایل کے پری ٹیگز کے اندر رکھیں.
Modifying Elements
آپ کسی ایرے کے ایلیمنٹس کی ویلیوز بالکل اسی انداز میں تبدیل کر سکتے ہیں جس طرح کسی عام ویری ایبل کی ویلیو تبدیل کرتے ہیں. فرق صرف یہ ہے کہ آپ ایرے کے نام کے بعد بریکٹس کے اندر ایلیمنٹ کے انڈیکس کا اندراج کرتے ہیں.درج ذیل کوڈ []HospitalDepts$ نامی ایرےمیں پہلے تین عناصر کو ویلیوز تفویض کرتا ہے۔
ایک ایلیمنٹ کے عنصر کو ایک ویلیوتفویض کرنے کے بعد، آپ اسے بعد میں تبدیل کر سکتے ہیں، جس طرح آپ اسکرپٹ میں دیگر متغیرات کو تبدیل کر سکتے ہیں۔[]HospitalDepts$ کی ایرے میں ایرے کے پہلے عنصر کو “Anesthesia” سے “Anesthesiology” میں تبدیل کرنے کے لیے، آپ درج ذیل بیان استعمال کرتے ہیں:
;”HospitalDepts[0] = “Anesthesiology$
اسائنمنٹ نوٹیشن کی غلطیوں سے بچنا Avoiding Assignment Notation Pitfalls
اس سیکشن میں، آپ نے تین مختلف اسائنمنٹ طریقےسیکھے ہیں۔ہر ایک بالکل مختلف کام کرتا ہے، اور انہیں سمجھنا آسان نہیں ہے۔
یہ بیان list$ نامی متغیر کو “Hello” سٹرنگ تفویض کرتا ہے۔
;”list = “Hello$
یہ بیان سٹرنگ “ہیلو” کو ایک نئے عنصر کو تفویض کرتا ہے جو list$ ایرے کے آخر میں شامل ہوتا ہے.
;”list[] = “Hello$
یہ بیان list$ ارے کے پہلے عنصر (انڈیکس 0) میں ذخیرہ شدہ ویلیو کو “Hello” سٹرنگ سے بدل دیتا ہے۔
;”list[0] = “Hello$