هل المنطق المعقد ممكن في PHP؟ العمليات في PHP

سيغطي الدرس عبارات php الشرطية: عبارة if وعبارة Switch

يتم تمثيل عبارات PHP الشرطية بثلاث بنيات رئيسية:

  • عامل الحالة لو,
  • مشغل التبديل يُحوّل
  • و عامل ثلاثي.

دعونا نلقي نظرة فاحصة على كل واحد منهم.

PHP إذا البيان

الشكل 3.1. بيان IF الشرطي، نسخة قصيرة


أرز. 3.2. IF ELSE بناء الجملة الشرطي


أرز. 3.3. بناء الجملة الكامل للجملة الشرطية IF elseif

دعونا نلخص:

بناء الجملة الكامل:

إذا (الشرط) ( // إذا كان الشرط صحيحًا عامل التشغيل 1؛ عامل التشغيل 2؛ ) آخر إذا (شرط) ( عامل التشغيل 1؛ ... ) آخر ( // إذا كان الشرط خاطئًا عامل التشغيل 1؛ عامل التشغيل 2؛ )

  • يمكن بناء الجملة المختصرة لا تحتوي على أجزاء من جملة else ولا تحتوي على شرط elseif إضافي
  • بدلًا من الكلمة الوظيفية elseif، يمكنك كتابة else if (بشكل منفصل)
  • يمكن أن يكون هناك عدة صور أخرى في ملف واحد if build. سيتم تنفيذ أول تعبير elseif يساوي TRUE.
  • إذا كان هناك شرط elseif بديل، فيجب أن تأتي جملة else في آخر الجملة.

يمكن أن تستخدم العبارة الشرطية النقطتين: بدلاً من الأقواس المتعرجة. في هذه الحالة، ينتهي البيان بالكلمة المساعدة endif

أرز. 3.4. البيان الشرطي If و Endif في php

مثال:

if($x > $y): echo $x." أكبر من ".$y; elseif($x == $y): // عند استخدام ": "لا يمكنك الكتابة بشكل منفصل وإلا إذا كان echo $x." يساوي ".$y; else: echo $x." not > and not = ".$y; إنهاء إذا؛

مهم:عند استخدام النقطتين بدلاً من الأقواس المتعرجة في البناء، لا يمكن كتابة elseif في كلمتين!

العمليات المنطقية في الشرط

قد يحتوي شرط if الموجود بين قوسين على العمليات التالية:

مثال:تحقق من قيمة المتغير الرقمي: إذا كانت أقل من أو تساوي 10، قم بعرض رسالة "رقم أقل من أو يساوي 10"، وإلا قم بعرض رسالة "رقم أكبر من 10"


حل:

$رقم=15; إذا (رقم<=10) { echo "число меньше или равно 10"; } else { echo "число больше 10"; }

يمكن كسر كتل كود PHP، دعونا نلقي نظرة على مثال:

مثال:عرض كود HTML على الشاشة "أ يساوي 4"، إذا كان المتغير $a يساوي بالفعل 4


1 الحل:
1 2 3 4

2 الحل:

1 2 3 أ يساوي 4

أ يساوي 4

مهمة PHP 3_1:عرض ترجمة الألوان من الإنجليزية إلى الروسية، والتحقق من قيمة المتغير (الذي تم تعيين اللون فيه: $a="blue")


مهمة PHP 3_2:العثور على الحد الأقصى لعدد ثلاثة أرقام

عمليات المقارنة وقاعدة الكذب

يجب أن تحتوي بنية if الموجودة بين قوسين على تعبير أو متغير منطقي، والذي يعتبر من وجهة نظر جبر المنطق، ويعيد القيم سواء كانت صحيحة أو خاطئة

أولئك. متغير واحد يمكن أن يكون بمثابة شرط. لنلقي نظرة على مثال:

1 2 3 4 $أ = 1 ؛ إذا ($a) (صدى $a;)

$أ=1; إذا ($a) (صدى $a;)

في المثال، سيعتبر مترجم لغة PHP المتغير الموجود بين قوسين بمثابة قاعدة كذب:

قاعدة الكذب أو ما يعتبر باطلاً:

  • منطقي خطأ شنيع
  • صفر كامل ( 0 )
  • الصفر الحقيقي ( 0.0 )
  • خط فارغوسلسلة «0»
  • مصفوفة بدون عناصر
  • كائن بدون متغيرات
  • نوع خاص باطل

وبالتالي، في المثال قيد النظر، المتغير $a يساوي واحدًا، وبالتالي سيكون الشرط صحيحًا وسيرد عامل التشغيل $a؛ سيتم عرض قيمة المتغير.

مهمة PHP 3_3:يتم إعطاء متغير مع قيمة سلسلة. إذا كان a يساوي الاسم، فقم بالطباعة "مرحبا، اسمك!"، إذا كانت a تساوي قيمة فارغة، فسيتم إخراجها "مرحبا أيها الغريب!"

البنيات المنطقية AND وOR وNOT في العامل الشرطي

  1. في بعض الأحيان يكون من الضروري توفير عدة شروط في وقت واحد. ثم يتم الجمع بين الشروط العامل المنطقي AND — && :
  2. $أ=1; إذا ($a>0 || $a>1) (صدى "a > 0 أو a > 1"; )

  3. للإشارة إلى ما إذا كان الشرط خاطئا، استخدم العامل المنطقي NOT — ! :
  4. 1 2 3 4 $أ = 1 ؛ إذا (! ($أ< 0 ) ) { echo "a не < 0" ; }

    $أ=1; إذا (!($a<0)) { echo "a не < 0"; }

تبديل المشغل PHP

يستبدل عامل التبديل أو "التبديل" العديد من بنيات if المتتالية. ومن خلال القيام بذلك، فإنه يقارن متغيرًا واحدًا بقيم متعددة. وبالتالي، هذه هي الوسيلة الأكثر ملاءمة لتنظيم الفروع المتعددة.

بناء الجملة:

1 2 3 4 5 6 7 8 9 10 التبديل ($ متغير) (الحالة "value1" : عامل التشغيل 1؛ فاصل؛ الحالة "قيمة 2" : عامل التشغيل 2؛ استراحة؛ حالة "القيمة 3" : عامل التشغيل 3؛ فاصل؛ [الافتراضي: عامل التشغيل 4؛ فاصل؛ ])

التبديل($متغير)( الحالة "القيمة 1": المشغل 1; استراحة; الحالة "القيمة 2": المشغل 2; استراحة; الحالة "القيمة 3": المشغل 3; استراحة; )

  • يمكن للمشغل التحقق من قيم السلسلة (ثم يتم تحديدها بين علامتي الاقتباس) والقيم الرقمية (بدون علامات الاقتباس).
  • مطلوب بيان الاستراحة في البناء. يتم الخروج من البناء إذا كان الشرط صحيحًا وتم تنفيذ العامل المطابق للشرط. بدون فاصل، سيتم تنفيذ جميع بيانات الحالة بغض النظر عن حقيقتها.

أرز. 3.5. بيان التبديل المشروط


مثال:يتم إعطاء مجموعة بأسماء الذكور الكاملة. تحقق من العنصر الأول في المصفوفة، واعتمادًا على الاسم، قم بعرض تحية باسم قصير.


حل:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $names = array ("Ivan" , "Peter" , "Semyon" ) ; التبديل ($names [ 0 ] ) ( الحالة "Peter" : صدى "Hello, Petya!" ; استراحة ; الحالة "Ivan" : صدى "Hello, Vanya!" ; استراحة ; الحالة "Semyon" : صدى "Hi, Vanya! "؛ استراحة؛ الافتراضي: صدى "مرحبًا، أسماء $!"; استراحة ؛ )

$names=array("إيفان"،"بيتر"،"Semyon")؛ التبديل($names)( حالة "بيتر": صدى "مرحبًا، بيتيا!"؛ استراحة؛ حالة "إيفان": صدى "مرحبًا، فانيا!"؛ استراحة؛ حالة "سيميون": صدى "مرحبًا، فانيا!"؛ استراحة ؛ الافتراضي: صدى "مرحبًا، أسماء $!"؛ استراحة؛ )

مهمة PHP 3_4:

  • قم بإنشاء متغير $day وقم بتعيين قيمة رقمية عشوائية له
  • باستخدام بناء التبديل، طباعة العبارة "إنه يوم عمل"، إذا كانت قيمة المتغير $day تقع ضمن نطاق الأرقام من 1 إلى 5 (ضمناً)
  • اطبع العبارة "إنه يوم عطلة"، إذا كانت قيمة المتغير $day تساوي الرقمين 6 أو 7
  • اطبع العبارة "يوم مجهول"، إذا كانت قيمة المتغير $day لا تقع ضمن نطاق الأرقام من 1 إلى 7 (ضمناً)

أكمل الكود:

1 2 3 4 5 6 7 8 9 10 11 12 ... التبديل (...) (الحالة 1: الحالة 2: ... echo "إنه يوم عمل"; استراحة ؛ الحالة 6: ... الافتراضي: ...)

Switch(...)( الحالة 1: الحالة 2: ... صدى "إنه يوم عمل"؛ استراحة؛ الحالة 6: ... الافتراضي: ... )

PHP عامل التشغيل الثلاثي

مشغل ثلاثي، أي. مع ثلاثة معاملات، لديه بناء جملة بسيط إلى حد ما حيث يقع على يسار ? الشرط مكتوب، وعلى اليمين عاملان تفصل بينهما العلامة: ، على يسار الإشارة يتم تنفيذ العامل إذا كان الشرط صحيحا، وعلى يمين الإشارة: يتم تنفيذ العامل إذا كان الشرط صحيحا خطأ شنيع.

حالة؟ المشغل 1 : المشغل 2 ;

مرحبا عزيزي المبرمجين المبتدئين. دعونا نواصل دراسة العناصر التي تتكون منها.

في هذه المقالة سوف نتعرف على ما هي عوامل تشغيل php. في الواقع، لقد عرفنا بعضها منذ الصغر تقريبًا، لكننا نعرفها فقط كعلامات (+، -، =،!،؟).

في php، يُطلق عليهم جميعًا اسم المشغلين، وهو أمر منطقي تمامًا، لأنهم يقومون بإجراء أو عملية معينة.

يمكنك حتى القول أن جميع الأحرف القابلة للطباعة والتي ليست حرفًا أو رقمًا هي عوامل تشغيل في PHP. ولكن هذا ليس كل شيء، حيث أن هناك عوامل تتكون من أحرف.

لنبدأ بالترتيب.

العمليات الحسابية

يتم استخدام العوامل الحسابية لإجراء العمليات على الأرقام.

+ هو عامل الإضافة؛
— — مشغل الطرح؛
/ - مشغل القسم؛
* — عامل الضرب؛
% هو عامل الحصول على الباقي أثناء القسمة؛
++ — عامل الزيادة بمقدار واحد (الزيادة)؛
— — — النقصان بمقدار عامل واحد (النقصان)

عند الكتابة، عادة ما يتم وضع مسافة قبل المشغل وبعده. ويتم ذلك فقط لسهولة قراءة الكود، مع أن هذه المساحة لا تؤثر على أي شيء، ويمكنك الاستغناء عنها إذا كنت ترغب في ذلك.

تتكون التعابير المركبة وفق القواعد المتعارف عليها في الحساب، أي أن الضرب والقسمة لهما الأولوية على الجمع والطرح، وعندما يتواجد كلاهما في التعبير، يوضع الأخير بين قوسين.

صدى (6 + 7 ) * (7 + 8 ); // 195
?>

عند إجراء عملية قسمة عدد صحيح على عدد صحيح، في حالة الحصول على باقي، يتم تحويل النتيجة تلقائيًا إلى رقم حقيقي (رقم الفاصلة العائمة).

صدى 8/3 ؛ //2.66666666666
?>

يعتمد عدد الأرقام المطبوعة لعدد كسري على القيمة المحددة في توجيه الدقة الموجود في ملف php.ini. عادةً ما يكون هذا 12 حرفًا دون احتساب الفترة.

يتم استخدام عامل التشغيل % بشكل شائع لتحديد ما إذا كان أحد الأرقام قابلاً للقسمة على رقم آخر بدون باقي أم لا.

صدى 53328 % 4 ; //0
?>

يتم استدعاء العمليات الحسابية، باستثناء الزيادة والنقصان الثنائية، لأنها تنطوي على معاملين (مصطلح + مصطلح، توزيعات الأرباح / المقسوم عليه، وما إلى ذلك)

تسمى أفعال الزيادة والإنقاص أحادي، لأنها تنطوي على معامل واحد. هل هناك المزيد عملية مشروطة، والذي يتضمن ثلاثة معاملات.

تنطبق عوامل الزيادة (++) والتناقص (- -) على المتغيرات فقط.

عدد صحيح من النوع المتغير (أرقام صحيحة)

$التالي = 3 ;
صدى +$next; // 4
?>

سلسلة من النوع المتغير

$next = "اي بي سي";
صدى $التالي؛ // عبد
?>

يتم طباعة الحرف "d" بدلاً من الحرف "c" لأنه التالي في الأبجدية وقمنا بزيادة قيمة المتغير بمقدار واحد.

توضح الأمثلة الإجراءات مع الزيادة، وبنفس الطريقة يمكنك تنفيذ الإجراءات مع النقصان.

مشغلي Bitwise

تم تصميم عوامل تشغيل Bitwise للعمل مع البيانات الثنائية. إذا كان أي شخص ليس لديه فكرة عما هو عليه، سأشرح. الأرقام الثنائية هي أرقام مثل 1001000011100000111000.

نظرًا لأن هذه البيانات لا تُستخدم أبدًا تقريبًا في تطوير مواقع الويب، فلن نتناولها بالتفصيل. سأريكم كيف تبدو، بحيث عندما تواجه مثل هذه الرموز يمكنك أن تتخيل ما تتعامل معه.

& - اتصال بالبت و (و)؛
~ - نفي البت (لا)؛
| - اتحاد البت OR (أو)؛
^ — الحذف على مستوى البت OR (xor);
<< — сдвиг влево битового значения операнда;
>> - تحويل قيمة البت للمعامل إلى اليمين؛

من المحتمل جدًا أن تواجه هؤلاء المشغلين، حيث يتم استخدام البيانات الثنائية على نطاق واسع في تطوير برامج رسومات الكمبيوتر. ولكن لدراستها، إذا كان شخص ما يحتاج إليها، فسيتعين عليه أن يأخذ دورة منفصلة على مورد آخر.

عوامل المقارنة

عوامل المقارنة هي عوامل منطقية وتستخدم لمقارنة المتغيرات. لا يمكن مقارنة المصفوفات والكائنات باستخدامها.

> - عامل التشغيل أكبر من؛
=> - عامل أكبر من أو يساوي؛
< — оператор меньше;
<= — оператор меньше или равно;
== — عامل المساواة؛
!= — عامل المتباينة؛
=== — عامل التكافؤ (قيمة ونوع المتغير متساويان)؛
!== — عامل عدم التكافؤ؛

ونتيجة للمقارنة، يتم عرض إما على الشاشة، وهو ما يتوافق مع صحيح (صحيح)، أو سلسلة فارغة، والتي تتوافق مع خطأ (خطأ).

صدى 1 > 0 ; // 1
صدى 1< 0 ; // пустая строка
صدى 1 => 0 ; // 1
صدى 1 == 1 ; // 1
?>

لذلك، لا يتم استخدام عوامل المقارنة بمفردها أبدًا. الغرض الرئيسي منها هو العمل جنبًا إلى جنب مع عبارة if.

العبارات الشرطية if، else، elseif.

تسمى العوامل الشرطية بهذا الاسم لأنها مصممة لاختبار شرط معين، اعتمادًا على الإجراء المحدد الذي يتم تنفيذه.

تأخذ عبارة if متغيرًا منطقيًا، أو تعبيرًا، كوسيطة. إذا كان الشرط صحيحا، يتم عرض النتيجة، وإذا لم يكن صحيحا، يتم عرض سطر فارغ.



إذا (التالي< $nexT)
{
صدى "فرصة هطول الأمطار"؛ // إخراج هطول الأمطار ممكن
}
?>

$next = "رطوبة الهواء 80%";
$nexT = "رطوبة الهواء 90%";
إذا ($التالي > $nexT)
{
صدى "فرصة هطول الأمطار"؛ // اطبع سطرًا فارغًا
}
?>

إذا كان البرنامج بحاجة إلى تحديد إجراءين، سيتم تنفيذ أحدهما إذا كانت القيمة صحيحة، والآخر إذا كانت القيمة خاطئة، فسيتم استخدام عبارة else مع عبارة if

$next = "رطوبة الهواء 80%";
$nexT = "رطوبة الهواء 90%";
إذا ($التالي > $nexT)
{
صدى "فرصة هطول الأمطار"؛
}
آخر
{
echo "لا يتوقع هطول أمطار";
}
?>

في هذه الحالة، سيتم عرض "هطول الأمطار غير متوقع"، وإذا قمت في التعبير بتغيير علامة "أكثر" إلى "أقل"، فسيتم عرض "هطول الأمطار ممكن". هذه هي الطريقة التي تتحقق بها العوامل الشرطية من الشرط وتخرج النتيجة الصحيحة وفقًا له.

في كثير من الأحيان تكون هناك حاجة لتعيين أكثر من شرطين، وبعد ذلك، للتحقق منهم بالتسلسل، يتم استخدام عامل التشغيل elseif.



إذا ($التالي > $nexT)
{
صدى "أرى"؛
}
إليسيف ($التالي<= $nexT)
{
صدى "الثلج" ؛
}
إلسيف ($التالي >= $nexT)
{
صدى "المطر" ؛
}
إلسيف (التالي == $التالي)
{
صدى "الجفاف" ؛
}
آخر
{
صدى "فرصة هطول الأمطار"؛
}
?>

سيقوم هذا البرنامج بإخراج "الثلج". إذا لم يتطابق أي من الشروط، فسيتم عرض "فرصة هطول الأمطار".

يمكن أن تحتوي عبارة if على العدد الذي تريده من كتل elseif، ولكن عبارة else واحدة فقط.

يُسمح بخيار تسجيل بديل - بدون الأقواس المتعرجة. في هذه الحالة، تنتهي أسطر عبارات if، else، elseif بنقطتين، وينتهي البناء بأكمله بالكلمة الأساسية (المشغل) endif.

$next = "رطوبة الهواء 50%";
$nexT = "رطوبة الهواء 60%";
إذا (التالي<= $nexT):

صدى "الثلج" ؛

إلسيف ($التالي >= $nexT):

صدى "المطر" ؛

إلسيف ($التالي == $nexT):

صدى "الجفاف" ؛

آخر:

صدى "فرصة هطول الأمطار"؛
إنهاء إذا ؛
?>

العوامل المنطقية

تشبه العوامل المنطقية عوامل تشغيل البت. الفرق بينهما هو أن الأول يعمل مع المتغيرات المنطقية، والثاني مع الأرقام.

يتم استخدام العوامل المنطقية في الحالات التي تحتاج فيها إلى الجمع بين عدة شروط، مما سيؤدي إلى تقليل عدد عبارات if، مما يقلل بدوره من احتمالية حدوث أخطاء في التعليمات البرمجية.

&& - اقتران التوصيل AND؛
و- أيضًا، ولكن بأولوية أقل؛
|| - فصل الاقتران OR؛
أو - أيضًا OR، ولكن بأولوية أقل؛
xor - حصريًا أو؛
! - إنكار؛

الأولوية المنخفضة تعني أنه في حالة وجود كلا العاملين، يتم تنفيذ العامل ذي الأولوية الأعلى أولاً.

في المستقبل، باستخدام أمثلة البرامج النصية الأكثر تعقيدا، سنتناول العوامل المنطقية بمزيد من التفصيل.

مهمة تشغيل

عامل التعيين = يعين قيمة المعامل الأيمن إلى المعامل الأيسر.

$التالي = "مرحبا"
صدى "مرحبًا" // مرحبًا
?>

نقطة المشغل

يفصل عامل النقطة الجزء الصحيح من الرقم عن الجزء الكسري، ويجمع عدة سلاسل ورقمًا في سلسلة واحدة كاملة.

$التالي = 22 ;
صدى "اليوم بعد" .$next. "الصقيع متوقع"؛ // اليوم بعد 22 صقيعًا متوقعًا
?>

عامل الأقواس

كما هو الحال في الرياضيات، يعطي عامل الأقواس الأولوية للإجراء الموجود بداخلها.

يتم تنفيذ البيانات الموجودة بين قوسين أولاً، ثم الباقي.

مشغل الأقواس المتعرجة

هناك ثلاث طرق، أو حتى أنماط، لوضع الأقواس المتعرجة في PHP.

1. نمط BSD - تتم محاذاة الأقواس إلى اليسار.

إذا (التالي)
{

}

2. نمط جنو - تتم محاذاة الأقواس بمسافة بادئة من الحافة اليسرى

إذا (التالي)
{
صدى "مرحبًا عزيزي المبرمجين المبتدئين"؛
}

3. نمط K&R - يتم فتح القوسين على سطر المشغل

إذا (التالي)(
صدى "مرحبًا عزيزي المبرمجين المبتدئين"؛
}

منذ البداية، تحتاج إلى اختيار أحد الأنماط وفي المستقبل، عند كتابة البرامج النصية، استخدمه فقط. علاوة على ذلك، لا يهم على الإطلاق النمط الذي تفضله. ومن المهم أن تكون موحدة في جميع أنحاء البرنامج.

أعتقد أن هذا يكفي في الوقت الحالي. من حيث المبدأ، ليس فقط العلامات، ولكن أيضًا الوظائف والعناصر الأخرى يمكن أن تكون عوامل تشغيل، لذلك من الصعب جدًا إدراجها جميعًا، ولا فائدة من ذلك.

يكفي أن يكون لديك فكرة عن الأساسيات الأساسية. وسنقوم بتحليل الباقي باستخدام الأمثلة العملية.

رجل إيرلندي يتجول في مطار شيريميتيفو بالبكاء. قرر أحد الموظفين التعاطف:
- هل تشتاق إلى وطنك؟
- مُطْلَقاً. لقد فقدت للتو جميع أمتعتي
- كيف يمكن حصول هذا؟
- أنا لا أفهم نفسي. يبدو أنني قمت بتوصيل القابس بشكل صحيح

لذلك، نحن نعرف بالفعل كيفية تنفيذ التعليمات البرمجية التي تلبي شرطًا معينًا. ولكن حتى هذه اللحظة لا يمكن أن يكون هناك سوى شرط واحد. ماذا لو كان يجب تنفيذ الكود إذا تم استيفاء عدة شروط في وقت واحد؟

لحل هذه المشكلة، هناك عوامل منطقية:

= 5 && السعر بالدولار<= 10) echo "Это число находится между 5 и 10"; ?>

يُطلق على عامل التشغيل && أيضًا اسم منطقي و، يحول القيم الموجودة على اليسار واليمين إلى نوع منطقي، ثم يقوم بنفسه بإرجاع قيمة منطقية: صحيح إذا كان اليسار واليمين صحيحين، أو خطأ إذا كان أحد الشروط خاطئًا.

بمعنى آخر، إذا كان كلا الشرطين صحيحًا، فسيرجع عامل التشغيل && صحيحًا. وهذا ما يعكسه اسم المشغل.

المشغل || أو منطقي أويُرجع صحيحًا عندما يكون أحد الشرطين على الأقل صحيحًا:

5 || 1 > 2) echo "تم استيفاء الشرط."; ?>

في الكود أعلاه، سيتم تنفيذ أمر الصدى نظرًا لتحقق أحد الشروط.

جميع العوامل المنطقية في PHP

بين عوامل التشغيل && و، وكذلك بين || أو هناك اختلاف بسيط - ترتيب التنفيذ.

كما تعلمون، الضرب له أولوية أعلى من الجمع. لذلك، فإن عوامل التشغيل و و أو لها أولوية أقل من عامل التخصيص =. ويمكن رؤية النتيجة في المثال التالي:

غريب، أليس كذلك؟ نظرًا لأن y = له أولوية أعلى، فسوف تفسر PHP الكود على النحو التالي:

($var = true) وخطأ؛

أولئك. أولاً، يقوم بتعيين $var على true ثم يقوم بإجراء عملية true وfalse، وهي عملية لا معنى لها لأنها لا تؤثر على قيمة المتغير.

يوجد أدناه جدول بأولويات المشغل. لقد التقيت بالفعل ببعض منهم. كلما كان عامل التشغيل أعلى في الجدول، زادت أولويته.

  • ++ -- ~ (int) (عائم) (سلسلة) (صفيف) (كائن) (منطقي) @
  • * / %
  • + - .
  • < <= > >=
  • == != === !== <> <=>
  • ؟ : (المشغل الثلاثي)
  • = += -= *= **= /= .= %= &= |= ^= <<= >>=

يمكننا الآن تحديد أن أسبقية عوامل المقارنة (==، !=، وما إلى ذلك) أعلى من أسبقية العوامل المنطقية. ستكون هذه المعلومات مفيدة لنا لإكمال المهمة.


الشيء الرئيسي في عمل هذا المشغل هو الحالة. إذا ترجمت من اللغة الإنجليزية يعني لو. يتم قبول الشرط كحجة (ما بين قوسين). يمكن أن يكون الشرط تعبيرًا منطقيًا أو متغيرًا منطقيًا. وببساطة، فإن معنى التعبير سيكون كما يلي:

إذا (الشرط)(
تم استيفاء الشرط، افعل هذا
}
آخر
{
لم يتم استيفاء الشرط، افعل ذلك بشكل مختلف
}
آمل أن يكون منطق العملية المشروطة واضحًا. الآن دعونا نلقي نظرة على مثال.

$أ = 5؛
$ب = 25؛

// الآن انتبه! الحالة: إذا كان $b أكبر من $a
// علامات > و< , как и в математике, обозначают больше и меньше
إذا($ب > $a)
{
// إذا تم استيفاء الشرط، فقم بهذا الإجراء
صدى "$b أكبر من $a";
}
آخر
{
// إذا لم يتم تنفيذه، فهذا
صدى "$a أكبر من أو يساوي $b";
}
?>
توضيح تحميل المصادر
ونتيجة لذلك، سيتم إخراج البرنامج النصي 25 أكثر من 5. المثال بسيط للغاية. آمل أن يكون كل شيء واضحا. الآن أقترح النظر في موقف أكثر تعقيدا، حيث يجب استيفاء عدة شروط. كل شرط جديد سوف يحتوي على بعد الشرط الرئيسي لو()- مساعد، وهو مكتوب باسم وإلا إذا (). وفي النهاية سيكون الأمر كالمعتاد آخر.

مهمة:يتم إجراء الاختبار في المدرسة. ويحتاج البرنامج إلى حساب الدرجة ومعرفة شروط الحصول على كل درجة ودرجة الطالب نفسها. دعونا نرى كيف نكتب هذا، ولا تنسوا قراءة التعليق.

اختبار $ = 82؛ // لنفترض أن أحد الطلاب كتب اختبارًا حصل على 82 نقطة

// اكتب الشرط الأول للخمسة
إذا(اختبار $> 90)
{
// إذا تم استيفاء الشرط، فقم بهذا الإجراء.
صدى "التقييم 5" ؛
}
// علامة && تعني "والاتحاد"، وهو ما يعني استيفاء الشرط إذا كان كلاهما صحيحًا
// أي أن النتيجة أقل من 91 وأكثر من 80، ثم 4. وإلا يتم قراءة الشروط بشكل أكبر
وإلا إذا ($test< 91 && $test > 80)
{
صدى "التقييم 4" ؛
}
وإلا إذا ($test< 81 && $test > 70)
{
صدى "التقييم 3" ؛
}
آخر
{
صدى "يجب أن نكتب الاختبار مرة أخرى...";
}
?>
توضيح تحميل المصادر
يتلقى طالبنا الذي لديه الوقت للراحة وكتابة اختبار عادي تصنيف 4! آمل أن يكون مبدأ التشغيل واضحا.

من الممكن أيضًا تسجيل عملية عملية مشروطة لفترة وجيزة، عندما تحتاج إلى إجراء فقط في حالة استيفاء الشرط.

$العمر = 19؛ // متغير مع العمر

إذا (العمر > 17)(
صدى "هذا كل شيء! يمكنني أن أفعل ما أريد! لقد بلغت بالفعل $age!";
}
مثال جيد جدًا على التدوين القصير للعملية الشرطية. آخرليس من الضروري أن أكتب.

عوامل المقارنة في PHP

مبدأ تشغيل العملية المشروطة واضح. ولكن، كما تفهم، هناك العديد من الطرق للمقارنة. دعونا نلقي نظرة على الجدول أدناه مع عوامل المقارنة.

نتيجة اسم المثال
$a == $b يساوي صحيحًا إذا كان $a يساوي $b
$a === $b مطابق لـ True إذا كان $a يساوي $b وكان كلا المتغيرين من نفس النوع
$a != $b لا يساوي True إذا كان $a لا يساوي $b
$a === $b غير مطابق لـ True إذا كان $a لا يساوي $b وكلا النوعين ليسا متماثلين
$a > $b أكبر من True إذا كان $a أكبر من $b
$أ< $b Меньше чем True, если $a меньше, чем $b
$a >= $b أكبر من أو يساوي True إذا كان $a أكبر من أو يساوي $b
$أ<= $b Меньше или равно True, если $a меньше или равно $b
الآن دعونا نلقي نظرة على المشغلين مع الأمثلة:

// خلافًا للعادة = يعني إسناد قيمة لمتغير، و== يساوي
إذا ($أ == 5)(
صدى "$a هو 5"; // ستطبع "5 يساوي 5"
) آخر (
صدى "$a لا يساوي 5";
}

إذا ($a != 6)(
صدى "$a لا يساوي 6"; // سيطبع "5 لا يساوي 6". ضروري في حالة الرفض
) آخر (
صدى "$a يساوي بطريقة ما 6";
}

// مع المزيد والأقل أعتقد أن كل شيء واضح. ولذلك فإن المثال أكثر تعقيدا
إذا (أ<= 6){
echo "$a أقل من أو يساوي 6"; // ستتم طباعة "5 أقل من أو يساوي 6"
) آخر (
صدى "$a أكبر من 6";
}

PHP العوامل المنطقية

هناك أوقات تحتاج فيها إلى مقارنة ليس متغيرًا واحدًا، بل متغيرين أو أكثر في نفس الوقت في حالة واحدة. لهذا هناك العوامل المنطقية.

نتيجة اسم المثال
$a و $b منطقية "و" TRUE إذا كان كل من $a و $b صحيحين.
$a أو $b منطقية "أو" TRUE إذا كان $a أو $b هو TRUE.
$a xor $b حصري "أو" TRUE إذا كان $a أو $b هو TRUE، ولكن ليس كليهما.
! $a نفي القيمة TRUE إذا لم يكن $a صحيحًا.
$a && $b منطقية "و" TRUE إذا كان كل من $a و $b صحيحين.
$ا || $b منطقية "أو" TRUE إذا كان $a أو $b هو TRUE.
لقد لاحظنا ذلك بالفعل بالنسبة للعمليات وو أوهل هناك مشغلين إضافيين؟ يتم ذلك من أجل تحديد أولويات عمليات المقارنة المعقدة. في الجدول، يتم إدراج العوامل المنطقية حسب الأولوية: من الأصغر إلى الأكبر، أي، على سبيل المثال، || له أولوية أعلى من أو.

هيا لنذهب إلى الأمثلة

$أ = 5؛
$ب = 6؛
$ج = 7؛

// الشرط: إذا كان 5 لا يساوي 6 (صحيح) و6 لا يساوي 7 (صحيح)
إذا (أ< 6 && $b != $c){
صدى "في الواقع!"؛ // سوف يطبع "في الواقع!" لأن كلا الشرطين صحيح
) آخر (
echo "أحد الشروط غير صحيح";
}

// الشرط: إذا كان 6 لا يساوي 6 (خطأ) أو 6 لا يساوي 7 (صحيح)
إذا ($ب != 6 || $b != $c)(
صدى "هذا كل شيء!"؛ // سيعرض "هذا كل شيء!"، لأن واحد على الأقل من الشروط صحيح
) آخر (
صدى "كلا الشرطين خاطئان"؛
}

مشغل ثلاثي

أقترح عليك العودة إلى مسألة الكود الثلاثي لاحقًا. لا يسعني إلا أن أذكر ذلك، لأنه تصميم مهم يقلل بشكل كبير من حجم الكود. أقترح عليك إلقاء نظرة على الكود على الفور.

جوهر الكود:(حالة) ؟ قيمة إذا كان صحيحا: قيمة إذا كان خطأ

وبالتالي، فإننا نختصر عبارة if. ومع ذلك، هذه العملية صالحة فقط عند تعيين قيم لمتغير. الآن دعونا نلقي نظرة على المثال النهائي.

// مثال على استخدام المعامل الثلاثي
$settings = (فارغة($_POST["settings"])) ؟ "الافتراضي" : $_POST["الإعدادات"];

// الكود أعلاه مشابه للكتلة التالية باستخدام if/else
إذا (فارغة($_POST["الإعدادات"])) (
إعدادات $ = "افتراضي"; // إذا لم يتم نقل أي شيء، فاتركه كـ "افتراضي"
) آخر (
$settings = $_POST["settings"]; // إذا تم تمريره، فسيتم تعيين القيمة التي تم تمريرها إلى $settings.
}
?>
اقرأ التعليقات على الكود ويجب أن يكون كل شيء واضحًا.

شكرًا لكم على اهتمامكم!


آخر تحديث: 11/1/2015

في PHP يمكننا استخدام عوامل تشغيل مختلفة: حسابية ومنطقية وما إلى ذلك. دعونا نلقي نظرة على كل نوع من العمليات.

عمليات حسابية

    + (عملية الإضافة)

    على سبيل المثال، $a + 5

    - (عملية الطرح)

    على سبيل المثال، $a - 5

    * (عمليه الضرب)

    على سبيل المثال، $a*5

    / (قسم)

    على سبيل المثال، $a / 5

    % (الحصول على باقي القسمة)

    على سبيل المثال: $a=12; صدى $a % 5; // يساوي 2

    ++ (زيادة/زيادة القيمة بمقدار واحد)

    على سبيل المثال، ++$أ

    من المهم أن نفهم الفرق بين التعبيرين ++$a و $a++ . على سبيل المثال:

    $أ=12; $ب=++$أ; // $b يساوي 13 echo $b;

    هنا، أولاً، يضاف واحد إلى قيمة المتغير $a، ومن ثم يتم مساواة قيمته بالمتغير $b. سيكون الأمر مختلفًا إذا بدا التعبير بالشكل التالي: $b=$a++; . هنا، أولاً كانت قيمة المتغير $a مساوية للمتغير $b، ومن ثم تم زيادة قيمة المتغير $a.

    -- (إنقاص/إنقاص القيمة بمقدار واحد)

    على سبيل المثال --$a . وأيضاً، كما في حالة الزيادة، هناك نوعان من التسجيل: --$a و $a--

مشغلي التعيين

    يساوي متغير بقيمة محددة: $a = 5

    الإضافة تليها التنازل عن النتيجة. على سبيل المثال: $a=12; $أ += 5; صدى $a؛ // يساوي 17

    الطرح يليه تعيين النتيجة. على سبيل المثال: $a=12; $a -= 5; صدى $a؛ // يساوي 7

    الضرب متبوعًا بتعيين النتيجة: $a=12; $a *= 5; صدى $a؛ // يساوي 60

    القسمة متبوعة بتعيين النتيجة: $a=12; $أ /= 5; صدى $a؛ // يساوي 2.4

    قم بتوصيل الصفوف وتعيين النتيجة. ينطبق على سطرين. إذا كانت المتغيرات لا تخزن سلاسل، بل أرقامًا على سبيل المثال، فسيتم تحويل قيمها إلى سلاسل ثم يتم تنفيذ العملية: $a=12; $أ .= 5; صدى $a؛ // يساوي 125 // مطابق لـ $b="12"; $ب .="5"; // يساوي 125

    الحصول على باقي القسمة ومن ثم تعيين النتيجة: $a=12; $a %= 5; صدى $a؛ // يساوي 2

عمليات المقارنة

تُستخدم عمليات المقارنة عادةً في الهياكل الشرطية عندما يكون من الضروري مقارنة قيمتين وتنفيذ إجراءات معينة اعتمادًا على نتيجة المقارنة. تتوفر عمليات المقارنة التالية.

    يقارن عامل المساواة بين قيمتين، وإذا كانتا متساويتين، فسيتم إرجاع صحيح، وإلا فسيتم إرجاع خطأ: $a == 5

    يقارن عامل الهوية أيضًا قيمتين، وإذا كانتا متساويتين، يُرجع صحيحًا، وإلا يُرجع خطأ: $a === 5

    يقارن بين قيمتين، وإذا لم تكونا متساويتين، فسيتم إرجاع صحيح، وإلا فسيتم إرجاع خطأ: $a != 5

    يقارن بين قيمتين، وإذا لم تكونا متساويتين، فسيتم إرجاع صحيح، وإلا فسيتم إرجاع خطأ: $a !== 5

    يقارن بين قيمتين، وإذا كانت الأولى أكبر من الثانية، فسيتم إرجاع صحيح، وإلا فسيتم إرجاع خطأ: $a > 5

    يقارن قيمتين، وإذا كانت الأولى أقل من الثانية، فسيتم إرجاع صحيح، وإلا فسيتم إرجاع خطأ: $a< 5

    يقارن بين قيمتين، وإذا كانت الأولى أكبر من أو تساوي الثانية، فسيتم إرجاع صحيح، وإلا فسيتم إرجاع خطأ: $a >= 5

    يقارن بين قيمتين، وإذا كانت الأولى أقل من أو تساوي الثانية، فسيتم إرجاع صحيح، وإلا فسيتم إرجاع خطأ: $a<= 5

عامل المساواة والهوية

يقوم كلا العاملين بمقارنة تعبيرين ويعودان صحيحًا إذا كان التعبيران متساويين. ولكن هناك اختلافات بينهما. إذا كانت عملية المساواة تأخذ قيمتين من أنواع مختلفة، فسيتم تقليلهما إلى واحدة - تلك التي يجدها المترجم الأمثل. على سبيل المثال:

من الواضح أن المتغيرات تخزن قيمًا مختلفة من أنواع مختلفة. ولكن عند مقارنتها، سيتم تخفيضها إلى نفس النوع - رقمي. وسيتم تقليل المتغير $a إلى الرقم 22. وفي النهاية، سيكون كلا المتغيرين متساويين.

أو على سبيل المثال، ستكون المتغيرات التالية أيضًا متساوية:

$أ = خطأ؛ $ب = 0;

لتجنب مثل هذه المواقف، يتم استخدام عملية التكافؤ، والتي تأخذ في الاعتبار ليس فقط القيمة، ولكن أيضًا نوع المتغير:

$a = "22a"; $ب = 22؛ if($a===$b) echo "يساوي"; آخر صدى "غير متساو"؛

الآن لن تكون المتغيرات متساوية.

تعمل عوامل المتباينة != و !== بشكل مشابه.

العمليات المنطقية

تُستخدم العمليات المنطقية عادةً للجمع بين نتائج عمليتين للمقارنة. على سبيل المثال، نحتاج إلى تنفيذ إجراء معين إذا تحققت عدة شروط. تتوفر العمليات المنطقية التالية:

    يُرجع صحيحًا إذا كانت كلتا عمليتي المقارنة تُرجع صحيحًا، وإلا تُرجع خطأ: $a == 5 && $b = 6

    مشابه للعملية &&: $a == 5 و $b > 6

    يُرجع صحيحًا إذا كانت عملية مقارنة واحدة على الأقل تُرجع صحيحًا، وإلا تُرجع خطأ: $a == 5 || $ب = 6

    مشابهة للعملية || : $أ< 5 or $b > 6

    يُرجع صحيحًا إذا كانت عملية المقارنة تُرجع خطأ: !($a >= 5)

    يُرجع صحيحًا إذا كانت إحدى القيم صحيحة. إذا كان كلاهما صحيحًا أو لم يكن أي منهما صحيحًا، فسيتم إرجاع خطأ. على سبيل المثال: $a=12; $ب=6; إذا($a xor $b) echo "صحيح"; وإلا صدى "خطأ"؛

    هنا ستكون نتيجة العملية المنطقية خاطئة لأن كلا المتغيرين لهما قيمة محددة. دعونا نغير الرمز:

    $أ=12; $ب=NULL; إذا($a xor $b) echo "صحيح"; وإلا صدى "خطأ"؛

    هنا ستكون النتيجة صحيحة بالفعل، حيث لم يتم تعيين قيمة متغير واحد. إذا كان للمتغير قيمة NULL، فسيتم التعامل مع قيمته في العمليات المنطقية على أنها خطأ

عمليات البت

يتم تنفيذ عمليات البت على البتات الفردية للرقم. يتم اعتبار الأرقام في التمثيل الثنائي، على سبيل المثال، 2 في التمثيل الثنائي هو 010، الرقم 7 هو 111.

    & (الضرب المنطقي)

    يتم إجراء الضرب بالبت، وإذا كان كلا المعاملين لهما قيم بت تساوي 1، فإن العملية ترجع 1، وإلا يتم إرجاع الرقم 0. على سبيل المثال: $a1 = 4; //100 $b1 = 5; //101 صدى $a1 & $b1; // يساوي 4

    هنا الرقم 4 في النظام الثنائي هو 100، والرقم 5 هو 101. اضرب الأرقام شيئًا فشيئًا واحصل على (1*1، 0*0، 0*1) = 100، أي الرقم 4 في النظام العشري شكل.

    | (إضافة منطقية)

    على غرار الضرب المنطقي، يتم تنفيذ العملية أيضًا على أرقام ثنائية، ولكن الآن يتم إرجاع رقم واحد إذا كان هناك رقم واحد على الأقل في رقم معين يحتوي على رقم واحد. على سبيل المثال: $a1 = 4; //100 $b1 = 5; //101 صدى $a1 | $b1; // يساوي 5

    ~ (النفي المنطقي)

    تقلب جميع البتات: إذا كانت قيمة البت 1، فإنها تصبح صفرًا، والعكس صحيح. $ب = 5؛ صدى ~$ب;

    س<

    x >>y - يقوم بإزاحة الرقم x إلى اليمين بأرقام y. على سبيل المثال، 16 >>1 يزيح 16 (وهو 10000 في النظام الثنائي) مكانًا واحدًا إلى اليمين، مما يؤدي إلى 1000 أو 8 في النظام العشري

سلاسل مترابطة

يتم استخدام عامل النقطة لتسلسل السلاسل. على سبيل المثال، دعونا نربط عدة خطوط:

$a="مرحبا"; $b="العالم"; صدى $أ . $ب. "!"؛

إذا كانت المتغيرات تمثل أنواعًا أخرى غير السلاسل، مثل الأرقام، فسيتم تحويل قيمها إلى سلاسل ثم تحدث عملية تسلسل السلسلة أيضًا.



 

قد يكون من المفيد أن تقرأ: