LMPX.COM |
Home | Linux | Mysql | PHP | XML | ||
|
|
|||
From: Pedram Salehpoor Date: Tue Jun 24 11:27:49 2008 Subject: cvs: phpdoc-fa /language expressions.xml
psalehpoor Tue Jun 24 17:27:49 2008 UTC
Added files:
/phpdoc-fa/language expressions.xml
Log:
translation to persian
http://cvs.php.net/viewvc.cgi/phpdoc-fa/language/expressions.xml?view=markup&rev=1.1
Index: phpdoc-fa/language/expressions.xml
+++ phpdoc-fa/language/expressions.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1.31 Maintainer: pedram Status: ready -->
<!-- $Revision: 1.1 $ -->
<chapter xml:id="language.expressions" xmlns="http://docbook.org/ns/docbook">
<title>عبارتها</title>
<simpara>
عبارات مهمترین بخش سازنده PHP است در PHP هر چیزی که نوشته میشود
عبارت است. سادهترین و در عین حال دقیقترین تعریف برای عبارت این است که عبارت
هر چیزی است که مقدار داشته باشد.
</simpara>
<simpara>
اصلیترین شکل عبارات ثابتها و متغیرها هستند.
وقتی شما "$a = 5" مینویسید مقدار '5' را در $a وارد مینمایید. '5' واضح است که مقدر ۵ دارد
(در این حالت '5' یک ثابت صحیح است).
</simpara>
<simpara>
پس از این انتصاب شما انتظار دارید مقدار $a برابر با 5 باشد بنابراین زمانی که مینویسید
$b = $a شما انتظار دارید همانند عبارت $b = 5 عمل نماید. به عبارت دیگر $a یک عبارت با مقدار
5 است. اگر هم چیز درست عمل نماید همین اتفاق خواهد افتاد.
</simpara>
<para>
مثالهای پیچیدهتر برای عبارت توابع هستند. برای نمونه تابع زیر را در نظر بگیرید:
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
function foo ()
{
return 5;
}
?>
]]>
</programlisting>
</informalexample>
</para>
<simpara>
اگر شما با با مفهو توابع آشنا باشید (اگر نیستید به فصل درباره
<link linkend="language.functions">توابع </link> نگاه کنید) شما هنگام تایپ نمودن <literal>$c = foo()</literal>
فرض خواهید کرد که همانند نوشتن عبارت <literal>$c = 5</literal> است و حق نیز با شما است.
توابع عباراتی هستند که مقدار آنها مقدار بازگردانده شده توسط تابع است. با توجه به این که foo() مقدار 5
را بازمیگرداند مقدار عبارت 'foo()' برابر با 5 است. معمولا توابع تنها یک مقدار ثابت را باز نمیگردانند بلکه آن را محاسبه
مینمایند.
</simpara>
<simpara>
البته مقادیر در PHP حتما نباید مقادیر صحیح باشد و
عموما نیز نیستند. PHP از مقادیر عددی خطی پشتیبانی مینماید: مقدار <type>integer</type>
مقدار ممیز شناور (<type>float</type>) مقدار <type>string</type> و مقدار <type>boolean</type>
(مقادیر خطی مقادیری هستند که نمیتوان آنها را به اندازههای کوچک تقسیم نمود برای نمونه برخلاف آرایهها ).
PHP همچنین از دو نوع ترکیبی (غیرخطی نیز پشتیبانی مینماید) :آرایهها و اشیا. هر دو این نوع مقدارها را میتوان در متغیرها
نسبت داده یا از توابع بازگرداند.
</simpara>
<simpara>
PHP عبارات را بصورت گستردهتری مانند سایر زبانها در نظر
میگیرد. PHP یک زبان عبارت-محور است و همه چیز را میذتوان در آن یک عبارت در نظر گرفت.
مثال قبلی را دوباره در نظر بگیرید '$a = 5'. بسادگی میتوان دید دو مقدار در این جا دخیل هستند مقدار
عدد ثابت صحیح '5' و مقدار $a که به مقدار 5 بروز میگردد. انتصاب خود به مقدار انتصاب ارزیابی میگردد که در
این جا 5 است. در عمل '$a = 5' بدون توجه به عملکرد آن عبارتی با مقدار 5 است. بنابراین نوشتن چیزی مانند
'$b = ($a = 5)' مشابه نوشتن '$a = 5; $b = 5;' است (یک سمی کالن نشان دهنده پایان جمله است).
چون انتصابها بصورت راست به چپ ارزیابی میگردند شما همچنین میتوانید بنویسید '$b = $a = 5'.
</simpara>
<simpara>
یک مثال خوب دیگر برای عبارت-محوری افزایش و کاهش پیشوندی و پسوندی است
. کاربران PHP زبانهای دیگری با علامت ++ و
-- آشنا هستند. اینها <link linkend="language.operators.increment">
عملگرهای کاهش و افزایش</link> هستند. در
PHP/FI 2 حمله '$a++' هیچ مقداری ندارد (یک عبارت نیست)
و نمیتوانید آن را انتصاب دهید یا به گونهای دیگر از آن استفاده نمایید.
PHP توانایی کاهش/افزایش را با استفاده از این عبارات همانند C افزایش داده است.
در PHP مانند C دو نوع افزایش پیشوندی و پسوندی وجود دارد. افزایش پبشوندی یا پسوندی هر دو متغیر را افزایش میدهند.
تفاوت تنها در مقدار عبارت افزایش است. کاهش پیشوندی '++$variable' به مقدار پیادهسازی شده ارزیابی میگردد.
(PHP متغیر را کاهش داده و پس از آن مقدار را میخواند به مین دلیل به آن کاهش پیشوندی
گفته میشود). کاهش پسوندی که به صورت '$variable++' نوشته میشود مقدار اصلی
$variable پیش از کاهش بازگردانده میشود (PHP کاهش متغیر پس از خواندن مقدار آن است بنابراین به آن کاهش پسوندی گفته میشود).
</simpara>
<simpara>
یک نوع عبارت معمول عبارت <link
linkend= "language.operators.comparison">مقایسه</link>
است. این عبارتها به &false; یا &true; ارزیابی میگردد. PHP
از > (بزرگتر از) >= (بزرگتر از مساوی با) == (برابر)
!= (نابرابر) < (کوچکتر از) و <= (کوچکتر از یا مساوی با) پشتیبانی مینماید.
زبان همچنین از یک سری عملگرهای دقیق مشابهت نیز پشتیبانی مینماید: ===
(برابر با و یک نوع) and !== (نابرابر یا دارای نوع غیر یکسان).
این عبارتها عموما در جملات شرطی استفاده میشوند مانند جمله <literal>if</literal>.
</simpara>
<simpara>
آخرین نمونه عبارت ترکیب عملگر و انتصاب هستند. شما پیش از این میدانید که اگر شما
بخواهید مقدار $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 ضرب کن) و غیره.
</simpara>
<para>
عبارت دیگری وجود دارد که بنظر عجیب میآید مگر این که آن را در زبانهای دیگری دیده باشید. این عملگر عملگر سه تایی است:
</para>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$first ? $second : $third
?>
]]>
</programlisting>
</informalexample>
</para>
<para>
مقدار اولین زیرعبارت اگر برابر با &true; باشد (غیر صفر)آنگاه دومین زیر عبارت ارزیابی خواهد گردید. در غیر این صورت
عبارت سوم ارزیابی شده و آن مقدار عبارت خواهد بود.
</para>
<para>
مثال پایین به شما کمک خواهد کرد تا عبارات و افزایش پیشوندی و پسوندی را بصورت عمومیتر درک نمایید:
</para>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?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. */
?>
]]>
</programlisting>
</informalexample>
</para>
<simpara>
بعضی عبارات را میتوان جمله در نظر گرفت. در این حالت جمله به شکل 'expr' ';' یک عبارت به همراه ; است.
در '$b=$a=5;' $a=5 یک عبارت صحیح است اما یک جمله به تنهایی نیست.
'$b=$a=5;' یک جمله معتبر است.
</simpara>
<simpara>
آخرین موضوع ارزشمند مقدار واقعی برای عبارت است. در بشتر رویدادها در اجرای شرطی و حلقهها شما علاقهمند نیستید
که جمقدار مشخص عبارت را بدانید. و تنها برای شما مقدار &true; یا &false; مهم است.
<!-- (PHP doesn't have a
dedicated boolean type) : WRONG, PHP does. -->
ثابتهای &true; و &false; (غیرحساس به حروف بزرگ و کوچک) دو مقدار منطقی boolean است. زمانی که مورد نیاز است
یک عبارت بصورت خودکار به boolean تبدیل میشوند.
<link linkend="language.types.typecasting">بخش درباره تبدیل نوع</link> را برای جزئیات بیشتر ببینید.
</simpara>
<simpara>
PHP یک پیادهاسزی قوی و کامل برای عبارات پیاده نموده است
و مستند نمودن آن از حوزه این راهنما فراتر است. مثالهای بالا به شما ایده خوبی درباره چگونگی عبارات و ساخت عبارات را
فرا میگیرد. در طول ادامه این راهنما ما برای نشان دادن <varname>expr</varname> عبارت صحیح PHP استفاده خواهیم کرد.
</simpara>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
| Navigate in group php.doc.fa at sever news.php.net | |
| Previous | Next |
| No Copyright You are free to use Anything |
Site Maintained by PHP Developer
Powered By PHP Consultants |