در قسمت قبل گفتیم که اپراتورها (به انگلیسی: operator - تلفظ می شود: آپِرِیتِر) برای انجام عملیات های مختلف روی داده ها و متغیرها مورد استفاده قرار می گیرند. همچنین گفتیم که زبان PHP اپراتور هایش را در چند گروه دسته بندی کرده است:
در قسمت قبلی با دسته های حسابی، انتساب و مقایسه ای آشنا شدیم و در این قسمت می خواهیم با بقیه ی آن ها آشنا شویم و به ادامه بحث آموزش اپراتورهای php بپردازیم. بنابراین بهتر است بدون مقدمه شروع کنیم.
همانطور که از نام این اپراتورها مشخص است اپراتورهای افزایشی برای افزایش مقدار یک متغیر و اپراتورهای کاهشی برای کاهش مقدار آن مورد استفاده قرار می گیرند. جدول زیر شما را با این اپراتورها آشنا می کند:
اپراتور | نام اپراتور | توضیحات |
++$x | پیش-افزایشی | مقدار x را یک واحد افزایش داده سپس آن را برمیگرداند. |
$x++ | پس-افزایشی | ابتدا x را برمیگرداند، سپس مقدار آن را یک واحد اضافه می کند. |
--$x | پیش-کاهشی | مقدار x را یک واحد کاهش داده سپس آن را برمیگرداند. |
$x-- | پس-کاهشی | ابتدا x را برمیگرداند، سپس مقدار آن را یک واحد کاهش می دهد. |
برای پی بردن به تفاوت عملی این اپراتورها به دو مثال زیر توجه کنید:
<!DOCTYPE html> <html> <body> <?php $x = 10; echo ++$x; ?> </body> </html>
در این مثال خروجی x برابر با 11 است. x در ابتدا 10 بوده است، یک واحد به آن اضافه شده و سپس به ما برگردانده می شود. حالا به مثال زیر نگاه کنید:
<!DOCTYPE html> <html> <body> <?php $x = 10; echo $x++; ?> </body> </html>
همانطور که مشاهده می کنید در این مثال خروجی 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:
<!DOCTYPE html> <html> <body> <?php $x = 100; $y = 50; if ($x == 100 and $y == 50) { echo "Hello world!"; } ?> </body> </html>
مثال دوم - or:
<!DOCTYPE html> <html> <body> <?php $x = 100; $y = 50; if ($x == 100 or $y == 80) { echo "Hello world!"; } ?> </body> </html>
مثال سوم - not:
<!DOCTYPE html> <html> <body> <?php $x = 100; if ($x !== 90) { echo "Hello world!"; } ?> </body> </html>
زبان PHP دو اپراتور دارد که فقط برای کار با رشته ها طراحی شده اند. به جدول زیر نگاه کنید:
اپراتور | نام اپراتور | مثال | معنی مثال |
. (علامت نقطه) |
Concatenation (تلفیق) | $txt1 . $txt2 | تلفیق رشته های txt1 و txt2 |
.= |
Concatenation assignment
(انتساب تلفیق) |
$txt1 .= $txt2 | چسباندن txt2 به txt1 |
مثال اول - تلفیق:
<!DOCTYPE html> <html> <body> <?php $txt1 = "Hello"; $txt2 = " world!"; echo $txt1 . $txt2; ?> </body> </html>
مثال دوم - انتساب تلفیق:
<!DOCTYPE html> <html> <body> <?php $txt1 = "Hello"; $txt2 = " world!"; $txt1 .= $txt2; echo $txt1; ?> </body> </html>
همانطور که می بینید مثال اول دو رشته را ترکیب می کند اما مثال دوم یکی از آن ها را به دیگری می چسباند.
اپراتورهای زیر برای مقایسه ی آرایه ها به کار می روند:
اپراتور | نام | مثال | معنی مثال |
+ | 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 را برمیگرداند. |
مثال اول - ادغام:
<!DOCTYPE html> <html> <body> <?php $x = array("a" => "red", "b" => "green"); $y = array("c" => "blue", "d" => "yellow"); print_r($x + $y); // union of $x and $y ?> </body> </html>
مثال دوم - عدم برابری عینی:
<!DOCTYPE html> <html> <body> <?php $x = array("a" => "red", "b" => "green"); $y = array("c" => "blue", "d" => "yellow"); var_dump($x !== $y); ?> </body> </html>
این اپراتورها بر اساس یک شرط خاص مقداری را به متغیری منتسب می کنند. جدول زیر شما را با این دو اپراتور آشنا می کند:
اپراتور | نام اپراتور | مثال | معنی مثال |
?: | 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):
<!DOCTYPE html> <html> <body> <?php // if empty($user) = TRUE, set $status = "anonymous" echo $status = (empty($user)) ? "anonymous" : "logged in"; echo("<br>"); $user = "John Doe"; // if empty($user) = FALSE, set $status = "logged in" echo $status = (empty($user)) ? "anonymous" : "logged in"; ?> </body> </html>
مثال دوم - اپراتور Null coalescing:
<!DOCTYPE html> <html> <body> <?php // variable $user is the value of $_GET['user'] // and 'anonymous' if it does not exist echo $user = $_GET["user"] ?? "anonymous"; echo("<br>"); // variable $color is "red" if $color does not exist or is null echo $color = $color ?? "red"; ?> </body> </html>
به شما تبریک می گویم، با پایان آموزش اپراتورهای PHP رسیدید و با تمام اپراتورهای این زبان آشنا شدید! یادتان نرود که راه حل آموزش اپراتورهای php وتسلط واقعی بر آن ها، حل مثال و کدنویسی است.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.