اپراتورهای PHP 7 (بخش دوم)

PHP 7 Operators - Part 2

2 84

اپراتورهای PHP 7

در قسمت قبل گفتیم که اپراتورها (به انگلیسی: operator – تلفظ می شود: آپِرِیتِر) برای انجام عملیات های مختلف روی داده ها و متغیرها مورد استفاده قرار می گیرند. همچنین گفتیم که زبان PHP اپراتور هایش را در چند گروه دسته بندی کرده است:

  • اپراتورهای حسابی (برای عملیات های ریاضی)
  • اپراتورهای انتساب
  • اپراتورهای مقایسه ای
  • اپراتورهای افزایشی یا کاهشی
  • اپراتورهای منطقی
  • اپراتورهای رشته
  • اپراتورهای آرایه
  • اپراتورهای انتساب شرط

در قسمت قبلی با دسته های حسابی، انتساب و مقایسه ای آشنا شدیم و در این قسمت می خواهیم با بقیه ی آن ها آشنا شویم و به ادامه بحث آموزش اپراتورهای php بپردازیم. بنابراین بهتر است بدون مقدمه شروع کنیم.

اپراتورهای افزایشی/کاهشی

همانطور که از نام این اپراتورها مشخص است اپراتورهای افزایشی برای افزایش مقدار یک متغیر و اپراتورهای کاهشی برای کاهش مقدار آن مورد استفاده قرار می گیرند. جدول زیر شما را با این اپراتورها آشنا می کند:

اپراتور نام اپراتور توضیحات
++$x پیش-افزایشی مقدار x را یک واحد افزایش داده سپس آن را برمیگرداند.
$x++ پس-افزایشی ابتدا x را برمیگرداند، سپس مقدار آن را یک واحد اضافه می کند.
–$x پیش-کاهشی مقدار x را یک واحد کاهش داده سپس آن را برمیگرداند.
$x– پس-کاهشی ابتدا x را برمیگرداند، سپس مقدار آن را یک واحد کاهش می دهد.

برای پی بردن به تفاوت عملی این اپراتورها به دو مثال زیر توجه کنید:

مشاهده ی خروجی

در این مثال خروجی x برابر با 11 است. x در ابتدا 10 بوده است، یک واحد به آن اضافه شده و سپس به ما برگردانده می شود. حالا به مثال زیر نگاه کنید:

مشاهده ی خروجی

همانطور که مشاهده می کنید در این مثال خروجی x برابر با 10 است! چرا؟ به این دلیل که ابتدا x به ما برگردانده می شود و خروجی آن (10) نمایش داده می شود و سپس یک واحد به آن اضافه می شود. در این حالت x برای بقیه ی اسکریپت ما 11 خواهد بود بنابراین اگر چند خط پایین تر و بعد از چند عملیات دوباره از x خروجی بگیرید مقدار 11 خواهد بود. در واقع مقدار x در حال حاضر 11 است اما خروجی آن قبل از اینکه 11 بشود گرفته شده و به ما نمایش داده شده است.

اپراتورهای منطقی

اپراتور نام اپراتور مثال معنی مثال
and And $x and $y اگر x و y (یعنی یکی یا هر دو) برابر True باشند، خروجی نیز True می شود.
or Or $x or $y اگر x یا y (یعنی یکی از آنها) برابر True باشند، خروجی نیز True می شود.
xor Xor $x xor $y اگر x یا y برابر True باشند اما هر دو true نباشند (یعنی فقط یکی)، خروجی نیز True می شود.
&& And $x && $y معادل and است.
|| Or $x || $y معادل or است.
! Not !$x اگر x برابر true نباشد خروجی true خواهد بود.

مثال اول – and:

مشاهده ی خروجی

مثال دوم – or:

مشاهده ی خروجی

مثال سوم – not:

مشاهده ی خروجی

اپراتورهای رشته ها

زبان PHP دو اپراتور دارد که فقط برای کار با رشته ها طراحی شده اند. به جدول زیر نگاه کنید:

اپراتور نام اپراتور مثال معنی مثال
. (علامت نقطه) Concatenation (تلفیق) $txt1 . $txt2 تلفیق رشته های txt1 و txt2
.= Concatenation assignment

(انتساب تلفیق)

$txt1 .= $txt2 چسباندن txt2 به txt1

مثال اول – تلفیق:

مشاهده ی خروجی

مثال دوم – انتساب تلفیق:

مشاهده ی خروجی

همانطور که می بینید مثال اول دو رشته را ترکیب می کند اما مثال دوم یکی از آن ها را به دیگری می چسباند.

اپراتورهای آرایه ها

اپراتورهای زیر برای مقایسه ی آرایه ها به کار می روند:

اپراتور نام مثال معنی مثال
+ Union $x + $y ادغام x و y
== Equality (برابری) $x == $y اگر x و y جفت های key/value یکسان داشته باشند مقدار true را برمیگرداند.
=== Identity (برابری عینی) $x === $y اگر x و y جفت های key/value یکسان داشته باشند و این جفت ها ترتیب یکسانی داشته باشند و همچنین از یک نوع باشند مقدار true را برمیگرداند.
!= Inequality $x != $y اگر x و y برابر نباشند مقدار true را برمیگرداند.
<> Inequality $x <> $y دقیقا دستور قبلی است.
!== Non-identity $x !== $y اگر x و y برابری عینی نداشته نباشند مقدار true را برمیگرداند.

مثال اول – ادغام:

مشاهده ی خروجی

مثال دوم – عدم برابری عینی:

مشاهده ی خروجی

اپراتورهای انتساب شرط

این اپراتورها بر اساس یک شرط خاص مقداری را به متغیری منتسب می کنند. جدول زیر شما را با این دو اپراتور آشنا می کند:

اپراتور نام اپراتور مثال معنی مثال
?: Ternary $x = expr1 ? expr2 : expr3 مقدار x را برمیگرداند. اگر expr1 برابر با true باشد آنگاه مقدار X برابر با expr2 است اما اگر false باشد، مقدار x برابر expr3 خواهد بود.
?? Null coalescing $x = expr1 ?? expr2 مقدار x را برمیگرداند. اگر expr1 وجود داشته باشد آنگاه مقدار X برابر با expr1 است (نه NULL) اما اگر expr1 وجود نداشته باشد یا NULL باشد، مقدار x برابر expr2 خواهد بود.

مثال اول – اپراتور ترنری (Ternary):

مشاهده ی خروجی

مثال دوم – اپراتور Null coalescing:

مشاهده ی خروجی

به شما تبریک می گویم، با پایان آموزش اپراتورهای PHP رسیدید و با تمام اپراتورهای این زبان آشنا شدید! یادتان نرود که راه حل آموزش اپراتورهای php وتسلط واقعی بر آن ها، حل مثال و کدنویسی است.

ترتیبی که روکسو برای یادگیری مطالب سری آموزش PHP 7 به شما توصیه می‌کند:
2 نظر
  1. Mohsen
    0

    من این دو تا اپراتور اخری رو نمیفهمم

    1. امیر زوارمی
      0

      سلام دوست عزیز
      اپراتور Ternary رو یه حالت خلاصه ای از همون if میشه در نظر گرفت. در مثال بالا گفتیم:

      echo $status = (empty($user)) ? “anonymous” : “logged in”;

      گفتیم اگر متغیر user$ خالی بود (تابع empty) یعنی کاربر وارد حسابش نشده پس میگیم anonymous رو نشون بده در غیر این صورت logged in رو نمایش بده. توی این اپراتور اول شرط رو میگیم بعد میگیم اگه درست بود حالت اول و اگه غلط یا همون false بود حالت دوم رو در نظر بگیره. این حالت ها رو با علامت دو نقطه (:) از هم جدا کردیم.

      ———————————

      برای اپراتور Null coalescing هم همینطوریه فقط نحوه ی نگارشش و جزئیاتش فرق داره. دو تا مثال بالا رو توی صفحه ی خروجیشون باز کنید و مقایسه کنین. حتما متوجه میشید.

      اگه مثال های بیشتری برای این اپراتور ها میخواین از دو تا لینک زیر استفاده کنید:

      https://riptutorial.com/php/example/7164/null-coalescing-operator—–

      https://riptutorial.com/php/example/7608/ternary-operator—–

ارسال نظر

توجه:‌ آدرس ایمیل شما منتشر نخواهد شد.