سنناقش في هذا الفصل استخدام العوامل المختلفة في PHP.
في PHP، يتم استخدام عامل التعيين = لتعيين قيمة لمتغير.
في PHP، يتم استخدام العامل الحسابي + لجمع القيم معًا.
مشغل | اسم | يصف | مثال | نتيجة |
---|---|---|---|---|
س + ص | يضيف | مجموع x و y | 2+2 | 4 |
س-ص | يقلل | الفرق بين x و y | 5-2 | 3 |
س*ص | يأخذ | منتج x و y | 5*2 | 10 |
س/ص | يزيل | حاصل x و y | 15/5 | 3 |
س % ص | مودولو (ما تبقى من القسم) | الباقي عند قسمة x على y | 5% 210% 810% 2 | 120 |
-x | نفي | نفي س | -2 | -2 |
أ.ب | جنبا إلى جنب | قم بربط سلسلتين | "مرحبا" "ها" | مرحبا |
توضح الأمثلة التالية نتائج مختلفة باستخدام عوامل حسابية مختلفة:
<?php $x = 10 ; $ y = 6 ; ( $x + $ y ) // الإخراج 16 صدى ' <br> ' // فاصل الأسطر صدى ( $x - $y ) // الإخراج 4 صدى ' <br> ' // فاصل الأسطر صدى ( $x * $ y ) // الإخراج 60 صدى ' <br> ' // فاصل الأسطر صدى ( $x / $y ) // الإخراج 1.6666666666667 صدى ' <br> ' // فاصل الأسطر صدى ( $x % $ y ) // الإخراج 4 صدى ' <br> ' // فاصل الأسطر صدى - $x ? >
يحتوي إصدار PHP7+ على عامل تشغيل جديد لتقسيم الأعداد الصحيحة intdiv() ، وأمثلة الاستخدام:
<?php var_dump ( intdiv ( 10 , 3 ) ) ? >
المثال أعلاه سوف يخرج:
كثافة العمليات (3)
في PHP، عامل التعيين الأساسي هو "=". وهذا يعني أنه تم تعيين المعامل الأيسر على قيمة التعبير الأيمن. أي أن قيمة "$x = 5" هي 5.
مشغل | يعادل | يصف |
---|---|---|
س = ص | س = ص | يتم تعيين المعامل الأيسر على قيمة التعبير الأيمن |
س += ص | س = س + ص | يضيف |
س -= ص | س = س - ص | يقلل |
س*=ص | س = س * ص | يأخذ |
س /= ص | س = س / ص | يزيل |
س%=ص | س = س % ص | مودولو (ما تبقى من القسم) |
أ .= ب | أ = أ ب | قم بربط سلسلتين |
توضح الأمثلة التالية نتائج مختلفة باستخدام عوامل تعيين مختلفة:
<?php $ x = 10 ; $x ; // الإخراج 10 $y = 20 ; $y + = 100 ; $y ; // الإخراج 120 $z = 50 ; $z - = 25 ; $z ; // الإخراج 25 $i = 5 ; $i * = 6 ; $i ; // الإخراج 30 $j = 10 ; $j / = 5 ; $j ; // الإخراج 2 $k = 15 ; $k % = 4 ; $ك ; // الإخراج 3 ?>
توضح الأمثلة التالية نفس النتيجة باستخدام عوامل سلسلة مختلفة:
<?php $a = " مرحبًا " ; $ b = $a " العالم ! " ; $ ب ; // الإخراج أهلا بالعالم! $x = " مرحبا " ; $x . = " العالم! " ; $x ; // الإخراج أهلا بالعالم! ?>
مشغل | اسم | يصف |
---|---|---|
++x | الزيادة المسبقة | أضف 1 إلى x وأرجع x |
س++ | بعد الزيادة | قم بإرجاع x، ثم أضف 1 إلى x |
--x | إنقاص مسبق | إنقاص x بمقدار 1، ثم إرجاع x |
س -- | تتناقص بعد | يُرجع x، ثم يُنقص x بمقدار 1 |
يوضح المثال التالي نتائج استخدام عوامل الزيادة/النقصان:
<?php $ x = 10 ; صدى ++ $ x ; $ y = 10 ; $y ++; // الإخراج 10 $ z = 5 ؛ صدى -- $ z ; $ i = 5 ; $i --; // الإخراج 5 ?>
تتيح لك عوامل المقارنة مقارنة قيمتين:
مشغل | اسم | يصف | مثال |
---|---|---|---|
س == ص | متساوي | يُرجع صحيحًا إذا كانت x تساوي y | 5==8 يُرجع خطأ |
س === ص | يساوي تماما | يُرجع صحيحًا إذا كانت x تساوي y وكانا من نفس النوع | 5==="5" تُرجع خطأ |
س!= ذ | لا يساوي | يُرجع صحيحًا إذا كانت x لا تساوي y | 5!=8 يُرجع صحيحًا |
س <> ص | لا يساوي | يُرجع صحيحًا إذا كانت x لا تساوي y | 5<>8 يُرجع صحيحًا |
س!== ذ | بالتأكيد لا يساوي | يُرجع صحيحًا إذا كانت x لا تساوي y، أو أنها ليست من نفس النوع | 5!=="5" يُرجع صحيحًا |
س> ص | أكبر من | يُرجع صحيحًا إذا كانت x أكبر من y | 5>8 يُرجع خطأ |
س <ص | أقل من | يُرجع صحيحًا إذا كانت x أقل من y | 5<8 يعود صحيحا |
س >= ص | أكبر من أو يساوي | يُرجع صحيحًا إذا كانت x أكبر من أو تساوي y | 5>=8 يُرجع خطأ |
س <= ص | أقل من أو يساوي | يُرجع صحيحًا إذا كانت x أقل من أو تساوي y | 5<=8 يُرجع صحيحًا |
توضح الأمثلة التالية نتائج مختلفة باستخدام بعض عوامل المقارنة:
<?php $ x = 100 ; $ y = " 100 " ;" <br> " ; var_dump ( $x === $ y ) ; " <br> " ; var_dump ( $x ! = $y ) ; " <br> " ; var_dump ( $x ! == $y ) ; " <br> " ; $ a = 50 ; $ b = 90 ;" <br> " ; var_dump ( $a < $b ) ? >
مشغل | اسم | يصف | مثال |
---|---|---|---|
س و ص | و | يُرجع صحيحًا إذا كان كل من x وy صحيحين | x=6y=3(x < 10 and y > 1) يُرجع صحيحًا |
س أو ص | أو | يُرجع صحيحًا إذا كان واحدًا على الأقل من x وy صحيحًا | x=6y=3(x==6 أو y==5) تُرجع صحيحًا |
س اكسور ذ | XOR | إذا كان واحد فقط من x وy صحيحًا، فسيتم إرجاعه صحيحًا | x=6y=3(x==6 xor y==3) تُرجع false |
س && ص | و | يُرجع صحيحًا إذا كان كل من x وy صحيحين | x=6y=3(x < 10 && y > 1) تُرجع صحيحًا |
س || ذ | أو | يُرجع صحيحًا إذا كان واحدًا على الأقل من x وy صحيحًا | x=6y=3(x==5 || y==5) تُرجع false |
!x | لا | إذا لم تكن x صحيحة، فارجع صحيحًا | x=6y=3!(x==y) تُرجع صحيحًا |
مشغل | اسم | يصف |
---|---|---|
س + ص | يجتمع | مجموعة x و y |
س == ص | متساوي | يُرجع صحيحًا إذا كان x وy لهما نفس زوج المفتاح/القيمة |
س === ص | المساواة | يُرجع صحيحًا إذا كان x وy لهما نفس أزواج المفتاح/القيمة وبنفس الترتيب والنوع |
س!= ذ | ليس متساويا | يُرجع صحيحًا إذا كانت x لا تساوي y |
س <> ص | ليس متساويا | يُرجع صحيحًا إذا كانت x لا تساوي y |
س!== ذ | ليست متطابقة | يُرجع صحيحًا إذا كانت x لا تساوي y |
توضح الأمثلة التالية نتائج مختلفة باستخدام بعض عوامل المصفوفة:
<?php $x = array ( " a " => " red " , " b " => " green " ) ; $ y = array ( " c " => " blue " , " d " => " Yellow " ) ; = $x + $y ; // دمج المصفوفات $x و$y var_dump ( $ z ) ; var_dump ( $ x == $ y ) ; var_dump ( $ x ! = $ y ) ; س !== $y ) ? >
عامل شرطي آخر هو عامل التشغيل "؟" (أو الثلاثي).
(expr1) ؟ (expr2) : (expr3)
القيمة عند تقييم expr1 إلى TRUE هي expr2، وعندما يتم تقييم expr1 إلى FALSE تكون القيمة expr3.
اعتبارًا من الإصدار PHP 5.3، أصبح من الممكن حذف الجزء الأوسط من العامل الثلاثي. التعبير expr1 ?: expr3 يُرجع expr1 إذا تم تقييم expr1 إلى TRUE وexpr3 بخلاف ذلك.
في المثال التالي، تم الحكم على أن طلب $_GET يحتوي على قيمة المستخدم إذا كان الأمر كذلك، فسيتم إرجاع $_GET['user']، وإلا فلن يتم إرجاع أي شيء:
<?php $ test = ' برنامج تعليمي للمبرمج ' // طريقة الكتابة العادية $username = isset ( $test ) ? $ test : ' Noone ' ; $username , PHP_EOL ; // PHP 5.3+ طريقة كتابة الإصدار $username = $test ? : ' none ' ; اسم المستخدم $ ، PHP_EOL ? >
دروس للمبرمجين دروس المبرمجين
ملاحظة: PHP_EOL هو حرف سطر جديد، متوافق مع الأنظمة الأساسية الأكبر حجمًا.
يوجد عامل دمج ??
إضافي في إصدار PHP7+.
<?php // في حالة عدم وجود $_GET['user']، قم بإرجاع "nobody"، وإلا قم بإرجاع قيمة $_GET['user'] $username = $_GET [ ' user ' ] ?? ' Noone ' ; // عامل تشغيل ثلاثي مماثل $username = isset ( $_GET [ ' user ' ] ) ? $_GET [ ' user ' ] : ' none ' ? >
يدعم PHP7+ عوامل المقارنة المدمجة، الأمثلة هي كما يلي:
<?php // نوع عدد صحيح صدى 1 <=> 1 ; // 0 صدى 1 <=> 2 ; // -1 صدى 2 <=> 1 ; // 1 // نوع النقطة العائمة صدى 1 .5 <=> 1 .5 ; صدى 1 .5 <=> 2 .5 ; صدى 2 .5 <=> 1 .5 ; // خيط صدى " أ " <=> " أ " // 0 صدى " أ " <=> " ب " // -1 صدى " ب " <=> " أ " // 1 ?>
يسرد الجدول التالي عوامل التشغيل من الأسبقية الأعلى إلى الأدنى. العوامل الموجودة في نفس السطر لها نفس الأسبقية، والاتجاه الذي يتم فيه دمجها يحدد ترتيب التقييم.
ملحوظة : اليسار = من اليسار إلى اليمين، اليمين = من اليمين إلى اليسار.
اتجاه ملزم | مشغل | معلومات إضافية |
---|---|---|
لا أحد | استنساخ جديد | استنساخ وجديد |
غادر | [ | صفيف () |
يمين | ++ -- ~ (int) (عائم) (سلسلة) (صفيف) (كائن) (منطقي) @ | الأنواع والزيادة/النقصان |
لا أحد | مثيل | يكتب |
يمين | ! | العوامل المنطقية |
غادر | */% | العوامل الحسابية |
غادر | + - . | العوامل الحسابية والسلسلة |
غادر | << >> | مشغلي البت |
لا أحد | == != === !== <> | عامل المقارنة |
غادر | & | عوامل البت والمراجع |
غادر | ^ | مشغلي البت |
غادر | | | مشغلي البت |
غادر | && | العوامل المنطقية |
غادر | || | العوامل المنطقية |
غادر | : | عامل ثلاثي |
يمين | = += -= *= /= .= %= &= |= ^= <<= >>= => | عامل المهمة |
غادر | و | العوامل المنطقية |
غادر | xor | العوامل المنطقية |
غادر | أو | العوامل المنطقية |
غادر | , | تستخدم في العديد من الأماكن |
في أسبقية عامل التشغيل، أو ||، && و، كلها عوامل تشغيل منطقية لها نفس التأثير، لكن أولوياتها مختلفة.
<?php // الأولوية: && > = > و // الأولوية: || > = > أو $ أ = 3 ; $ ب = خطأ ; أو $b ; var_dump ( $c ) ; // $c هنا هي القيمة int 3، وليست القيمة المنطقية الحقيقية $ d = $ a || . $ b ; ?>
نتيجة الإخراج للمثال أعلاه هي:
كثافة العمليات (3) منطقي (صحيح)
نشير بوضوح إلى ترتيب العمليات من خلال الاقتران بين الأقواس، بدلاً من الاعتماد على أسبقية المشغل والترابط، الأمر الذي يمكن أن يزيد عادةً من سهولة قراءة الكود.
<?php // عملية أولوية القوس $ a = 1 ; $ b = 2 ; $ c = 3 ;$ د ؛ صدى " n " ; $e = ( $a + $ b ) * $ c ; صدى $e ؛ صدى " ن " ? >
نتيجة الإخراج للمثال أعلاه هي:
79