Language Reference
PHP Manual

عبارت‌ها

عبارات مهم‌ترین بخش سازنده PHP است در PHP هر چیزی که نوشته می‌شود عبارت است. ساده‌ترین و در عین حال دقیقترین تعریف برای عبارت این است که عبارت هر چیزی است که مقدار داشته باشد.

اصلی‌ترین شکل عبارات ثابت‌ها و متغیرها هستند. وقتی شما "$a = 5" می‌نویسید مقدار '5' را در $a وارد می‌نمایید. '5' واضح است که مقدر ۵ دارد (در این حالت '5' یک ثابت صحیح است).

پس از این انتصاب شما انتظار دارید مقدار $a برابر با 5 باشد بنابراین زمانی که می‌نویسید $b = $a شما انتظار دارید همانند عبارت $b = 5 عمل نماید. به عبارت دیگر $a یک عبارت با مقدار 5 است. اگر هم چیز درست عمل نماید همین اتفاق خواهد افتاد.

مثال‌های پیچیده‌تر برای عبارت توابع هستند. برای نمونه تابع زیر را در نظر بگیرید:

<?php
function foo ()
{
    return 
5;
}
?>

اگر شما با با مفهو توابع آشنا باشید (اگر نیستید به فصل درباره توابع نگاه کنید) شما هنگام تایپ نمودن $c = foo() فرض خواهید کرد که همانند نوشتن عبارت $c = 5 است و حق نیز با شما است. توابع عباراتی هستند که مقدار آنها مقدار بازگردانده شده توسط تابع است. با توجه به این که foo() مقدار 5 را بازمی‌گرداند مقدار عبارت 'foo()' برابر با 5 است. معمولا توابع تنها یک مقدار ثابت را باز نمی‌گردانند بلکه آن را محاسبه می‌نمایند.

البته مقادیر در PHP حتما نباید مقادیر صحیح باشد و عموما نیز نیستند. PHP از مقادیر عددی خطی پشتیبانی می‌نماید: مقدار integer مقدار ممیز شناور (float) مقدار string و مقدار boolean (مقادیر خطی مقادیری هستند که نمی‌توان آنها را به اندازه‌های کوچک تقسیم نمود برای نمونه برخلاف آرایه‌ها ). PHP همچنین از دو نوع ترکیبی (غیرخطی نیز پشتیبانی می‌نماید) :آرایه‌ها و اشیا. هر دو این نوع مقدارها را می‌توان در متغیرها نسبت داده یا از توابع بازگرداند.

PHP عبارات را بصورت گسترده‌تری مانند سایر زبان‌ها در نظر می‌گیرد. PHP یک زبان عبارت-محور است و همه چیز را میذتوان در آن یک عبارت در نظر گرفت. مثال قبلی را دوباره در نظر بگیرید '$a = 5'. بسادگی می‌توان دید دو مقدار در این جا دخیل هستند مقدار عدد ثابت صحیح '5' و مقدار $a که به مقدار 5 بروز می‌گردد. انتصاب خود به مقدار انتصاب ارزیابی می‌گردد که در این جا 5 است. در عمل '$a = 5' بدون توجه به عملکرد آن عبارتی با مقدار 5 است. بنابراین نوشتن چیزی مانند '$b = ($a = 5)' مشابه نوشتن '$a = 5; $b = 5;' است (یک سمی کالن نشان دهنده پایان جمله است). چون انتصاب‌ها بصورت راست به چپ ارزیابی می‌گردند شما همچنین می‌توانید بنویسید '$b = $a = 5'.

یک مثال خوب دیگر برای عبارت-محوری افزایش و کاهش پیشوندی و پسوندی است . کاربران PHP زبان‌های دیگری با علامت ++ و -- آشنا هستند. این‌ها عملگرهای کاهش و افزایش هستند. در PHP/FI 2 حمله '$a++' هیچ مقداری ندارد (یک عبارت نیست) و نمی‌توانید آن را انتصاب دهید یا به گونه‌ای دیگر از آن استفاده نمایید. PHP توانایی کاهش/افزایش را با استفاده از این عبارات همانند C افزایش داده است. در PHP مانند C دو نوع افزایش پیشوندی و پسوندی وجود دارد. افزایش پبشوندی یا پسوندی هر دو متغیر را افزایش می‌دهند. تفاوت تنها در مقدار عبارت افزایش است. کاهش پیشوندی '++$variable' به مقدار پیاده‌سازی شده ارزیابی می‌گردد. (PHP متغیر را کاهش داده و پس از آن مقدار را می‌خواند به مین دلیل به آن کاهش پیشوندی گفته می‌شود). کاهش پسوندی که به صورت '$variable++' نوشته می‌شود مقدار اصلی $variable پیش از کاهش بازگردانده می‌شود (PHP کاهش متغیر پس از خواندن مقدار آن است بنابراین به آن کاهش پسوندی گفته می‌شود).

یک نوع عبارت معمول عبارت مقایسه است. این عبارت‌ها به FALSE یا TRUE ارزیابی می‌گردد. PHP از > (بزرگتر از) >= (بزرگتر از مساوی با) == (برابر) != (نابرابر) < (کوچک‌تر از) و <= (کوچک‌تر از یا مساوی با) پشتیبانی می‌نماید. زبان همچنین از یک سری عملگرهای دقیق مشابهت نیز پشتیبانی می‌نماید: === (برابر با و یک نوع) and !== (نابرابر یا دارای نوع غیر یکسان). این عبارت‌ها عموما در جملات شرطی استفاده می‌شوند مانند جمله if.

آخرین نمونه عبارت ترکیب عملگر و انتصاب هستند. شما پیش از این می‌دانید که اگر شما بخواهید مقدار $a را 1 افزایش دهید می‌توانید براحتی بنویسید '$a++' یا '++$a'. اما اگر بخواهید بیش از یک واحد به آن بیافزایید اما آشکارا این راه مناسبی برای این افزایش نیست. یک راه بهتر برای این کار '$a = $a + 3' است. '$a + 3' به مقدار $a به اضافه 3 ارزیابی می‌گردد. و دوباره به $a منتصب می‌گردد که نتیجه آن افزایش $a به اندازه 3 واحد است. در PHP همانند بسیاری از زبان‌های دیگر مانند C شما می‌توانید این عبارت را بصورت کوتاه‌تری نیز بنویسید. اضافه نمودن 3 واحد به مقدار فعلی $a می‌تواند بصورت '$a += 3' نوشته شود. این به معنای "مقدار $a را بگیر به آن 3 واحد اضافه نمایید و آن را دوباره به $a منتصب کن" است. علاوه بر کوتاه بودن و واضح بودن سرعت اجرا نیز افزایش می‌یابد. مقدار '$a += 3' مانند مقدار یک انتصاب معمولی است یعنی مقدار انتصاب. توجه کنید که این مقدار 3 نیست بلکه مقدار ترکیبی $a به اضافه 3 است (این مقدار به $a انتصاب داده می‌شود). هر عملگر دودویی برای عملگر انتصاب می‌تواند بکار رود برای نمونه '$a -= 5' (مقدار 5 را از مقدار $a کم کن) '$b *= 7' (مقدار $b را در 7 ضرب کن) و غیره.

عبارت دیگری وجود دارد که بنظر عجیب می‌آید مگر این که آن را در زبان‌های دیگری دیده باشید. این عملگر عملگر سه تایی است:

<?php
$first 
$second $third
?>

مقدار اولین زیرعبارت اگر برابر با TRUE باشد (غیر صفر)آنگاه دومین زیر عبارت ارزیابی خواهد گردید. در غیر این صورت عبارت سوم ارزیابی شده و آن مقدار عبارت خواهد بود.

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

<?php
function double($i)
{
    return 
$i*2;
}
$b $a 5;        /* assign the value five into the variable $a and $b */
$c $a++;          /* post-increment, assign original value of $a 
                       (5) to $c */
$e $d = ++$b;     /* pre-increment, assign the incremented value of 
                       $b (6) to $d and $e */

/* at this point, both $d and $e are equal to 6 */

$f double($d++);  /* assign twice the value of $d before
                       the increment, 2*6 = 12 to $f */
$g double(++$e);  /* assign twice the value of $e after
                       the increment, 2*7 = 14 to $g */
$h $g += 10;      /* first, $g is incremented by 10 and ends with the 
                       value of 24. the value of the assignment (24) is 
                       then assigned into $h, and $h ends with the value 
                       of 24 as well. */
?>

بعضی عبارات را می‌توان جمله در نظر گرفت. در این حالت جمله به شکل 'expr' ';' یک عبارت به همراه ; است. در '$b=$a=5;' $a=5 یک عبارت صحیح است اما یک جمله به تنهایی نیست. '$b=$a=5;' یک جمله معتبر است.

آخرین موضوع ارزشمند مقدار واقعی برای عبارت است. در بشتر رویدادها در اجرای شرطی و حلقه‌ها شما علاقه‌مند نیستید که جمقدار مشخص عبارت را بدانید. و تنها برای شما مقدار TRUE یا FALSE مهم است. ثابت‌های TRUE و FALSE (غیرحساس به حروف بزرگ و کوچک) دو مقدار منطقی boolean است. زمانی که مورد نیاز است یک عبارت بصورت خودکار به boolean تبدیل می‌شوند. بخش درباره تبدیل نوع را برای جزئیات بیشتر ببینید.

PHP یک پیاده‌اسزی قوی و کامل برای عبارات پیاده نموده است و مستند نمودن آن از حوزه این راهنما فراتر است. مثال‌های بالا به شما ایده خوبی درباره چگونگی عبارات و ساخت عبارات را فرا می‌گیرد. در طول ادامه این راهنما ما برای نشان دادن expr عبارت صحیح PHP استفاده خواهیم کرد.


Language Reference
PHP Manual