بلڈنگ ایکسپریشنز Building Expressions
متغیرات اور ڈیٹا اس وقت سب سے زیادہ کارآمد ہو جاتے ہیں جب آپ انہیں کسی ایکسپریشن میں استعمال کرتے ہیں۔ایک ایکسپریشن ایک لٹرل ویلیو یا متغیر (یا لٹریل ویلیوز، متغیرات، آپریٹرز اور دیگر ایکسپریشنز کا مجموعہ) ہے جسے کوئی نتیجہ حاصل کرنے کے لیے PHP اسکرپٹنگ انجن کے ذریعے جانچا جا سکتا ہے۔آپ پی ایچ پی میں ایکسپریشن بنانے کے لیے آپراینڈز اور آپریٹرز کا استعمال کرتے ہیں۔Operands متغیرات اور لٹریلز ہیں جو ایک ایکسپریشن میں موجود ہوتے ہیں۔لٹریل ایک سٹیٹک ویلیو ہے جیسے سٹرنگ یا نمبر۔آپریٹرز علامتیں ہیں، جیسے ایڈیشن آپریٹر (+) اور ضرب آپریٹر (*)، جو آپرینڈز کو سنبھالنے کے لیے ایکسپریشن میں استعمال ہوتے ہیں۔آپ نے اب تک کئی سادہ ایکسپریشن کے ساتھ کام کیا ہے جو آپریٹرز اور آپرینڈز کو یکجا کرتے ہیں۔مندرجہ ذیل بیان پر غور کریں 100 = MyNumber$:
یہ سٹیٹمنٹ ایک ایکسپریشن ہے جس کے نتیجے میں لٹریل ویلیو 100 MyNumber$ نامی متغیر کو تفویض کی گئی ہے۔ایکسپریشن میں آپرینڈز متغیر کا نام MyNumber$ اور عددی ویلیو 100 ہیں۔آپریٹر مساوی نشان (=) ہے۔مساوی نشان ایک خاص قسم کا آپریٹر ہے، جسے اسائنمنٹ آپریٹر کہا جاتا ہے، کیونکہ یہ ایکسپریشن کے بائیں جانب متغیر (MyNumber$) کو ایکسپریشن کے دائیں جانب ویلیو 100 تفویض کرتا ہے۔نیچے دی گئی جدول میں پی ایچ پی آپریٹرز کی اہم اقسام کی فہرست دی گئی ہے۔ آپ مندرجہ ذیل حصوں میں مخصوص آپریٹرز کے بارے میں مزید جانیں گے۔
Description | Type | |
---|---|---|
ایرے پر آپریشن کرتا ہے۔ | Array | |
ریاضی کا حساب لگاتا ہے۔ | Arithmetic | |
Multiplies two operands | Multiplication | * |
ببائیں اوپرینڈ کو دائیں اوپرینڈ سے تقسیم کرتا ہے۔ | Division | / |
بائیں اوپرینڈ کو دائیں اوپرینڈ سے تقسیم کرتا ہے اور بقیہ کو لوٹاتا ہے۔ | Modulus | |
سٹرنگزپر آپریشن کرتا ہے۔ | String |
پی ایچ پی آپریٹرز بائنری یا یونری ہیں۔ ایک بائنری آپریٹر کو آپریٹر سے پہلے اور بعد میں آپرینڈ کی ضرورت ہوتی ہے۔سٹیٹمنٹ میں مساوی نشان ؛MyNumber = 100$ بائنری آپریٹر کی ایک مثال ہے۔یونری آپریٹر کو آپریٹر سے پہلے یا بعد میں ایک واحد آپرینڈ کی ضرورت ہوتی ہے۔مثال کے طور پر، انکریمنٹ آپریٹر (++) ایک ریاضی کا آپریٹر ہے۔ یہ ایک آپرینڈ کو 1 کی قدر سے بڑھانے کے لیے استعمال کیا جاتا ہے۔ سٹیٹمنٹ ;++MyNumber$ پچھلے MyNumber$ نامی متغیر کی ویلیو کو 101 میں تبدیل کرتا ہے۔
آگے، آپ پی ایچ پی آپریٹرز کی مختلف اقسام کے بارے میں مزید جانیں گے۔
ریاضی کے آپریٹرز Arithmetic Operators
ریاضی کے آپریٹرز کو پی ایچ پی میں ریاضی کے حساب کتاب کرنے کے لیے استعمال کیا جاتا ہے، جیسے کہ جمع، تفریق، ضرب، اور تقسیم۔آپ حساب میں ماجولس() کو حاصل کرنے کے لیے بھی ریاضی کے آپریٹر کا استعمال کر سکتے ہیں، جو کہ وہ باقیہ ہوتا ہے جو آپ ایک نمبر کو دوسرے نمبر سے تقسیم کرنے کے بعد حاصل کرتے ہیں۔
ریاضی کے بائنری آپریٹرز Arithmetic Binary Operators
نیچے دی گئی جدول میں پی ایچ پی کے بائنری ریاضی کے آپریٹرز اور ان کی وضاحتیں درج ہیں۔
Description | Operation | Symbol |
---|---|---|
دو آپرینڈز جمع کرتا ہے۔ | Addition | + |
دائیں اوپرینڈ کو بائیں اوپرینڈ میں سے تفریق کرتا ہے۔ | Subtraction | – |
دو آپرینڈز کو ضرب دیتا ہے۔ | Multiplication | * | بائیں اوپرینڈ کو دائیں اوپرینڈ سے تقسیم کرتا ہے۔ | Division | / |
بائیں اوپرینڈ کو دائیں اوپرینڈ سے تقسیم کرتا ہے اور بقیہ کو لوٹاتا ہے۔ | Modulus | % |
درج ذیل کوڈ اظہار کی مثالیں دکھاتا ہے جس میں ریاضی کے بائنری آپریٹرز شامل ہیں۔
پچھلے کوڈ میں نوٹ کریں کہ جب پی ایچ پی ریاضی کا حساب کتاب کرتی ہے، تو یہ اسائنمنٹ آپریٹر کے دائیں جانب آپریشن کرتی ہے اور پھر اسائنمنٹ آپریٹر کے بائیں جانب ایک متغیر کو ویلیو تفویض کرتی ہے۔مثال کے طور پر، سٹیٹمنٹ ;ReturnValue = $x + $y$میں، آپرینڈز x$ اور y$ کو جمع کیا جاتا ہے، اور پھر نتیجہ اسائنمنٹ آپریٹر کے بائیں جانب ReturnValue$ متغیر کو تفویض کیا جاتا ہے۔
آپ ڈویژن (/) آپریٹر اور ماجولس (%) آپریٹر کے درمیان فرق سے الجھن میں پڑ سکتے ہیں۔ڈویژن آپریٹر ایک معیاری ریاضیاتی تقسیم کا عمل انجام دیتا ہے۔اس کے مقابلے میں، ماجولس آپریٹر دو انٹیجرز کی تقسیم سے بقیہ کو لوٹاتا ہے۔مندرجہ ذیل کوڈ، مثال کے طور پر، 15 کو 6 سے تقسیم کرنے کا نتیجہ واپس کرنے کے لیے ڈویژن اور ماجولس آپریٹرز کا استعمال کرتا ہے۔نتیجہ 2.5 کی ویلیو ہے، کیونکہ 6 بالکل 2.5 بار 15 میں جاتا ہے۔لیکن اگر آپ اسے مکمل تعداد میں ظاہر کرتے ہیں تو، 6 صرف 2 بار 15 میں جاتا ہے،3 باقی آتا ہے۔ہم، 15 کا ماجولس 6 سے تقسیم 3 ہے کیونکہ 3 عددی تقسیم کے بعد بقیہ ہے۔
آپ تفویضی سٹیٹمنٹ کے دائیں جانب متغیرات اور لٹریل ویلیوز کا مجموعہ بھی شامل کر سکتے ہیں۔ مثال کے طور پر، درج ذیل جمعی بیانات میں سے کوئی بھی درست ہے:
تاہم، آپ اسائنمنٹ آپریٹر کے بائیں آپرینڈ کے طور پر لٹریل ویلیو شامل نہیں کر سکتے ہیں کیونکہ PHP اسکرپٹنگ انجن میں ایک متغیر ہونا ضروری ہے جس کو واپس کی گئی ویلیو تفویض کی جاتی ہے۔
لہذا، درج ذیل سٹیٹمنٹ ایک غلطی کا سبب بنتی ہے.
سٹرنگ ویلیوز پر ریاضی کی کارروائیوں کو انجام دیتے وقت، پی ایچ پی اسکرپٹنگ انجن سٹرنگ ویلیوز کو نومیرک ویلیوز میں تبدیل کرنے کی کوشش کرتا ہے۔درج ذیل مثال میں متغیرات کو اعداد کے بجائے سٹرنگ ویلیو کے طور پر تفویض کیا گیا ہے کیونکہ وہ کوٹیشن مارکس کے اندر موجود ہیں.اس کے باوجود، پی ایچ پی اسکرپٹنگ انجن درست طریقے سے ضرب کا عمل انجام دیتا ہے اور 6 کی قدر لوٹاتا ہے۔
ریاضی کے یونیری آپریٹرز Arithmetic Unary Operators
یونیری آپریٹرز کا استعمال کرتے ہوئے ایک واحد متغیر پر ریاضی کی کارروائیاں بھی کی جا سکتی ہیں۔نیچے دی گئی جدول پی ایچ پی میں دستیاب یونیری آپریٹرز کی فہرست دیتا ہے۔
(++)increment اور (−−)decrement یونیری آپریٹرز کو بطور پریفکس یا پوسٹ فکس آپریٹرز استعمال کیا جا سکتا ہے۔متغیر سے پہلے ایک سابقہ(پریفکس) آپریٹر رکھا جاتا ہے۔ ایک پوسٹ فکس آپریٹر متغیر کے بعد رکھا جاتا ہے۔بیانات ؛++MyVariable$ اور ;MyVariable$++ دونوں MyVariable$ کو 1 تک بڑھاتے ہیں۔تاہم، دونوں بیانات مختلف ویلیوز واپس کرتے ہیں۔جب آپ انکریمنٹ آپریٹر کو بطور پریفکس آپریٹر استعمال کرتے ہیں، تو آپرینڈ کی ویلیو واپس آنے سے پہلے 1 کی ویلیوسے بڑھ جاتی ہے یعنی ویلیو میں ایک کا اضافہ ہو جاتا ہے۔
جب آپ انکریمنٹ آپریٹر کو پوسٹ فکس آپریٹر کے طور پر استعمال کرتے ہیں، تو آپرینڈ کی ویلیو واپس آنے کے بعد 1 کی ویلیو سے بڑھ جاتی ہے یعنی ویلیو میں ایک کا اضافہ ہو جاتا ہے۔
اسی طرح، جب آپ ڈیکریمنٹ آپریٹر کو بطور پریفکس آپریٹر استعمال کرتے ہیں، تو آپرینڈ کی ویلیو میں واپس آنے سے پہلے 1 درجہ کم ہوجاتی ہے۔
جب آپ ڈیکریمنٹ آپریٹر کو پوسٹ فکس آپریٹر کے طور پر استعمال کرتے ہیں، تو آپرینڈ کی ویلیو میں واپس آنے کے بعد 1 درجہ کم ہوجاتی ہے۔اگر آپ کسی اور متغیر کو بڑھی ہوئی یا گھٹی ہوئی ویلیوتفویض کرنے کا ارادہ رکھتے ہیں، تو اس سے فرق پڑتا ہے چاہے آپ سابقہ یا پوسٹ فکس آپریٹر استعمال کریں۔
آپ کسی بھی ایسی صورتحال میں ریاضی کے یونری آپریٹرز کا استعمال کرتے ہیں جس میں آپ کسی ویلیوکو 1 تک بڑھانے یا کم کرنے کے لیے ایک آسان ایکسپریشن کو ترجیح دیتے ہیں۔
درج ذیل مثال میں دونوں بیان(سٹیٹمنٹ) برابر ہیں.
جیسا کہ آپ دیکھ سکتے ہیں، اگر آپ کا مقصد صرف ایک متغیر کی ویلیوکو 1 تک بڑھانا ہے، تو unary increment operator کا استعمال کرنا آسان ہے۔
مثال کے طور پر جب آپ پریفکس آپریٹر یا پوسٹ فکس آپریٹر استعمال کریں گے، تو اسٹوڈنٹ آئی ڈی نامی انٹیجر متغیر پر غور کریں جو کلاس رجسٹریشن اسکرپٹ میں اسٹوڈنٹ کو ایک آئی ڈی دینے کے لیے استعمال ہوتی ہے۔طالب علم کا نیا ID نمبر بنانے کا ایک طریقہ یہ ہے کہ آخری تفویض کردہ طالب علم ID کو StudentID$ متغیر میں محفوظ کی جائے۔جب نیے طالب علم کی ID تفویض کرنے کا وقت آتا ہے، تو اسکرپٹ StudentID$ متغیر میں ذخیرہ شدہ آخری ویلیو کو بازیافت کر سکتا ہے اور پھر اس کی ویلیو میں 1 کا اضافہ کر سکتا ہے۔دوسرے الفاظ میں، StudentID$ متغیر میں ذخیرہ کردہ آخری ویلیو طالب علم کی ID نمبر کے لیے استعمال ہونے والا اگلا نمبر ہوگا۔
سیدھے الفاظ میں، اگر آپ کسی متغیر کو ایکسپریشن میں استعمال کرنے کے بعد اس کی قدر بڑھانا چاہتے ہیں، تو آپ “پوسٹ فکس آپریٹر” استعمال کر سکتے ہیں۔ اس صورت میں، اگر آپ StudentID$ نامی متغیر کی موجودہ قیمت CurStudentID$ نامی کسی دوسرے متغیر کو تفویض کرنا چاہتے ہیں، اور پھر StudentID$ کی ویلیومیں 1کا اضافہ کرنا چاہتے ہیں، تو آپ++CurStudentID = $StudentID$ لکھ کر “پوسٹ فکس آپریٹر” استعمال کر سکتے ہیں۔ یہ پہلے StudentID$ کی موجودہ ویلیو CurStudentID$ متغیر کو تفویض کرے گا، اور پھر StudentID$ کی ویلیو میں 1 کا اضافہ کرے گا۔اگر آپ آخری تفویض کردہ طالب علم کی ID کو CurStudentID$ متغیر میں محفوظ کر رہے ہیں، تو آپ ویلو میں 1کا کرنا چاہیں گے اور نتیجہ کو اگلے طالب علم کی ID کے طور پر استعمال کرنا چاہیں گے۔
StudentID$ نامی متغیر کی ویلیوکو 1 تک بڑھانے اور پھر CurStudentID$ نامی ایک اور متغیر کو نئی ویلیوتفویض کرنے کے لیے، آپ “CurStudentID = ++$StudentID$” لکھ کر “پریفکس آپریٹر” استعمال کر سکتے ہیں۔ اس کا مطلب ہے کہ StudentID$ کی ویلیومیں پہلے 1 کا اضافہ کیا جائے گا، اور پھر نئی ویلیو CurStudentID$ کو تفویض کی جائے گی۔
مندرجہ ذیل اسکرپٹ ایک سادہ اسکرپٹ ہے جو CurStudentID$ نامی متغیر کو تین طالب علموں کی IDs تفویض کرنے کے لیے پریفکس(سابقہ) انکریمنٹ آپریٹر کا استعمال کرتا ہے۔ طالب علم ابتدائی ID کو StudentID$ متغیر میں محفوظ کیا جاتا ہے اور اسے 100 کی ابتدائی ویلیودی جاتی ہے.جیسے.
ویب براؤزر رزلٹ کچھ اس طرح ہوگا.
نیچے دی گئی اسکرپٹ وہی کام کرتی ہے، لیکن پوسٹ فکس انکریمنٹ آپریٹر استعمال کرتی ہے۔نوٹ کریں کہ آؤٹ پٹ پچھلے اسکرپٹ میں آؤٹ پٹ سے مختلف ہے۔کیونکہ اسکرپٹ کی پہلی مثال پریفکس انکریمنٹ آپریٹر کا استعمال کرتی ہے جو StudentID$ متغیر کو CurStudentID$ متغیر کو ویلیو تفویض کرنے سے پہلے بڑھاتی ہے.اسکرپٹ 100 کی ابتدائی ویلیواستعمال نہیں کرتی ہے۔بلکہ، یہ پہلے StudentID$ متغیر کو بڑھاتی ہے اور 101 کو طالب علم کی پہلی ID کے طور پر استعمال کرتی ہے۔
اس کے مقابلے میں، اسکرپٹ کی دوسری مثال 100 کی ابتدائی ویلیواستعمال کرتی ہے کیونکہ پوسٹ فکس انکریمنٹ آپریٹر StudentID$ متغیر کو CurStudentID$ متغیر کو ویلیو تفویض کرنے کے بعد ویلیو بڑھاتا ہے۔جیسے.
ویب براؤزر رزلٹ کچھ اس طرح ہوگا.
آئیے ایک اسکرپٹ بنائیں جو ریاضی کے حسابات کو انجام دے:
- اپنے ٹیکسٹ ایڈیٹر میں ایک نئی دستاویز(ڈاکومنٹ) فائل بنائیں
- اگر آپ وی.ایس کوڈ استعمال کر رہے ہیں تو HTML:5 ٹائپ کریں.یہ ایک HTML ٹیمپلیٹ تخلیق کر دے گا.
- ڈاکومنٹ باڈی میں معیاری پی ایچ پی اسکرپٹ ڈیلیمیٹر شامل کریں :
- دو متغیرات کو بنانےکے لیے اسکرپٹ سیکشن میں درج ذیل بیانات شامل کریں۔ ان بیانات میں نمبر رکھنے کے لیے ایک Number$ متغیر شامل ہے، جسے آپ ریاضی کے کئی آپریشنز میں استعمال کریں گے، اور ہر ریاضی کے آپریشن کی ویلیو پر مشتمل Result$ متغیر شامل ہے۔
;100= Number$
;0 = Result$ - اب درج ذیل بیانات شامل کریں جو Number$ متغیر پر جمع، تفریق، ضرب، اور تقسیم کی کارروائیاں انجام دیتے ہیں اور ہر ویلیو Result$ متغیر کو تفویض کرتے ہیں۔Result$ متغیر ہر اسائنمنٹ اسٹیٹمنٹ کے بعد ظاہر ہوتا ہے۔
- اس کے بعد، درج ذیل دو بیانات شامل کریں۔ پہلا بیان انکریمنٹ آپریٹر کا استعمال کرتا ہے تاکہ Number$ متغیر کی ویلیوکو 1 تک بڑھا سکے اور Result$ متغیر کو نئی ویلیوتفویض کرے۔دوسرا بیان Result$ متغیر دکھاتا ہے۔نوٹ کریں کہ انکریمنٹ آپریٹر کو ایک سابقہ آپریٹر کے طور پر استعمال کیا گیا ہے، لہذا نئی ویلیو Result$ متغیر کو تفویض کی جاتی ہے۔اگر آپ پوسٹ فکس انکریمنٹ آپریٹر استعمال کرتے تو $Number متغیر کو 1 تک بڑھا دیا جاتا لیکن Number$ متغیر کی پرانی ویلیو Result$ متغیر کو تفویض کرنے کے بعد۔
- دستاویز کو اپنی مطلوبہ ڈائرکٹری میں بطورArithmeticExamples.php محفوظ کریں اور دستاویز کو ویب سرور پر اپ لوڈ کریں.
- اپنی ویب سرور ڈائرکٹری کا URL درج کرکے اپنے ویب براؤزر میں “Arithmetic Examples.php” فائل کھولیں۔
- اپنی ویب براؤزر ونڈو کو بند کر دیں.
اسائنمنٹ آپریٹرز Assignment Operators
تفویضی آپریٹرز کا استعمال متغیر کو ویلیوتفویض کرنے کے لیے کیا جاتا ہے۔ آپ نے پہلے ہی سب سے عام اسائنمنٹ آپریٹر، مساوی نشان (=) کا استعمال کیا ہے یہ کسی متغیر کو ویلیو دینے کے لیے استعمال کیا جاتا ہے۔مساوی نشان ایک نئے متغیر کو ابتدائی ویلیو تفویض کرتا ہے یا موجودہ متغیر کو نئی ویلیوتفویض کرتا ہے۔مثال کے طور پر، درج ذیل کوڈ MyFavoriteSuperHero$ نامی ایک متغیر بناتا ہے، اسے ایک ابتدائی ویلیو دینے کے لیے مساوی نشان کا استعمال کرتا ہے، اور پھر اسے ایک نئی ویلیو دینے کے لیے مساوی نشان کو دوبارہ استعمال کرتا ہے:
PHP میں مساوی نشان کے علاوہ دیگر اسائنمنٹ آپریٹرز بھی شامل ہیں۔ یہ اضافی آپریٹرز، جنہیں کمپاؤنڈ اسائنمنٹ آپریٹرز کہا جاتا ہے، ایک ایکسپریشن میں متغیرات اور لٹریل ویلیوز پر ریاضیاتی حساب لگاتے ہیں اور پھر بائیں اوپرینڈ کو ایک نئی ویلیودیتے ہیں۔نیچے دی گئی جدول عام پی ایچ پی اسائنمنٹ آپریٹرز کی فہرست دکھاتی ہے۔
Description | Operation | Symbol |
---|---|---|
دائیں اوپرینڈ کی ویلیوبائیں اوپرینڈ کو تفویض کرتا ہے۔ | Assignment | = |
دائیں آپرینڈ کی ویلیوکو بائیں آپرینڈ کی ویلیومیں جمع کرتا ہے اور بائیں آپرینڈ کو نئی ویلیوتفویض کرتا ہے | Compound addition assignment | += |
بائیں اوپرینڈ کی ویلیوسے دائیں اوپرینڈ کی ویلیوکو تفریق کرتا ہے اور بائیں اوپرینڈ کو نئی ویلیوتفویض کرتا ہے | Compound subtraction assignment | −= |
دائیں اوپرینڈ کی ویلیوکو بائیں اوپرینڈ کی ویلیوسے ضرب دیتا ہے اور بائیں اوپرینڈ کو نئی ویلیوتفویض کرتا ہے | Compound multiplication assignment | *= |
بائیں اوپرینڈ کی ویلیوکو دائیں اوپرینڈ کی ویلیو سے تقسیم کرتا ہے اور بائیں آپرینڈ کو نئی ویلیوتفویض کرتا ہے | Compound division assignment | /= |
بائیں آپرینڈ کی ویلیوکو دائیں اوپرینڈ کی ویلیوسے تقسیم کرتا ہے اور بقیہ (ماڈیولس) کو بائیں آپرینڈ کو تفویض کرتا ہے | Compound modulus assignment | %= |
درج ذیل کوڈ مختلف اسائنمنٹ آپریٹرز کی مثالیں دکھاتا ہے۔
آئیے ایک اسکرپٹ بناتے ہیں جو اسائنمنٹ آپریٹرز کا استعمال کرتا ہے:
- اپنے ٹیکسٹ ایڈیٹر میں ایک نئی دستاویز بنائیں اور اسے AssignmentExample.php کا نام دیں۔
- اگر آپ وی.ایس کوڈ استعمال کر رہے ہیں تو HTML:5 ٹائپ کریں.یہ ایک HTML ٹیمپلیٹ تخلیق کر دے گا.
- ٹائٹل ایلیمنٹ کے مواد کے طور پر “Assignment Examples” استعمال کریں۔
- دستاویز کی باڈی میں معیاری پی ایچ پی اسکرپٹ ڈیلیمیٹر شامل کریں :
- اسکرپٹ سیکشن میں درج ذیل بیانات ٹائپ کریں۔ یہ بیانات ChangingVar$ نامی متغیر پر متعدد کمپاؤنڈ اسائنمنٹ آپریشن انجام دیتے ہیں۔ ہر اسائنمنٹ آپریشن کے بعد، نتیجہ ظاہر ہوتا ہے۔
- دستاویز کو محفوظ کریں اور ویب سرور پر اپ لوڈ کریں، اور پھر ویب براؤزر میں کھولیں۔
موازنہ اور مشروط آپریٹرز Comparison and Conditional Operators
موازنہ آپریٹرز کا استعمال اس بات کا تعین کرنے کے لیے کیا جاتا ہے کہ ایک آپرینڈ دوسرے سے کیسے موازنہ کرتا ہے۔ دو آپرینڈز کا موازنہ کرنے کے بعد TRUE یا FALSE کی بولین ویلیو حاصل ہوتی ہے۔مثال کے طور پر، بیان 5 < 3 FALSE کی بولین ویلیو دیتی ہے کیونکہ 5 چھوٹا نہیں ہے 3 سے۔نیچے دی گئی جدول میں پی ایچ پی موازنہ آپریٹرز کی فہرست دی گئی ہے۔
Description | Operation | Symbol |
---|---|---|
اگر آپرینڈز برابر ہوں تو TRUE ویلیو حاصل ہوتی ہے۔ | Equal | == |
اگر آپرینڈز برابر اور ڈیٹا ٹائپ بھی ایک ہی جیسی ہو تو TRUE لوٹاتا ہے۔ | Strict equal | === |
اگر آپرینڈز برابر نہ ہوں تو TRUE لوٹاتا ہے۔ | Not equal | != or <> |
اگر آپرینڈز برابر نہیں ہیں یا ان کی ڈیٹا کی قسم بھی ایک جیسی نہیں ہے تو TRUE لوٹاتا ہے۔ | Strict not equal | !== |
اگر بائیں آپرینڈ دائیں آپرینڈ سے بڑا ہو تو TRUE لوٹاتا ہے۔ | Greater than | < |
اگر بائیں آپرینڈ دائیں آپرینڈ سے چھوٹا ہو تو TRUE لوٹاتا ہے۔ | Less than | > |
اگر بایاں آپرینڈ دائیں آپرینڈ سے بڑا یا اس کے برابر ہو تو TRUE لوٹاتا ہے۔ | Greater than or equal to | <= |
اگر بائیاں آپرینڈ دائیں آپرینڈ سے چھوٹا یا اس کے برابر ہو تو TRUE لوٹاتا ہے۔ | Less than or equal to | >= |
آپ موازنہ آپریٹرز کے ساتھ آپرینڈ کے طور پر نمبر یا سٹرنگ ویلیوز استعمال کر سکتے ہیں۔جب دو عددی ویلیوزکو آپرینڈ کے طور پر استعمال کیا جاتا ہے، تو پی ایچ پی اسکرپٹنگ انجن ان کا عددی لحاظ سے موازنہ کرتا ہے۔مثال کے طور پر، بیان 5 > 4 درست ہے کیونکہ نمبر 5 عددی لحاظ سے نمبر 4 سے بڑا ہے۔جب دو غیر عددی ویلیوزکو آپرینڈ کے طور پر استعمال کیا جاتا ہے، تو پی ایچ پی اسکرپٹنگ انجن ان کا حروف تہجی کی ترتیب کے لحاظ سے موازنہ کرتا ہے۔بیان “ReturnValue = “b” > “a$ ایک TRUE ویلیو لوٹاتا ہے کیونکہ حرف b حروف تہجی کے لحاظ سے حرف a سے بڑا ہے۔جب ایک آپرینڈ نمبر ہوتا ہے اور دوسرا سٹرنگ ہوتا ہے تو پی ایچ پی اسکرپٹنگ انجن سٹرنگ ویلیو کو نمبر میں تبدیل کرنے کی کوشش کرتا ہے۔اگر سٹرنگ ویلیو کو نمبر میں تبدیل نہیں کیا جا سکتا ہے، تو FALSE کی ایک ویلیولوٹائی جاتی ہے۔مثال کے طور پر، بیان ؛”ReturnValue = 10 == “ten$ کی ویلیو FALSE حاصل ہوتی ہے کیونکہ PHP اسکرپٹنگ انجن سٹرنگ “ten” کو نمبر میں تبدیل نہیں کر سکتا۔تاہم، بیان ” 10″ == 10 درست ویلیو لوٹاتا ہے کیونکہ PHP اسکرپٹنگ انجن سٹرنگ “10” کو نمبر میں تبدیل کر سکتا ہے.
موازنہ آپریٹر اکثر دوسرے قسم کے آپریٹر، مشروط آپریٹر کے ساتھ استعمال ہوتا ہے۔مشروط آپریٹر مشروط ایکسپریشن کے نتائج کی بنیاد پر دو ایکسپریشنز میں سے ایک کو انجام دیتا ہے۔مشروط آپریٹر کے لیے سنٹیکس کچھ اس طرح ہے.
اگر Conditional-Expression کی تشخیص TRUE پر ہوتی ہے، تو expression1 کام کرتا ہے۔ اگر Conditional-Expression کی تشخیص FALSE پر ہوتی ہے، تو expression2 کام کرتا ہے۔
مندرجہ ذیل کوڈ مشروط آپریٹر کی ایک مثال دکھاتا ہے:
مثال میں، مشروط ایکسپریشن یہ چیک کرتا ہے کہ آیا BlackjackPlayer1 متغیر 21 سے کم یا اس کے برابر ہے۔اگر BlackjackPlayer1 متغیر 21 سے کم یا اس کے برابر ہے۔اگر BlackjackPlayer1 کی ویلیو 21 سے کم یا اس کے برابر ہے تو، “Player 1 is still in the game” کا متن Result$ متغیر کو دیا جاتا ہے۔اگر BlackjackPlayer1 کی ویلیو 21 سے زیادہ ہے تو “Player 1 is out of the action” کا متن Result$ متغیر کو دیا جاتا ہے۔چونکہ BlackjackPlayer1 کی ویلیو 20 کے برابر ہے، مشروط بیان TRUE ویلیو لوٹاتا ہے، پہلا ایکسپریشن کام کرتا ہے، اور “Player 1 is still in the game” اسکرین پر ظاہر ہوتا ہے۔
آئیے ایک اسکرپٹ بنائیں جو موازنہ اور مشروط آپریٹرز کا استعمال کرے:
- اپنے ٹیکسٹ ایڈیٹر میں ایک نئی دستاویز بنائیں اور اسے ComparisonExamples.php میں محفوظ کریں۔
- اگر آپ وی.ایس کوڈ استعمال کر رہے ہیں تو HTML:5 ٹائپ کریں.یہ ایک HTML ٹیمپلیٹ تخلیق کر دے گا.ہیڈر سیکشن میں موجود ٹائٹل ٹیگ میں بطور مواد Comparison Examples لکھیں.
- ڈاکومنٹ باڈی میں معیاری پی ایچ پی اسکرپٹ ڈیلیمیٹر شامل کریں:
- دو متغیرات پر موازنہ کی مختلف کارروائیوں کو انجام دینے کے لیے درج ذیل بیانات کو اسکرپٹ سیکشن میں شامل کریں۔ نوٹ کریں کہ موازنہ بیانات ReturnValue$ متغیر کو TRUE یا FALSE کی ٹیکسٹ ویلیو تفویض کرنے کے لیے مشروط آپریٹر کا استعمال کرتے ہیں۔
- دستاویز کو ویب سرور پر اپ لوڈ کریں اور پھر اسے ویب براؤزر میں کھولیں۔
- ویب براؤزر ونڈو کو بند کر دیں
منطقی آپریٹرز Logical Operators
منطقی آپریٹرز کو برابری کے لیے دو بولین آپرینڈز کا موازنہ کرنے کے لیے استعمال کیا جاتا ہے۔بولین آپرینڈز وہ آپرینڈز ہیں جو کہ TRUE یا FALSE ویلیوز تک محدود ہیں۔مثال کے طور پر، آٹوموبائل انشورنس کمپنی کے اسکرپٹ کو یہ تعین کرنے کی ضرورت ہوسکتی ہے کہ آیا صارف مرد ہے اور 21 سال سے کم ہے تاکہ صحیح بیمہ کی قیمت کا تعین ہو سکے۔چونکہ موازنہ آپریٹرز کے ساتھ، دو آپرینڈز کا موازنہ کرنے کے بعد TRUE یا FALSE کی بولین ویلیو لوٹائی جاتی ہے۔
نیچے دی گئی جدول میں پی ایچ پی کے منطقی آپریٹرز کی فہرست دی گئی ہے۔
Operator Description | Operator Operation | Operator Symbol |
---|---|---|
اگر بائیں اوپرینڈ اور دائیں اوپرینڈ دونوں TRUE کی ویلیولوٹاتے ہیں تو TRUE لوٹاتا ہے۔ دوسری صورت میں، یہ FALSE کی ویلیو لوٹاتا ہے۔ | Logical And | AND or && |
اگر بائیں اوپرینڈ یا دائیں اوپرینڈ دونوں میں سے کوئی ایک TRUE کی ویلیولوٹاتا ہے تو TRUE لوٹاتا ہے۔ بصورت دیگر (دو میں سے کوئی بھی آپرینڈ TRUE ویلیو واپس نہیں کرتا ہے)، یہ FALSE کی ویلیو لوٹاتا ہے۔ | Logical Or | || ORor |
اگر بائیں اوپرینڈ یا دائیں اوپرینڈ میں سے صرف ایک TRUE کی قدر لوٹاتا ہے تو TRUE لوٹاتا ہے۔ بصورت دیگر (کوئی بھی آپرینڈ TRUE ویلیو واپس نہیں کرتا ہے یا دونوں آپرینڈ TRUE ویلیو دیتے ہیں)،تو یہ FALSE کی قدر لوٹاتا ہے | Logical Exclusive Or | XOR |
اگر کوئی اظہار غلط ہے تو TRUE لوٹاتا ہے اور اگر اظہار TRUE ہے تو FALSE لوٹاتا ہے | Logical Not | ! |
منطقی OR آپریٹر کے لیے، آپ یا تو || یا OR، منطقی AND آپریٹر کے لیے، آپ یا تو && یا AND استعمال کر سکتے ہیں۔ logical Or، logical Exclusive Or، اور logical And آپریٹرز بائنری آپریٹرز ہیں (دو آپرینڈز کی ضرورت ہے)، جب کہ منطقی Not (!) آپریٹر ایک unary آپریٹر ہے (ایک واحد آپرینڈ کی ضرورت ہے)۔لاجیکل آپریٹرز اکثر ایکسپریشنز کا اندازہ کرنے کے لیے موازنہ آپریٹرز کے ساتھ استعمال کیے جاتے ہیں، جس سے آپ متعدد ایکسپریشنز کے نتائج کو ایک بیان میں یکجا کر سکتے ہیں۔مثال کے طور پر، منطقی AND آپریٹر کا استعمال اس بات کا تعین کرنے کے لیے کیا جاتا ہے کہ آیا دو آپرینڈز ایک مساوی ویلیو واپس کرتے ہیں۔آپرینڈ بذات خود اکثر ایکسپریشن ہوتے ہیں۔درج ذیل کوڈ دو الگ الگ ایکسپریشنز کا موازنہ کرنے کے لیے لوجیکل AND (&&) آپریٹر کا استعمال کرتا ہے۔
منطقی OR آپریٹر ایک بائنری آپریٹر ہے جو بولین الجبرا اور پروگرامنگ زبانوں میں دو آپرینڈز پر منطقی OR آپریشن انجام دینے کے لیے استعمال ہوتا ہے۔ یہ زیادہ تر پروگرامنگ زبانوں میں علامت “||” سے ظاہر کیا جاتا ہے۔منطقی OR آپریٹر درست لوٹاتا ہے اگر اس کا ایک یا دونوں آپرینڈز درست ہوں۔ بصورت دیگر، یہ غلط ولوٹاتا ہے۔منطقی OR آپریٹر کے لیے ٹرتھ ٹیبل یہ ہے:
Operand 1 | Operand 2 | Result |
---|---|---|
false | false | false |
false | true | true |
true | false | true |
true | true | true |
پروگرامنگ میں، منطقی OR آپریٹر کو اکثر مشروط سٹیٹمنٹس میں استعمال کیا جاتا ہے تاکہ یہ جانچا جا سکے کہ آیا کم از کم متعدد شرائط میں سے ایک درست ہے۔مثال کے طور پر، درج ذیل کوڈ میں منطقی OR آپریٹر (||) پر مشتمل بیان کہتا ہے، “اگر متغیر SpeedingTicket$ بڑا ہے 0 سے یا متغیر Age$ چھوٹا 21 سے یا 21 کے برابر ہے، تو RiskFactor$ کو TRUE کی ویلیوتفویض کریں۔ . بصورت دیگر، RiskFactor$ کو FALSE کی ویلیوتفویض کریں۔
پچھلی مثال میں متغیر RiskFactor$ کو TRUE ویلیو تفویض کی گئی ہے کیونکہ متغیر ایکسپریشن SpeedingTicket$ کی ویلیو TRUE لوٹاتا ہے، حالانکہ Age$ متغیر ایکسپریشن کی ویلیو کا اندازہ FALSE پر ہوتا ہے۔ اس کی وجہ یہ ہے کہ منطقی OR آپریٹر TRUE لوٹاتا ہے اگر بائیں یا دائیں آپرینڈ میں سے کوئی ایک بھی TRUE ویلیو لوٹاتا ہے۔درج ذیل مثال پچھلے کوڈ کا ایک اور ورژن دکھاتی ہے، لیکن اس بار logical Or آپریٹر کے OR ورژن کا استعمال کرتے ہوئے:
مندرجہ ذیل کوڈ منطقی(لوجیکل) Not (!) آپریٹر کی ایک مثال ہے، جو TRUE لوٹاتا ہے اگر کسی آپرینڈ کی ویلیو FALSE حاصل ہوتی ہے اور اگر کسی آپرینڈ کی ویلیو TRUE حاصل ہوتی ہے تو FALSE لوٹاتا ہے۔نوٹ کریں کہ چونکہ لوجیکل Not (!) آپریٹر ایک یونری (unary) آپریٹر ہے اور اس کے لیے صرف ایک آپرینڈ کی ضرورت ہوتی ہے۔
درج ذیل کوڈ لوجیکل Exclusive Or (XOR) آپریٹر کی ایک مثال ہے، جو TRUE لوٹاتا ہے اگر آپرینڈز میں سے صرف ایک TRUE ہو، لیکن دونوں نہیں۔
آئیے ایک اسکرپٹ بناتے ہیں جو لوجیکل آپریٹرز کا استعمال کرتا ہے:
- اپنے ٹیکسٹ ایڈیٹر میں ایک نئی دستاویز بنائیں اور اسےLogicalExamples.php کے نام سے محفوظ کریں۔
- اگر آپ وی.ایس کوڈ استعمال کر رہے ہیں تو HTML:5 ٹائپ کریں.یہ ایک HTML ٹیمپلیٹ تخلیق کر دے گا.ہیڈر سیکشن میں موجود ٹائٹل ٹیگ میں بطور مواد Logical Examples لکھیں.
- ڈاکومنٹ باڈی میں معیاری پی ایچ پی اسکرپٹ ڈیلیمیٹر شامل کریں
- دو متغیرات پر موازنہ کی مختلف کارروائیوں کو انجام دینے کے لیے درج ذیل بیانات کو اسکرپٹ سیکشن میں شامل کریں-مشروط ایکسپریشنز منطقی ایکسپریشنز کی جانچ کرتے ہیں اور پھر ReturnValue$ متغیر کو TRUE یا FALSE کی ٹیکسٹ ویلیو تفویض کرتے ہیں۔
- دستاویز کو ویب سرور پر اپ لوڈ کریں، اور پھر ویب براؤزر میں کھولیں۔
- اپنا ویب براؤزر بند کریں۔
خصوصی آپریٹرز Special Operators
پی ایچ پی میں وہ خصوصی آپریٹرز بھی شامل ہیں جو نیچے دیے گئے جدول میں درج ہیں۔
Description | Symbols |
---|---|
اسکوائر بریکٹ کا استعمال کسی ایرے کے ایلیمنٹ تک رسائی کے لیے کیا جاتا ہے۔ | [ and ] |
ایک ایرےکے عنصر کی انڈیکس یا کلید کی وضاحت کرتا ہے۔ | => |
ایک ایرے ایلیمنٹس کو الگ کرتا ہے۔ | , |
مشروط ایکسپریشنزکے نتائج کی بنیاد پر دو میں سے ایک ایکسپریش کو انجام دیتا ہے۔ | ? and : |
اگر کوئی آبجیکٹ مخصوص قسم کی ہو تو TRUE لوٹاتا ہے۔ | instanceof |
کسی بھی غلطی کو دباتا ہے جو کسی ایسے ایکسپریشن سے پیدا ہو سکتی ہے جس کے لیے اسے پہلے سے جوڑا گیا ہو (یا پہلے رکھا گیا ہو) | @ |
ایک ڈیٹا ٹائپ کے متغیر کو دوسری ڈیٹا ٹائپ کے متغیر میں تبدیل کرتا ہے) | (int), (integer), (bool), (boolean), (double), (string), (array), (object) |
اس مضمون میں آپ کا تعارف خصوصی پی ایچ پی آپریٹرز سے کرایا جائے گا، جس کا آغاز اگلے حصے میں کاسٹنگ آپریٹرز سے ہوگا۔
ٹائپ کاسٹنگ Type Casting
اگرچہ پی ایچ پی خود بخود متغیر کی ڈیٹا ٹائپ کا تعین کرتی ہے،بعض اوقات آپ اس بات کو یقینی بنانا چاہتے ہیں کہ ایک متغیر کی ڈیٹا ٹائپ وہی ہونی چاہیے جس کی آپ کی اسکرپٹ سے توقع ہے۔اس کو یقینی بنانے کا ایک طریقہ کاسٹنگ ہے،
یا ٹائپ کاسٹنگ ہے.جو ایک ڈیٹا ٹائپ کے متغیر میں موجود ویلیوکو دوسرے ڈیٹا ٹائپ کے متغیر میں کاپی کرتی ہے۔
متغیرات(variables) کو کاسٹ کرنے کے لیے پی ایچ پی کا سنٹیکس یہ ہے.
سنٹیکس کا (new_type) حصہ ٹائپ کاسٹنگ آپریٹر ہے جو اس ٹائپ کی نمائندگی کرتا ہے جس میں آپ متغیر کو کاسٹ(تبدیل) کرنا چاہتے ہیں۔نوٹ کریں کہ کاسٹنگ اصل متغیر کے ڈیٹا کی قسم کو تبدیل نہیں کرتی ہے۔بلکہ، کاسٹنگ پرانے متغیر سے ڈیٹا کو کاپی کرتی ہے، اسے ٹائپ کاسٹنگ آپریٹر کے ذریعہ مخصوص ڈیٹا ٹائپ میں تبدیل کرتی ہے، اور پھر نئے متغیر کو ویلیو تفویض کرتی ہے۔
ٹائپ کاسٹنگ آپریٹرز کارآمد ہیں کیونکہ دوران پروگرام متغیرات کی ڈیٹا کی قسم تبدیل ہو سکتی ہے۔اس سے مسائل پیدا ہو سکتے ہیں اگر آپ کسی متغیر کو حسابی عمل میں استعمال کرنے کی کوشش کرتے ہیں جس میں سٹرنگ یا NULL ویلیو ہو-مثال کے طور پر، درج ذیل کوڈ میں پہلے بیان SpeedLimitMiles$ نامی متغیر کو “55mph” کی سٹرنگ ویلیو تفویض کرنا ہے۔دوسرا بیان پھر قیمت کو کلومیٹر میں تبدیل کرنے کے لیے SpeedLimitMiles$ متغیر کو 1.6 سے ضرب دیتا ہے۔نوٹ کریں کہ دوسرے بیان میں (int) آپریٹر بھی شامل ہے جو SpeedLimitMiles$ متغیر میں سٹرنگ ویلیو کو ایک عددی(integer) ویلیو میں تبدیل کرتی ہے۔
پچھلے کوڈ میں تیسرا بیان ویب براؤزر پر “55 میل فی گھنٹہ” 88 کلومیٹر فی گھنٹہ کے برابر ہے” ٹیکسٹ دکھاتا ہے۔(int) آپریٹر نے “55 میل فی گھنٹہ” کی سٹرنگ ویلیو کو 55 کی عددی ویلیومیں تبدیل کر دیا، جسے کلومیٹر کا حساب لگانے کے لیے 1.6 سے ضرب دی گیی ہے۔سچ پوچھیں تو، پی ایچ پی اسکرپٹنگ انجن (int) آپریٹر کے بغیر ہی ٹائپ کاسٹ خود بخود انجام دیتا ہے۔تاہم، اس بات کو یقینی بنانے کے لیے،کہ آپ کے متغیرات متوقع ڈیٹا کی قسم کے ہیں، ٹائپ کاسٹنگ کے استعمال میں کوئی حرج نہیں ہے ۔یہ خاص طور پر درست ہے اگر آپ نے صارفین کے داخل کردہ ڈیٹا پر کاروائیاں کرنی ہیں تو پھر PHP کے سب سے عام استعمال میں سے ایکاس فارم ڈیٹا پر کارروائی کرنا ہے جو کلائنٹ سے جمع کرواتا ہے۔آپ اس بات کا یقین نہیں کر سکتے کہ صارف فارم ڈیٹا صحیح طریقے سے داخل کرے گا، اس لیے یہ یقینی بنانا آپ کی ذمہ داری ہے کہ درج کردہ ڈیٹا اس قسم کا ہو جس کی آپ کے اسکرپٹ سے توقع کی جاتی ہے۔
صرف ڈیٹا کی قسموں کا اندازہ لگانے کے بجائے، آپ ()gettype فنکشن کی مدد سے متغیر کی قسم دیکھ سکتے ہیں، جو ڈیٹا کی قسم کے لحاظ سے درج ذیل میں سے ایک سٹرنگ واپس کرتا ہے۔
• Boolean
• Integer
• Double
• String
• Array
• Object
• Resource
• NULL
• Unknown type
آپ ایک متغیر کا نام ()gettype فنکشن کو بطور پیرامیٹر دیتے ہیں. جیسے ;gettype($variable_name)
مثال کے طور پر، درج ذیل کوڈ میں پہلا بیان ایک ڈبل متغیر کا بناتا ہے جس کا نام MortgageRate$ ہے ( ڈبل ایک پی ایچ پی فلوٹنگ پوائنٹ نمبر ہے)۔دوسرا بیان MortgageRate$ متغیر کا نام ()gettype فنکشن کو دیتا ہے۔()gettype فنکشن سے حاصل ہونے والی ویلیو پھر ایکو سٹیٹمنٹ کے ذریعے ظاہر کی جاتی ہے۔درج ذیل کوڈ اسکرین پر ٹیکسٹ سٹرنگ “ڈبل” دکھاتا ہے۔
اگرچہ آپ کسی متغیر کی ڈیٹا ٹائپ دیکھنے کے لیے ()gettype فنکشن استعمال کر سکتے ہیں، لیکن PHP کے اندر یہ تعین کرنے کے لیے آسان طریقے بھی ہیں آیاکہ متغیر کسی مخصوص ڈیٹا ٹائپ کا ہے۔بہترین طریقہ یہ ہے کہ ()*_is فنکشنز کی 15 اقسام میں سے کسی ایک کو استعمال کیا جائے جو مختلف قسم کی ڈیٹا کی اقسام کو ٹیسٹ کرتا ہے۔ہر فنکشن یہ بتانے کے لیے بولین ویلیو لوٹاتا ہے آیا کہ متغیر کسی دیی گئی ڈیٹا کی قسم کا ہے۔مثال کے طور پر، ()is_numeric فنکشن ٹیسٹ کرتا ہے کہ آیا ایک متغیر عددی(numeric) ڈیٹا کی قسم پر مشتمل ہے، جب کہ ()is_string فنکشن ٹیسٹ کرتا ہے کہ آیا متغیر سٹرنگ ڈیٹا کی قسم پر مشتمل ہے۔مزید مخصوص ()*_is فنکشنز بھی ہیں، جیسے ()is_int فنکشن، جو جانچتا ہے کہ آیا متغیر ڈیٹا ٹائپ ایک عدد(integer) ہے، اور ()is_double فنکشن، جو جانچتا ہے کہ آیا متغیرکی ڈیٹا ٹائپ ڈبل(double) ہے۔ایک ()*_is فنکشن استعمال کرنے کے لیے، آپ ایک متغیر کا نام بطور دلیل(argument) اس فنکشن کودیتے ہیں جسے آپ استعمال کرنا چاہتے ہیں۔
مندرجہ ذیل مثال MortgageRate$ متغیر کی ڈیٹاٹائپ کو جانچنے کے لیے مشروط آپریٹر کے ساتھ ()is_double فنکشن کا استعمال کرتی ہے۔کنڈیشنل ایکسپریشن MortgageRate$ متغیر کو ()is_double فنکشن میں منتقل کرتا ہے، اور پھر تعین کرتا ہے کہ آیا نتیجہ درست ہے۔چونکہ MortgageRate$ متغیرکی ڈیٹا ٹائپ ڈبل ہے، اس لیے TRUEویلیو اس متن کے ساتھ لوٹائی جاتی ہے کہ “متغیر اعشاریہ پر مشتمل ہے”(the variable contains a decimal number)۔
درج ذیل مثال میں miles-tokilometers اسکرپٹ کا ایک ترمیم شدہ ورژن شامل ہے۔اس بار، ایک مشروط آپریٹر اس بات کا تعین کرنے کے لیے ()is_int فنکشن استعمال کرتا ہے کہ آیا SpeedLimitMiles$ متغیر ایک عددی متغیر ہے۔اگر متغیر ایک مکمل عدد(integer) ہے، تو اس کی ویلیوکو 1.6 سے ضرب دی جاتی ہے اور SpeedLimitKilometers$ متغیر کو تفویض کی جاتی ہے۔اگر متغیر ایک مکمل عدد(integer) نہیں ہے (اس صورت میں، یہ نہیں ہے)تو اس کی ویلیوکو 1.6 سے ضرب دینے سے پہلے اس کو ایک انٹیجر ڈیٹا ٹائپ میں تبدیل جاتا ہے اور پھر اسے SpeedLimitKilometers$ متغیر کو تفویض کیا جاتا ہے۔
آپریٹر کی ترجیح کو سمجھنا Understanding Operator Precedence
پی ایچ پی میں ایکسپریشنز بنانے کے لیے، جب آپ آپریٹرز کا استعمال کرتے ہیں تو ضروری ہے کہ آپ آپریٹر کی برتری سے بھی آگاہ ہوں۔اصطلاحاََ آپریٹر کی ترجیح سے مراد وہ ترتیب ہے جو یہ طے کرتی ہے کہ کون سا آپریشن پہلے انجام دیا جائے گا۔ اعلی ترجیح والے آپریٹرز کا پہلے جائزہ لیا جاتا ہے۔
نیچے دی گئی جدول پی ایچ پی آپریٹرز میں ترجیحی ترتیب کو ظاہر کرتی ہے۔ایک ہی گروپ میں آپریٹرز کی ترجیحی ترتیب ایک ہی جیسی ہے۔ایک ہی ترجیحی گروپ میں آپریٹرز کے ساتھ آپریشن کرتے وقت، ترجیحی ترتیب کا تعین آپریٹرز کی ایسوسی ایٹیویٹی سے کیا جاتا ہے—یعنی وہ ترتیب جس میں مساوی ترجیح کے آپریٹرز کسی کام کو انجام دیتے ہیں۔ایسوسی ایٹیویٹی کا اندازہ بائیں سے دائیں یا دائیں سے بائیں کی بنیاد پر کیا جاتا ہے۔
اعلی گروپ بندی میں آپریٹرز کو نچلے گروپ میں آپریٹرز پر فوقیت حاصل ہے۔مثال کے طور پر، ضرب آپریٹر (*) کو جمع آپریٹر (+) پر فوقیت حاصل ہے۔لہذا، بیان 8 * 2 + 5 مندرجہ ذیل طریقہ پر حل کیا جاتا ہے:
نمبر 2 اور 8 کو پہلے ضرب دیا جاتی ہے جس سے ٹوٹل ویلیو 16حاصل ہوتی ہے اور پھر 16 اور 5 کو جمع کیا جاتا ہے، جس کے نتیجے میں کل 21 حاصل ہوتے ہیں۔اگر جمع آپریٹر کو ضرب آپریٹر پر زیادہ فوقیت حاصل ہو، تو 2 اور 5 کو پہلے جمع کیا جائے گا اور حاصل شدہ ویلیو 7 کو پھر 8 سے ضرب دی جائے گی جس سے 56 ویلیو حاصل ہوگی۔
مثال کے طور پر یہ جاننے کے لیے کہ ایسوسی ایٹویٹی کا اندازہ کس طرح لگایا جاتا ہے، ضرب اور تقسیم کے آپریٹرز پر غور کریں، جن کی ایسوسی ایٹویٹی(حل کرنے کی سمت) بائیں سے دائیں ہے۔اس کا مطلب یہ ہے کہ بیان2 * 30/5 کا نتیجہ 12 کی ویلیو ہوتا ہے—اگرچہ ضرب اور تقسیم آپریٹرز کو مساوی فوقیت حاصل ہے، لیکندونوں آپریٹرز کی بائیں سے دائیں ایسوسی ایٹویٹی ہونے کی وجہ سے تقسیم پہلے عمل میں آتی ہے۔
اگر آپریٹرز کی ہم آہنگی(associativity) دائیں سے بائیں ہے تو، بیان 2 * 30/5 کا نتیجہ 3 کی ویلیو ہوگا کیونکہ ضرب آپریشن (5*2) پہلے عمل میں آئے گا۔موازنے کے لحاظ سے، اسائنمنٹ آپریٹر اور کمپاؤنڈ اسائنمنٹ آپریٹرز، جیسے کہ کمپاؤنڈ ملٹیپلیکشن اسائنمنٹ آپریٹر (=*)، دائیں سے بائیں کی ہم آہنگی رکھتے ہیں۔لہذا، درج ذیل کوڈ میں، تفویض(assignment) کی کارروائیاں دائیں سے بائیں ہوتی ہیں۔متغیر x$ کو 1 سے بڑھایا جاتا ہے اس سے پہلے کہ اسے y$ متغیر کو کمپاؤنڈ ضرب اسائنمنٹ آپریٹر (*=) کا استعمال کرتے ہوئے تفویض کیا جائے۔پھر، متغیر y$ کی قدر متغیر x$ کو تفویض کی جاتی ہے۔x$ اور y$ متغیر دونوں کو تفویض کردہ نتیجہ 8 ہے۔
آپ ایکسپریشنز کے ساتھ قوسین کا استعمال کر سکتے ہیں اس ایسوسی ایٹویٹی کو تبدیل کرنے کے لیے جس کے ساتھ ایکسپریشن میں انفرادی کارروائیوں کا اندازہ کیا جاتا ہے۔مثال کے طور پر، بیان 8 * 2 + 5، جو 21 کا اندازہ کرتا ہے، کو 8 * ( 2+5) میں دوبارہ لکھا جا سکتا ہے، جس کا اندازہ 56 ہوتا ہے۔قوسین PHP اسکرپٹنگ انجن کو نمبر 8 سے ضرب کرنے سے پہلے نمبر 5 اور 2 کو جمع کرنے کا کہتا ہے۔قوسین کا استعمال بیان کو 21 کے بجائے 56 پر جانچنے پر مجبور کرتا ہے۔
مختصر سوال
بائیں اوپرینڈ کو دائیں اوپرینڈ سے تقسیم کرنے اور بقیہ کو واپس کرنے کے لیے کون سی علامت استعمال ہوتی ہے؟
اسائنمنٹ آپریٹر اور کمپاؤنڈ اسائنمنٹ آپریٹر کے درمیان فرق کی وضاحت کریں۔
ایک پریفکس آپریٹر اور پوسٹ فکس آپریٹر کے درمیان فرق کی وضاحت کریں۔
ایسوسی ایٹیوٹی کی اصطلاح کی وضاحت کریں کیونکہ یہ ترجیحی ترتیب پر لاگو ہوتی ہے۔