ایکسپریشنز اور آپریٹرز کا استعمال

ایکسپریشنز اور آپریٹرز کا استعمال

بلڈنگ ایکسپریشنز 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 %

درج ذیل کوڈ اظہار کی مثالیں دکھاتا ہے جس میں ریاضی کے بائنری آپریٹرز شامل ہیں۔

Results of arithmetic expressions
Results of arithmetic expressions

پچھلے کوڈ میں نوٹ کریں کہ جب پی ایچ پی ریاضی کا حساب کتاب کرتی ہے، تو یہ اسائنمنٹ آپریٹر کے دائیں جانب آپریشن کرتی ہے اور پھر اسائنمنٹ آپریٹر کے بائیں جانب ایک متغیر کو ویلیو تفویض کرتی ہے۔مثال کے طور پر، سٹیٹمنٹ ;ReturnValue = $x + $y$میں، آپرینڈز x$ اور y$ کو جمع کیا جاتا ہے، اور پھر نتیجہ اسائنمنٹ آپریٹر کے بائیں جانب ReturnValue$ متغیر کو تفویض کیا جاتا ہے۔
آپ ڈویژن (/) آپریٹر اور ماجولس (%) آپریٹر کے درمیان فرق سے الجھن میں پڑ سکتے ہیں۔ڈویژن آپریٹر ایک معیاری ریاضیاتی تقسیم کا عمل انجام دیتا ہے۔اس کے مقابلے میں، ماجولس آپریٹر دو انٹیجرز کی تقسیم سے بقیہ کو لوٹاتا ہے۔مندرجہ ذیل کوڈ، مثال کے طور پر، 15 کو 6 سے تقسیم کرنے کا نتیجہ واپس کرنے کے لیے ڈویژن اور ماجولس آپریٹرز کا استعمال کرتا ہے۔نتیجہ 2.5 کی ویلیو ہے، کیونکہ 6 بالکل 2.5 بار 15 میں جاتا ہے۔لیکن اگر آپ اسے مکمل تعداد میں ظاہر کرتے ہیں تو، 6 صرف 2 بار 15 میں جاتا ہے،3 باقی آتا ہے۔ہم، 15 کا ماجولس 6 سے تقسیم 3 ہے کیونکہ 3 عددی تقسیم کے بعد بقیہ ہے۔


Division and modulus expressions
Division and modulus expressions

آپ تفویضی سٹیٹمنٹ کے دائیں جانب متغیرات اور لٹریل ویلیوز کا مجموعہ بھی شامل کر سکتے ہیں۔ مثال کے طور پر، درج ذیل جمعی بیانات میں سے کوئی بھی درست ہے:
Addition statement with literal values

تاہم، آپ اسائنمنٹ آپریٹر کے بائیں آپرینڈ کے طور پر لٹریل ویلیو شامل نہیں کر سکتے ہیں کیونکہ PHP اسکرپٹنگ انجن میں ایک متغیر ہونا ضروری ہے جس کو واپس کی گئی ویلیو تفویض کی جاتی ہے۔
لہذا، درج ذیل سٹیٹمنٹ ایک غلطی کا سبب بنتی ہے.wrong statement

سٹرنگ ویلیوز پر ریاضی کی کارروائیوں کو انجام دیتے وقت، پی ایچ پی اسکرپٹنگ انجن سٹرنگ ویلیوز کو نومیرک ویلیوز میں تبدیل کرنے کی کوشش کرتا ہے۔درج ذیل مثال میں متغیرات کو اعداد کے بجائے سٹرنگ ویلیو کے طور پر تفویض کیا گیا ہے کیونکہ وہ کوٹیشن مارکس کے اندر موجود ہیں.اس کے باوجود، پی ایچ پی اسکرپٹنگ انجن درست طریقے سے ضرب کا عمل انجام دیتا ہے اور 6 کی قدر لوٹاتا ہے۔converting string to numbers

ریاضی کے یونیری آپریٹرز Arithmetic Unary Operators

یونیری آپریٹرز کا استعمال کرتے ہوئے ایک واحد متغیر پر ریاضی کی کارروائیاں بھی کی جا سکتی ہیں۔نیچے دی گئی جدول پی ایچ پی میں دستیاب یونیری آپریٹرز کی فہرست دیتا ہے۔
unary operators
(++)increment اور (−−)decrement یونیری آپریٹرز کو بطور پریفکس یا پوسٹ فکس آپریٹرز استعمال کیا جا سکتا ہے۔متغیر سے پہلے ایک سابقہ(پریفکس) آپریٹر رکھا جاتا ہے۔ ایک پوسٹ فکس آپریٹر متغیر کے بعد رکھا جاتا ہے۔بیانات ؛++MyVariable$ اور ;MyVariable$++ دونوں MyVariable$ کو 1 تک بڑھاتے ہیں۔تاہم، دونوں بیانات مختلف ویلیوز واپس کرتے ہیں۔جب آپ انکریمنٹ آپریٹر کو بطور پریفکس آپریٹر استعمال کرتے ہیں، تو آپرینڈ کی ویلیو واپس آنے سے پہلے 1 کی ویلیوسے بڑھ جاتی ہے یعنی ویلیو میں ایک کا اضافہ ہو جاتا ہے۔
جب آپ انکریمنٹ آپریٹر کو پوسٹ فکس آپریٹر کے طور پر استعمال کرتے ہیں، تو آپرینڈ کی ویلیو واپس آنے کے بعد 1 کی ویلیو سے بڑھ جاتی ہے یعنی ویلیو میں ایک کا اضافہ ہو جاتا ہے۔
اسی طرح، جب آپ ڈیکریمنٹ آپریٹر کو بطور پریفکس آپریٹر استعمال کرتے ہیں، تو آپرینڈ کی ویلیو میں واپس آنے سے پہلے 1 درجہ کم ہوجاتی ہے۔
جب آپ ڈیکریمنٹ آپریٹر کو پوسٹ فکس آپریٹر کے طور پر استعمال کرتے ہیں، تو آپرینڈ کی ویلیو میں واپس آنے کے بعد 1 درجہ کم ہوجاتی ہے۔اگر آپ کسی اور متغیر کو بڑھی ہوئی یا گھٹی ہوئی ویلیوتفویض کرنے کا ارادہ رکھتے ہیں، تو اس سے فرق پڑتا ہے چاہے آپ سابقہ یا پوسٹ فکس آپریٹر استعمال کریں۔
آپ کسی بھی ایسی صورتحال میں ریاضی کے یونری آپریٹرز کا استعمال کرتے ہیں جس میں آپ کسی ویلیوکو 1 تک بڑھانے یا کم کرنے کے لیے ایک آسان ایکسپریشن کو ترجیح دیتے ہیں۔
درج ذیل مثال میں دونوں بیان(سٹیٹمنٹ) برابر ہیں.both statements have same result
جیسا کہ آپ دیکھ سکتے ہیں، اگر آپ کا مقصد صرف ایک متغیر کی ویلیوکو 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 کی ابتدائی ویلیودی جاتی ہے.جیسے.
prefix increment unary operator
ویب براؤزر رزلٹ کچھ اس طرح ہوگا.
prefix increment unary operator browser result
نیچے دی گئی اسکرپٹ وہی کام کرتی ہے، لیکن پوسٹ فکس انکریمنٹ آپریٹر استعمال کرتی ہے۔نوٹ کریں کہ آؤٹ پٹ پچھلے اسکرپٹ میں آؤٹ پٹ سے مختلف ہے۔کیونکہ اسکرپٹ کی پہلی مثال پریفکس انکریمنٹ آپریٹر کا استعمال کرتی ہے جو StudentID$ متغیر کو CurStudentID$ متغیر کو ویلیو تفویض کرنے سے پہلے بڑھاتی ہے.اسکرپٹ 100 کی ابتدائی ویلیواستعمال نہیں کرتی ہے۔بلکہ، یہ پہلے StudentID$ متغیر کو بڑھاتی ہے اور 101 کو طالب علم کی پہلی ID کے طور پر استعمال کرتی ہے۔
اس کے مقابلے میں، اسکرپٹ کی دوسری مثال 100 کی ابتدائی ویلیواستعمال کرتی ہے کیونکہ پوسٹ فکس انکریمنٹ آپریٹر StudentID$ متغیر کو CurStudentID$ متغیر کو ویلیو تفویض کرنے کے بعد ویلیو بڑھاتا ہے۔جیسے.
postfix increment unary operator
ویب براؤزر رزلٹ کچھ اس طرح ہوگا.
postfix increment unary operator web view
آئیے ایک اسکرپٹ بنائیں جو ریاضی کے حسابات کو انجام دے:

  1. اپنے ٹیکسٹ ایڈیٹر میں ایک نئی دستاویز(ڈاکومنٹ) فائل بنائیں
  2. اگر آپ وی.ایس کوڈ استعمال کر رہے ہیں تو HTML:5 ٹائپ کریں.یہ ایک HTML ٹیمپلیٹ تخلیق کر دے گا.
  3. ڈاکومنٹ باڈی میں معیاری پی ایچ پی اسکرپٹ ڈیلیمیٹر شامل کریں :
  4. دو متغیرات کو بنانےکے لیے اسکرپٹ سیکشن میں درج ذیل بیانات شامل کریں۔ ان بیانات میں نمبر رکھنے کے لیے ایک Number$ متغیر شامل ہے، جسے آپ ریاضی کے کئی آپریشنز میں استعمال کریں گے، اور ہر ریاضی کے آپریشن کی ویلیو پر مشتمل Result$ متغیر شامل ہے۔
    ;100= Number$
    ;0 = Result$
  5. اب درج ذیل بیانات شامل کریں جو Number$ متغیر پر جمع، تفریق، ضرب، اور تقسیم کی کارروائیاں انجام دیتے ہیں اور ہر ویلیو Result$ متغیر کو تفویض کرتے ہیں۔Result$ متغیر ہر اسائنمنٹ اسٹیٹمنٹ کے بعد ظاہر ہوتا ہے۔Arithmatic Example Script
  6. اس کے بعد، درج ذیل دو بیانات شامل کریں۔ پہلا بیان انکریمنٹ آپریٹر کا استعمال کرتا ہے تاکہ Number$ متغیر کی ویلیوکو 1 تک بڑھا سکے اور Result$ متغیر کو نئی ویلیوتفویض کرے۔دوسرا بیان Result$ متغیر دکھاتا ہے۔نوٹ کریں کہ انکریمنٹ آپریٹر کو ایک سابقہ آپریٹر کے طور پر استعمال کیا گیا ہے، لہذا نئی ویلیو Result$ متغیر کو تفویض کی جاتی ہے۔اگر آپ پوسٹ فکس انکریمنٹ آپریٹر استعمال کرتے تو $Number متغیر کو 1 تک بڑھا دیا جاتا لیکن Number$ متغیر کی پرانی ویلیو Result$ متغیر کو تفویض کرنے کے بعد۔Use Of Prefix Unary Operator
  7. دستاویز کو اپنی مطلوبہ ڈائرکٹری میں بطورArithmeticExamples.php محفوظ کریں اور دستاویز کو ویب سرور پر اپ لوڈ کریں.
  8. اپنی ویب سرور ڈائرکٹری کا URL درج کرکے اپنے ویب براؤزر میں “Arithmetic Examples.php” فائل کھولیں۔Use Of Prefix Unary Operator Web Result
  9. اپنی ویب براؤزر ونڈو کو بند کر دیں.

اسائنمنٹ آپریٹرز Assignment Operators

تفویضی آپریٹرز کا استعمال متغیر کو ویلیوتفویض کرنے کے لیے کیا جاتا ہے۔ آپ نے پہلے ہی سب سے عام اسائنمنٹ آپریٹر، مساوی نشان (=) کا استعمال کیا ہے یہ کسی متغیر کو ویلیو دینے کے لیے استعمال کیا جاتا ہے۔مساوی نشان ایک نئے متغیر کو ابتدائی ویلیو تفویض کرتا ہے یا موجودہ متغیر کو نئی ویلیوتفویض کرتا ہے۔مثال کے طور پر، درج ذیل کوڈ MyFavoriteSuperHero$ نامی ایک متغیر بناتا ہے، اسے ایک ابتدائی ویلیو دینے کے لیے مساوی نشان کا استعمال کرتا ہے، اور پھر اسے ایک نئی ویلیو دینے کے لیے مساوی نشان کو دوبارہ استعمال کرتا ہے:Assign Values To Variables
PHP میں مساوی نشان کے علاوہ دیگر اسائنمنٹ آپریٹرز بھی شامل ہیں۔ یہ اضافی آپریٹرز، جنہیں کمپاؤنڈ اسائنمنٹ آپریٹرز کہا جاتا ہے، ایک ایکسپریشن میں متغیرات اور لٹریل ویلیوز پر ریاضیاتی حساب لگاتے ہیں اور پھر بائیں اوپرینڈ کو ایک نئی ویلیودیتے ہیں۔نیچے دی گئی جدول عام پی ایچ پی اسائنمنٹ آپریٹرز کی فہرست دکھاتی ہے۔

Description Operation Symbol
دائیں اوپرینڈ کی ویلیوبائیں اوپرینڈ کو تفویض کرتا ہے۔ Assignment =
دائیں آپرینڈ کی ویلیوکو بائیں آپرینڈ کی ویلیومیں جمع کرتا ہے اور بائیں آپرینڈ کو نئی ویلیوتفویض کرتا ہے Compound addition assignment +=
بائیں اوپرینڈ کی ویلیوسے دائیں اوپرینڈ کی ویلیوکو تفریق کرتا ہے اور بائیں اوپرینڈ کو نئی ویلیوتفویض کرتا ہے Compound subtraction assignment −=
دائیں اوپرینڈ کی ویلیوکو بائیں اوپرینڈ کی ویلیوسے ضرب دیتا ہے اور بائیں اوپرینڈ کو نئی ویلیوتفویض کرتا ہے Compound multiplication assignment *=
بائیں اوپرینڈ کی ویلیوکو دائیں اوپرینڈ کی ویلیو سے تقسیم کرتا ہے اور بائیں آپرینڈ کو نئی ویلیوتفویض کرتا ہے Compound division assignment /=
بائیں آپرینڈ کی ویلیوکو دائیں اوپرینڈ کی ویلیوسے تقسیم کرتا ہے اور بقیہ (ماڈیولس) کو بائیں آپرینڈ کو تفویض کرتا ہے Compound modulus assignment %=

درج ذیل کوڈ مختلف اسائنمنٹ آپریٹرز کی مثالیں دکھاتا ہے۔
Assingment Examples
Assignment Example web view
آئیے ایک اسکرپٹ بناتے ہیں جو اسائنمنٹ آپریٹرز کا استعمال کرتا ہے:

  1. اپنے ٹیکسٹ ایڈیٹر میں ایک نئی دستاویز بنائیں اور اسے AssignmentExample.php کا نام دیں۔
  2. اگر آپ وی.ایس کوڈ استعمال کر رہے ہیں تو HTML:5 ٹائپ کریں.یہ ایک HTML ٹیمپلیٹ تخلیق کر دے گا.
  3. ٹائٹل ایلیمنٹ کے مواد کے طور پر “Assignment Examples” استعمال کریں۔
  4. دستاویز کی باڈی میں معیاری پی ایچ پی اسکرپٹ ڈیلیمیٹر شامل کریں :
  5. اسکرپٹ سیکشن میں درج ذیل بیانات ٹائپ کریں۔ یہ بیانات ChangingVar$ نامی متغیر پر متعدد کمپاؤنڈ اسائنمنٹ آپریشن انجام دیتے ہیں۔ ہر اسائنمنٹ آپریشن کے بعد، نتیجہ ظاہر ہوتا ہے۔Assignment Final Example
  6. دستاویز کو محفوظ کریں اور ویب سرور پر اپ لوڈ کریں، اور پھر ویب براؤزر میں کھولیں۔Assignment Final Resutl Web View

موازنہ اور مشروط آپریٹرز 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 Syntax
اگر Conditional-Expression کی تشخیص TRUE پر ہوتی ہے، تو expression1 کام کرتا ہے۔ اگر Conditional-Expression کی تشخیص FALSE پر ہوتی ہے، تو expression2 کام کرتا ہے۔
مندرجہ ذیل کوڈ مشروط آپریٹر کی ایک مثال دکھاتا ہے:
Conditional Expression Code
مثال میں، مشروط ایکسپریشن یہ چیک کرتا ہے کہ آیا 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” اسکرین پر ظاہر ہوتا ہے۔
Conditional Expression Code Web View
آئیے ایک اسکرپٹ بنائیں جو موازنہ اور مشروط آپریٹرز کا استعمال کرے:

  1. اپنے ٹیکسٹ ایڈیٹر میں ایک نئی دستاویز بنائیں اور اسے ComparisonExamples.php میں محفوظ کریں۔
  2. اگر آپ وی.ایس کوڈ استعمال کر رہے ہیں تو HTML:5 ٹائپ کریں.یہ ایک HTML ٹیمپلیٹ تخلیق کر دے گا.ہیڈر سیکشن میں موجود ٹائٹل ٹیگ میں بطور مواد Comparison Examples لکھیں.
  3. ڈاکومنٹ باڈی میں معیاری پی ایچ پی اسکرپٹ ڈیلیمیٹر شامل کریں:
  4. دو متغیرات پر موازنہ کی مختلف کارروائیوں کو انجام دینے کے لیے درج ذیل بیانات کو اسکرپٹ سیکشن میں شامل کریں۔ نوٹ کریں کہ موازنہ بیانات ReturnValue$ متغیر کو TRUE یا FALSE کی ٹیکسٹ ویلیو تفویض کرنے کے لیے مشروط آپریٹر کا استعمال کرتے ہیں۔
  5. دستاویز کو ویب سرور پر اپ لوڈ کریں اور پھر اسے ویب براؤزر میں کھولیں۔Comparison Examples web view
  6. ویب براؤزر ونڈو کو بند کر دیں

منطقی آپریٹرز 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 (&&) آپریٹر کا استعمال کرتا ہے۔AND version of the logical And operator.
logical and expression web view
منطقی 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 کی ویلیوتفویض کریں۔logical or operator code view
پچھلی مثال میں متغیر RiskFactor$ کو TRUE ویلیو تفویض کی گئی ہے کیونکہ متغیر ایکسپریشن SpeedingTicket$ کی ویلیو TRUE لوٹاتا ہے، حالانکہ Age$ متغیر ایکسپریشن کی ویلیو کا اندازہ FALSE پر ہوتا ہے۔ اس کی وجہ یہ ہے کہ منطقی OR آپریٹر TRUE لوٹاتا ہے اگر بائیں یا دائیں آپرینڈ میں سے کوئی ایک بھی TRUE ویلیو لوٹاتا ہے۔درج ذیل مثال پچھلے کوڈ کا ایک اور ورژن دکھاتی ہے، لیکن اس بار logical Or آپریٹر کے OR ورژن کا استعمال کرتے ہوئے:Logical Expression Code view 2nd Version
مندرجہ ذیل کوڈ منطقی(لوجیکل) Not (!) آپریٹر کی ایک مثال ہے، جو TRUE لوٹاتا ہے اگر کسی آپرینڈ کی ویلیو FALSE حاصل ہوتی ہے اور اگر کسی آپرینڈ کی ویلیو TRUE حاصل ہوتی ہے تو FALSE لوٹاتا ہے۔نوٹ کریں کہ چونکہ لوجیکل Not (!) آپریٹر ایک یونری (unary) آپریٹر ہے اور اس کے لیے صرف ایک آپرینڈ کی ضرورت ہوتی ہے۔
Logical Not code view
درج ذیل کوڈ لوجیکل Exclusive Or (XOR) آپریٹر کی ایک مثال ہے، جو TRUE لوٹاتا ہے اگر آپرینڈز میں سے صرف ایک TRUE ہو، لیکن دونوں نہیں۔
Logical Excloxiv Or code view
آئیے ایک اسکرپٹ بناتے ہیں جو لوجیکل آپریٹرز کا استعمال کرتا ہے:

  1. اپنے ٹیکسٹ ایڈیٹر میں ایک نئی دستاویز بنائیں اور اسےLogicalExamples.php کے نام سے محفوظ کریں۔
  2. اگر آپ وی.ایس کوڈ استعمال کر رہے ہیں تو HTML:5 ٹائپ کریں.یہ ایک HTML ٹیمپلیٹ تخلیق کر دے گا.ہیڈر سیکشن میں موجود ٹائٹل ٹیگ میں بطور مواد Logical Examples لکھیں.
  3. ڈاکومنٹ باڈی میں معیاری پی ایچ پی اسکرپٹ ڈیلیمیٹر شامل کریں
  4. دو متغیرات پر موازنہ کی مختلف کارروائیوں کو انجام دینے کے لیے درج ذیل بیانات کو اسکرپٹ سیکشن میں شامل کریں-مشروط ایکسپریشنز منطقی ایکسپریشنز کی جانچ کرتے ہیں اور پھر ReturnValue$ متغیر کو TRUE یا FALSE کی ٹیکسٹ ویلیو تفویض کرتے ہیں۔Logical Operators Example codes
  5. دستاویز کو ویب سرور پر اپ لوڈ کریں، اور پھر ویب براؤزر میں کھولیں۔Logical Operators Example codes web
  6. اپنا ویب براؤزر بند کریں۔

خصوصی آپریٹرز Special Operators

پی ایچ پی میں وہ خصوصی آپریٹرز بھی شامل ہیں جو نیچے دیے گئے جدول میں درج ہیں۔

Description Symbols
اسکوائر بریکٹ کا استعمال کسی ایرے کے ایلیمنٹ تک رسائی کے لیے کیا جاتا ہے۔ [ and ]
ایک ایرےکے عنصر کی انڈیکس یا کلید کی وضاحت کرتا ہے۔ =>
ایک ایرے ایلیمنٹس کو الگ کرتا ہے۔ ,
مشروط ایکسپریشنزکے نتائج کی بنیاد پر دو میں سے ایک ایکسپریش کو انجام دیتا ہے۔ ? and :
اگر کوئی آبجیکٹ مخصوص قسم کی ہو تو TRUE لوٹاتا ہے۔ instanceof
کسی بھی غلطی کو دباتا ہے جو کسی ایسے ایکسپریشن سے پیدا ہو سکتی ہے جس کے لیے اسے پہلے سے جوڑا گیا ہو (یا پہلے رکھا گیا ہو) @
ایک ڈیٹا ٹائپ کے متغیر کو دوسری ڈیٹا ٹائپ کے متغیر میں تبدیل کرتا ہے) (int), (integer), (bool),
(boolean), (double),
(string), (array),
(object)

اس مضمون میں آپ کا تعارف خصوصی پی ایچ پی آپریٹرز سے کرایا جائے گا، جس کا آغاز اگلے حصے میں کاسٹنگ آپریٹرز سے ہوگا۔

ٹائپ کاسٹنگ Type Casting

اگرچہ پی ایچ پی خود بخود متغیر کی ڈیٹا ٹائپ کا تعین کرتی ہے،بعض اوقات آپ اس بات کو یقینی بنانا چاہتے ہیں کہ ایک متغیر کی ڈیٹا ٹائپ وہی ہونی چاہیے جس کی آپ کی اسکرپٹ سے توقع ہے۔اس کو یقینی بنانے کا ایک طریقہ کاسٹنگ ہے،
یا ٹائپ کاسٹنگ ہے.جو ایک ڈیٹا ٹائپ کے متغیر میں موجود ویلیوکو دوسرے ڈیٹا ٹائپ کے متغیر میں کاپی کرتی ہے۔
متغیرات(variables) کو کاسٹ کرنے کے لیے پی ایچ پی کا سنٹیکس یہ ہے.Type Casting code
سنٹیکس کا (new_type) حصہ ٹائپ کاسٹنگ آپریٹر ہے جو اس ٹائپ کی نمائندگی کرتا ہے جس میں آپ متغیر کو کاسٹ(تبدیل) کرنا چاہتے ہیں۔نوٹ کریں کہ کاسٹنگ اصل متغیر کے ڈیٹا کی قسم کو تبدیل نہیں کرتی ہے۔بلکہ، کاسٹنگ پرانے متغیر سے ڈیٹا کو کاپی کرتی ہے، اسے ٹائپ کاسٹنگ آپریٹر کے ذریعہ مخصوص ڈیٹا ٹائپ میں تبدیل کرتی ہے، اور پھر نئے متغیر کو ویلیو تفویض کرتی ہے۔
ٹائپ کاسٹنگ آپریٹرز کارآمد ہیں کیونکہ دوران پروگرام متغیرات کی ڈیٹا کی قسم تبدیل ہو سکتی ہے۔اس سے مسائل پیدا ہو سکتے ہیں اگر آپ کسی متغیر کو حسابی عمل میں استعمال کرنے کی کوشش کرتے ہیں جس میں سٹرنگ یا NULL ویلیو ہو-مثال کے طور پر، درج ذیل کوڈ میں پہلے بیان SpeedLimitMiles$ نامی متغیر کو “55mph” کی سٹرنگ ویلیو تفویض کرنا ہے۔دوسرا بیان پھر قیمت کو کلومیٹر میں تبدیل کرنے کے لیے SpeedLimitMiles$ متغیر کو 1.6 سے ضرب دیتا ہے۔نوٹ کریں کہ دوسرے بیان میں (int) آپریٹر بھی شامل ہے جو SpeedLimitMiles$ متغیر میں سٹرنگ ویلیو کو ایک عددی(integer) ویلیو میں تبدیل کرتی ہے۔Type Casting code Example
پچھلے کوڈ میں تیسرا بیان ویب براؤزر پر “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 فنکشن سے حاصل ہونے والی ویلیو پھر ایکو سٹیٹمنٹ کے ذریعے ظاہر کی جاتی ہے۔درج ذیل کوڈ اسکرین پر ٹیکسٹ سٹرنگ “ڈبل” دکھاتا ہے۔Passing parameter to gettype() function
اگرچہ آپ کسی متغیر کی ڈیٹا ٹائپ دیکھنے کے لیے ()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$ متغیر کو تفویض کیا جاتا ہے۔
converting of data type code

آپریٹر کی ترجیح کو سمجھنا Understanding Operator Precedence

پی ایچ پی میں ایکسپریشنز بنانے کے لیے، جب آپ آپریٹرز کا استعمال کرتے ہیں تو ضروری ہے کہ آپ آپریٹر کی برتری سے بھی آگاہ ہوں۔اصطلاحاََ آپریٹر کی ترجیح سے مراد وہ ترتیب ہے جو یہ طے کرتی ہے کہ کون سا آپریشن پہلے انجام دیا جائے گا۔ اعلی ترجیح والے آپریٹرز کا پہلے جائزہ لیا جاتا ہے۔
نیچے دی گئی جدول پی ایچ پی آپریٹرز میں ترجیحی ترتیب کو ظاہر کرتی ہے۔ایک ہی گروپ میں آپریٹرز کی ترجیحی ترتیب ایک ہی جیسی ہے۔ایک ہی ترجیحی گروپ میں آپریٹرز کے ساتھ آپریشن کرتے وقت، ترجیحی ترتیب کا تعین آپریٹرز کی ایسوسی ایٹیویٹی سے کیا جاتا ہے—یعنی وہ ترتیب جس میں مساوی ترجیح کے آپریٹرز کسی کام کو انجام دیتے ہیں۔ایسوسی ایٹیویٹی کا اندازہ بائیں سے دائیں یا دائیں سے بائیں کی بنیاد پر کیا جاتا ہے۔
Precedence-Operators
اعلی گروپ بندی میں آپریٹرز کو نچلے گروپ میں آپریٹرز پر فوقیت حاصل ہے۔مثال کے طور پر، ضرب آپریٹر (*) کو جمع آپریٹر (+) پر فوقیت حاصل ہے۔لہذا، بیان 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 ہے۔
precedence example with multiplication assignment operator
آپ ایکسپریشنز کے ساتھ قوسین کا استعمال کر سکتے ہیں اس ایسوسی ایٹویٹی کو تبدیل کرنے کے لیے جس کے ساتھ ایکسپریشن میں انفرادی کارروائیوں کا اندازہ کیا جاتا ہے۔مثال کے طور پر، بیان 8 * 2 + 5، جو 21 کا اندازہ کرتا ہے، کو 8 * ( 2+5) میں دوبارہ لکھا جا سکتا ہے، جس کا اندازہ 56 ہوتا ہے۔قوسین PHP اسکرپٹنگ انجن کو نمبر 8 سے ضرب کرنے سے پہلے نمبر 5 اور 2 کو جمع کرنے کا کہتا ہے۔قوسین کا استعمال بیان کو 21 کے بجائے 56 پر جانچنے پر مجبور کرتا ہے۔

مختصر سوال

بائیں اوپرینڈ کو دائیں اوپرینڈ سے تقسیم کرنے اور بقیہ کو واپس کرنے کے لیے کون سی علامت استعمال ہوتی ہے؟
اسائنمنٹ آپریٹر اور کمپاؤنڈ اسائنمنٹ آپریٹر کے درمیان فرق کی وضاحت کریں۔
ایک پریفکس آپریٹر اور پوسٹ فکس آپریٹر کے درمیان فرق کی وضاحت کریں۔
ایسوسی ایٹیوٹی کی اصطلاح کی وضاحت کریں کیونکہ یہ ترجیحی ترتیب پر لاگو ہوتی ہے۔

اپنا تبصرہ لکھیں