cvs: phpdoc-fa /language expressions.xml

From: Date: Tue, 24 Jun 2008 17:27:49 +0000
Subject: cvs: phpdoc-fa /language expressions.xml
Groups: php.doc.fa 
Request: Send a blank email to doc-fa+get-26@lists.php.net to get a copy of this message
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 از &gt; (بزرگتر از) &gt;= (بزرگتر از مساوی با) == (برابر) != (نابرابر) &lt; (کوچک‌تر از) و &lt;= (کوچک‌تر از یا مساوی با) پشتیبانی می‌نماید. زبان همچنین از یک سری عملگرهای دقیق مشابهت نیز پشتیبانی می‌نماید: === (برابر با و یک نوع) 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 -->
« previous php.doc.fa (#26) next »