cvs: phpdoc-ar /language operators.xml
[email protected] ("Hafid Benhadria") Sat, 08 Nov 2003 06:13:29 -0000
| Newsgroups | php.doc.ar |
|---|---|
| Message-ID | <cvshafid1068272009@cvsserver> |
hafid Sat Nov 8 01:13:29 2003 EDT
Added files:
/phpdoc-ar/language operators.xml
Log:
Fulle Arabic Translation. EN 1.53 Compliant.
hafid-20031108011329.txt
(text/plain, 29.1 KB)
Index: phpdoc-ar/language/operators.xml
+++ phpdoc-ar/language/operators.xml
<?xml version="1.0" encoding="ISO-8859-6"?>
<!-- $Revision: 1.1 $ -->
<!-- EN-Revision: 1.53 Maintainer: hafid Status: ready -->
<chapter id="language.operators">
<title>ÇäåïÔÚñðäÇÊ (Operators)</title>
<simpara>
</simpara>
<sect1 id="language.operators.precedence">
<title>ÃÓÈâêÉ ÇäåïÔÚñðäÇÊ (Operator Precedence)</title>
<para>
ÊïÍÏñðÏ ÃÓÈâêÉ åïÔÚñðä ÏÑÌÉ "ÇäÅÍãÇå" ÇäÐê êÑÈ× Èêæ
ÙÈÇÑÊêæ åÙÇ. Ùäé ÓÈêä ÇäåËÇä: áê ÇäÙÈÇÑÉ <literal>1 +
5 * 3</literal>¬ ÇäÌèÇÈ çè <literal>16</literal> èäêÓ
<literal>18</literal> äÃæñî åïÔÚñðä ("*") ääÖÑÈ
äÏêç ÃÓÈâêÉ ÃÙäé åæ åïÔÚñðä ("+") ääÅÖÇáÉ.
êåãæ ÇÓÊÎÏÇå ÇäÃâèÇÓ äâÓÑ ÇäÃÓÈâêɬ Åæ ÇâÊÖÊ ÇäÖñîÑèÑÉ. Ùäé
ÓÈêä ÇäåËÇä: <literal>(1 + 5) * 3</literal> ÊÙ×ê ÇäâêåÉ
<literal>18</literal>.
</para>
<para>
ÇäÌÏèä ÇäÊñîÇäêñ êÓÑÏ äÇÆÍÉ ÃÓÈâêÉ ÇäåïÔÚñðäÇÊ åÙ
ÓÑÏ Ãâä ÇäåïÔÚñðäÇÊ ÃÓÈâêÉ ÃèäÇ.
<table>
<title>ÃÓÈâêÉ ÇäåïÔÚñðäÇÊ</title>
<tgroup cols="2">
<thead>
<row>
<entry>ÊÔÇÑãêÉ (Associativity)</entry>
<entry>ÇäåïÔÚñðäÇÊ</entry>
</row>
</thead>
<tbody>
<row>
<entry>êÓÇÑ</entry>
<entry>,</entry>
</row>
<row>
<entry>êÓÇÑ</entry>
<entry>or</entry>
</row>
<row>
<entry>êÓÇÑ</entry>
<entry>xor</entry>
</row>
<row>
<entry>êÓÇÑ</entry>
<entry>and</entry>
</row>
<row>
<entry>êåêæ</entry>
<entry>print</entry>
</row>
<row>
<entry>êåêæ</entry>
<entry>
= += -= *= /= .= %= &= |= ^= <<= >>=
</entry>
</row>
<row>
<entry>êÓÇÑ</entry>
<entry>? :</entry>
</row>
<row>
<entry>êÓÇÑ</entry>
<entry>||</entry>
</row>
<row>
<entry>êÓÇÑ</entry>
<entry>&&</entry>
</row>
<row>
<entry>êÓÇÑ</entry>
<entry>|</entry>
</row>
<row>
<entry>êÓÇÑ</entry>
<entry>^</entry>
</row>
<row>
<entry>êÓÇÑ</entry>
<entry>&</entry>
</row>
<row>
<entry>ÚêÑ ÊÔÇÑãêñ (non-associative)</entry>
<entry>== != === !==</entry>
</row>
<row>
<entry>ÚêÑ ÊÔÇÑãêñ</entry>
<entry>< <= > >=</entry>
</row>
<row>
<entry>êÓÇÑ</entry>
<entry><< >></entry>
</row>
<row>
<entry>êÓÇÑ</entry>
<entry>+ - .</entry>
</row>
<row>
<entry>êÓÇÑ</entry>
<entry>* / %</entry>
</row>
<row>
<entry>êåêæ</entry>
<entry>! ~ ++ -- (int) (float) (string) (array) (object) @</entry>
</row>
<row>
<entry>êåêæ</entry>
<entry>[</entry>
</row>
<row>
<entry>ÚêÑ ÊÔÇÑãêñ</entry>
<entry>new</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<note>
<para>
ÈÇäÑñîÚå åæ Ãæñî äà <literal>!</literal> ÃÓÈâêÉ ÃÙäé ååÇ
<literal>=</literal>, PHP will still allow expressions
êÔÈç ÇäÊñîÇäêñ: <literal>if (!$a = foo())</literal>¬
åæ ÍêË Ãæñî ÇäåïÎòÑîÌ åæ <literal>foo()</literal>
ÓêÊå èÖÙç áê <varname>$a</varname>.
</para>
</note>
</sect1>
<sect1 id="language.operators.arithmetic">
<title>ÇäåïÔÚñðäÇÊ ÇäÍÓÇÈêñîÉ (Arithmetic Operators)</title>
<simpara>
ÊîÐòãïÑ Ùäå ÇäÍÓÇÈ ÇäâÇÙÏêñ åæ ÇäåÏÑÓÉ¿ ÊÙåä çÐç åËä
Êäã ÈÇäÖñîÈ×.
</simpara>
<table>
<title>ÇäåïÔÚñðäÇÊ ÇäÍÓÇÈêñîÉ</title>
<tgroup cols="3">
<thead>
<row>
<entry>åËÇä</entry>
<entry>ÅÓå</entry>
<entry>æÊêÌÉ</entry>
</row>
</thead>
<tbody>
<row>
<entry>$a + $b</entry>
<entry>ÅÖÇáÉ (Addition)</entry>
<entry>åÌåèÙ $a è $b.</entry>
</row>
<row>
<entry>$a - $b</entry>
<entry>×ÑÍ (Subtraction)</entry>
<entry>áÇÑâ $a è $b.</entry>
</row>
<row>
<entry>$a * $b</entry>
<entry>ÇäÖñÑÈ (Multiplication)</entry>
<entry>æÇÊÌ $a è $b.</entry>
</row>
<row>
<entry>$a / $b</entry>
<entry>ÇäâÓåÉ (Division)</entry>
<entry>ÍÇÕä $a è $b.</entry>
</row>
<row>
<entry>$a % $b</entry>
<entry>ÇäÍÇÕä (Modulus)</entry>
<entry>ÈÇâê âÓåÉ $a Ùäé $b.</entry>
</row>
</tbody>
</tgroup>
</table>
<simpara>
êñïÑÌðÙï åïÔÚñðä ÇäâÓåÉ ("/") âêåÉ ÙÇÆåÉ áê Ãêñ èâʬ
ÍÊé èÅæ ãÇæ ÇäåÙÇåäÇæ (operands) ÙÏÏêæ ÕÍêÍêæ (Ãè ÓäÇÓä æÕêñîÉ
ÍïèñðäîÊ Åäé ÃÙÏÇÏ ÕÍêÍÉ).
</simpara>
<simpara>
ÇÓÊÙÑÖ ÃêÖÇ ÕáÍÉ ÇäÏñîäêä ÈÎÕèÕ
<link linkend="ref.math">ÇäÏñîèÇä ÇäÑñðêÇÖêñîÉ (Math functions)</link>.
</simpara>
<!--
<simpara>
êïÑÌðÙï åïÔÚñðä ÇäâÓåÉ ("/") âêåÉ ÙÏÏêñîÉ ÕÍêÍÉ (æÇÊÌ
âÓåÉ ÙÏÏ ÕÍêÍ) ÅÐÇ ãÇæ ÇäåÙÇåäÇæ ÙÏÏÇæ ÕÍêÍÇæ (Ãè
ÓäÇÓä æÕêñîÉ ÍïèñðäîÊ Åäé ÃÙÏÇÏ ÕÍêÍÉ) èãÇæ ÇäÍÇÕä
ÙÏÏÇ ÕÍêÍÇ. ÅÐÇ ãÇæ ÃÍÏ ÇäåÙÇåäêæ ÙÈÇÑÉ Ùæ âêåÉ ÐÇÊ æâ×É ÙÇÆåÉ Ãè Ãæñî
ÇäÙåäêÉ ÊæÊÌ ÙæçÇ âêåÉ ÚêÑ ÙÏÏêñîÉ ÕÍêÍɬ áÅæñîç êÊå ÅÑÌÇÙ âêåÉ ÐÇÊ æâ×É ÙÇÆåÉ
.
</simpara>
-->
</sect1>
<sect1 id="language.operators.assignment">
<title>åïÔÚñðäÇÊ ÇäÊñîÙêêæ (Assignment Operators)</title>
<simpara>
åïÔîÚñðä ÇäÊñîÙêêæ ÇäâÇÙÏêñ çè "=". äÑÈåÇ ÓÊÙÊâÏ ääèçäÉ ÇäÃèäé
çè ÇäÊñîáãêÑ ÈçÐÇ Ùäé Ãæñîç "êÓÇèê - equal to". ãïáñî Ùæ Ðäã. áê ÇäÍâêâɬ çè êÙæê Ãæ
ÇäåïÙÇåä ÇäÐê Ùäé ÇäêÓÇÑ êÍÕä Ùäé âêåÉ ÇäÙÈÇÑÉ ÇäÊñðê Ùäé
Çäêåêæ (Êäã çê: "êÍÕä Ùäé âêåÉ - gets set to").
</simpara>
<para>
Åæñî âêåÉ ÙÈÇÑÉ ÇäÊñîÙêêæ çê ÇäâêåÉ ÇäåïÙêñîæîÉ. Ãê
Ãæñî âêåÉ "$a = 3" çê 3. êÓåÍ çÐÇ äã ÈÇäâêÇå ÈÈÙÖ
ÇäÍðêä:
<informalexample>
<programlisting role="php">
<![CDATA[
$a = ($b = 4) + 5; // $a ÊÓÇèê 9 ÇäÂæ è $b ÙïêñðæîÊ âêåÊçÇ äà 4.
]]>
</programlisting>
</informalexample>
</para>
<para>
ÈÇäÅÖÇáÉ Åäé åÙÇåä ÇäÊñîÙêêæ ÇäâÇÙÏêñ¬ çæÇã "åÔÚñðäÇÊ åïÑîãñîÈîÉ - combined
operators" äÃÌä ãäñ ÇäåïÔÚñðäÇÊ ÇäÍÓÇÈêñîÉ ÇäËñïæÇÆêñîÉ èåïÔÚñðäÇÊ ÇäÓñîäÇÓä ÇäæñîÕêñîÉ (binary arithmetic and string operators)
ÇäÊñðê ÊÓåÍ ÈÇÓÊÎÏÇå âêåÉ áê ÙÈÇÑÉ èåæ Ëå ÊÙêêæ
âêåÊçÇ äÏé æÊêÌÉ çÐç ÇäÙÈÇÑÉ. Ùäé ÓÈêä ÇäåËÇä:
<informalexample>
<programlisting role="php">
<![CDATA[
$a = 3;
$a += 5; // ÊïÙêñðæ âêåÉ $a äà 8¬ èãÃæñîæÇ âäæÇ: $a = $a + 5;
$b = "ÃçäÇ ";
$b .= "ÃæÊå çæÇ!"; // ÊïÙêñðæ âêåÉ $b äà "ÃçäÇ ÃæÊå çæÇ!"¬ ÈÇäÖñîÈ׬ åËä $b = $b . "ÃæÊå çæÇ!";
]]>
</programlisting>
</informalexample>
</para>
<para>
äÇÍØ Ãæñî ÇäÊñîÙêêæ êæÓÎ ÇäåÊÚêñðÑ ÇäÃÕäêñ ÈÇÊÌÇç ÇäåÊÚêñðÑ
ÇäÌÏêÏ (ÇäÊñîÙêêæ ÈèÇÓ×É ÇäâêåÉ)¬ ÈÍêË Ãæñî ÇäÊñîÚêêÑÇÊ Çä×ñîÇÑÆÉ Ùäé ÃÍÏçåÇ äæ ÊÄËÑ áê
ÇäÂÎÑ. êåãæ Ãæ äçÐÇ ÕäÉ ÃêÖÇ ÅÐÇ ÇÍÊÌÈ äæÓÎ ÔêÁ åÇ
ãåÕáèáÉ ãÈêÑÉ Öåæ ÍäâÉ åÔÏèÏÉ (tight loop). ÊÏÙå PHP 4 ÇäÊñîÙêêæ
ÈÇäÅÍÇäÉ (assignment by reference)¬ ÈÇÓÊÎÏÇå ÕêÚÉ <computeroutput>$var =
&$othervar;</computeroutput>¬ äãæ çÐÇ ÚêÑ ååãæ
áê PHP 3. êÙæê 'ÇäÊñîÙêêæ ÈÇäÅÍÇäÉ' Ãæñî ãäÇ ÇäåÊÚêñðÑêæ êÄèä ÃåÑçåÇ
èçåÇ êÔêÑÇæ Åäé æáÓ ÇäÈêÇæÇÊ èäÇ ÔêÁ êÊå æÓÎç áê Ãêñ åãÇæ.
äÊÙäñïå ÇäåÒêÏ ÈÎÕèÕ ÇäÅÍÇäÇʬ ÑÌÇÁë¬ ÇâÑà <link
linkend="language.references">ÔÑÍ ÇäÅÍÇäÇÊ</link>.
</para>
</sect1>
<sect1 id="language.operators.bitwise">
<title>ÇäåïÔÚñðäÇÊ ÇäÙÇåäÉ Ùäé ÇäÈÇêÊÇÊ (Bitwise Operators)</title>
<simpara>
ÊÓåÍ äã ÇäåïÔÚñðäÇÊ ÇäÙÇåäÉ Ùäé ÇäÈÇêÊÇÊ ÈÊáÙêä Ãè ÊÙ×êä ÇäÈÇêÊÇÊ ÇäÎÇÕÉ (specific bits) Öåæ
ÙÏÏ ÕÍêÍ. ÅÐÇ ãÇæ ÇäåÙòäîåîÇÊ Çäêïåæé èÇäêïÓÑé ÙÈÇÑÉ Ùæ
ÓäÇÓä æÕêñîɬ áÅæñî ÇäåïÔÚñðä ÇäÙÇåä Ùäé ÇäÈÇêÊÇÊ ÓêÙåä Ùäé ÇäÍÑèá áê çÐç
ÇäÓñðäÓäÉ ÇäæñîÕêñîÉ.
</simpara>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
echo 12 ^ 9; // êïÕòÏðÑ ÇäåïÎòÑîÌ '5'
echo "12" ^ "9"; // êïÕòÏðÑ ÇäåïÎòÑîÌ ÍÑá ÇäåÓÇáÉ ÇäÎäáêñîÉ "Backspace character" (ascii 8)
// ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8
echo "hallo" ^ "hello"; // êïÕòÏðÑ ÇäåïÎòÑîÌ ÇäåïÊåËñðä áê âêå ascii #0 #4 #0 #0 #0
// 'a' ^ 'e' = #4
?>
]]>
</programlisting>
</informalexample>
</para>
<table>
<title>ÇäåïÔÚñðäÇÊ ÇäÙÇåäÉ Ùäé ÇäÈÇêÊÇÊ</title>
<tgroup cols="3">
<thead>
<row>
<entry>åËÇä</entry>
<entry>ÅÓå</entry>
<entry>æÊêÌÉ</entry>
</row>
</thead>
<tbody>
<row>
<entry>$a & $b</entry>
<entry>è (And)</entry>
<entry>ÊïÙêñîæ âêåÉ ÇäÈÇêÊÇÊ ÇäÊñðê ÙïêñðæîÊ âêåÊçÇ áê ãäñ åæ $a è $b.</entry>
</row>
<row>
<entry>$a | $b</entry>
<entry>Ãè (Or)</entry>
<entry>ÊïÙîêñîæ âêåÉ ÇäÈÇêÊÇÊ ÇäÊñðê ÙïêñðæîÊ âêåÊçÇ ÅåÇ áê $a Ãè $b.</entry>
</row>
<row>
<entry>$a ^ $b</entry>
<entry>Xor</entry>
<entry>
ÊïÙêñîæ âêåÉ ÇäÈÇêÊÇÊ ÇäÊñðê ÙïêñðæîÊ âêåÊçÇ áê $a Ãè $b äãæ äêÓ áê ãäÇçåÇ.
</entry>
</row>
<row>
<entry>~ $a</entry>
<entry>äÇ (Not)</entry>
<entry>
äÇ ÊïÙêñîæ âêåÉ ÇäÈÇêÊÇÊ ÇäÊñðê ÙïêñðæîÊ âêåÊçÇ áê $a¬ èÇäÙãÓ ÕÍêÍ.
</entry>
</row>
<row>
<entry>$a << $b</entry>
<entry>ÇäÅÒÇÍÉ Åäé ÇäêÓÇÑ (Shift left)</entry>
<entry>
êÒÍÒÍ ÇäÈÇêÊÇʬ ÇäÎÇÕÉ Èà $a¬ $b Î×èÇÊ Åäé ÇäêÓÇÑ (ãäñ Î×èÉ ÊÙæê
"ÇäÖñîÑÈ áê ÇËæêæ - multiply by two")
</entry>
</row>
<row>
<entry>$a >> $b</entry>
<entry>ÇäÅÒÇÍÉ Åäé Çäêåêæ (Shift right)</entry>
<entry>
êïÒÍÒÍ ÇäÈÇêÊÇʬ ÇäÎÇÕÉ Èà $a¬ $b Î×èÇÊ Åäé Çäêåêæ (ãäñ Î×èÉ ÊÙæê
"ÇäâÓåÉ Ùäé ÇËæêæ - divide by two")
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect1>
<sect1 id="language.operators.comparison">
<title>åïÔîÚñðäÇÊ ÇäåâÇÑæÉ (Comparison Operators)</title>
<simpara>
ÊÓåÍ åïÔîÚñðäÇÊ ÇäåâÇÑæÉ¬ åËäåÇ êèÍê ÅÓåçǬ ÈÇäåâÇÑæÉ
Èêæ âêåÊêæ. êåãæ ÃêÖÇ Ãæ ÊçÊå ÈåÔÇçÏÉ
<link linkend="types.comparisons">ÌÏÇèä åâÇÑæÉ ÇäÃæèÇÙ</link>
ÈÇÙÊÈÇÑ ÃæñîçÇ ÊïØòçðÑ ÃåËäÉ Ùæ åÎÊäá ÇäåâÇÑæÇÊ ÇäåÊÙäâÉ ÈÇäÃæèÇÙ.
</simpara>
<table>
<title>åïÔîÚñðäÇÊ ÇäåâÇÑæÉ</title>
<tgroup cols="3">
<thead>
<row>
<entry>åËÇä</entry>
<entry>ÅÓå</entry>
<entry>æÊêÌÉ</entry>
</row>
</thead>
<tbody>
<row>
<entry>$a == $b</entry>
<entry>êÓÇèê (Equal)</entry>
<entry>&true; ÅÐÇ ãÇæ $a êÓÇèê $b.</entry>
</row>
<row>
<entry>$a === $b</entry>
<entry>ååÇËä (Identical)</entry>
<entry>
&true; ÅÐÇ ãÇæ $a êÓÇèê $b èãÇæÇ åæ æáÓ
ÇäæñîèÙ. (PHP 4 áâ×)
</entry>
</row>
<row>
<entry>$a != $b</entry>
<entry>äÇ êÓÇèê (Not equal)</entry>
<entry>&true; ÅÐÇ ãÇæ $a äÇ êÓÇèê $b.</entry>
</row>
<row>
<entry>$a <> $b</entry>
<entry>äÇ êÓÇèê (Not equal)</entry>
<entry>&true; ÅÐÇ ãÇæ $a äÇ êÓÇèê $b.</entry>
</row>
<row>
<entry>$a !== $b</entry>
<entry>ÚêÑ ååÇËä (Not identical)</entry>
<entry>
&true; ÅÐÇ ãÇæ $a äÇ êÓÇèê $b Ãè äå êãèæÇ åæ æáÓ
ÇäæñîèÙ. (PHP 4 áâ×)
</entry>
</row>
<row>
<entry>$a < $b</entry>
<entry>ÃÕÚÑ åæ (Less than)</entry>
<entry>&true; ÅÐÇ ãÇæ $a ÍÊåÇ ÃÕÚÑ åæ $b.</entry>
</row>
<row>
<entry>$a > $b</entry>
<entry>ÃãÈÑ åæ (Greater than)</entry>
<entry>&true; ÅÐÇ ãÇæ $a ÍÊåÇ ÃãÈÑ åæ $b.</entry>
</row>
<row>
<entry>$a <= $b</entry>
<entry>ÃÕÚÑ åæ Ãè êÓÇèê (Less than or equal to) </entry>
<entry>&true; ÅÐÇ ãÇæ $a ÃÕÚÑ åæ Ãè êÓÇèê $b.</entry>
</row>
<row>
<entry>$a >= $b</entry>
<entry>ÃãÈÑ åæ Ãè êÓÇèê (Greater than or equal to) </entry>
<entry>&true; ÅÐÇ ãÇæ $a ÃãÈÑ åæ Ãè êÓÇèê $b.</entry>
</row>
</tbody>
</tgroup>
</table>
<para>
çæÇã åïÔÚñðä ÔÑ×êñ ÂÎÑ çè åïÔÚñðä "?:" (Ãè ÇäËñïäÇËêñ)
ÇäÐê êÙåä ãåÇ áê C èÙÏÉ äÚÇÊ ÃÎÑé.
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
// åËÇä Ùæ ÇÓÊÎÏÇå: ÇäåïÔÚñðä ÇäËñïäÇËêñ (Ternary Operator)
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];
// åÇ áê ÇäÃÙäé çè ååÇËä äÈäÇÚ if/else çÐÇ
if (empty($_POST['action'])) {
$action = 'default';
} else {
$action = $_POST['action'];
}
?>
]]>
</programlisting>
</informalexample>
ÇäÙÈÇÑÉ <literal>(expr1) ? (expr2) : (expr3)</literal>
ÊÙ×ê ÇäâêåÉ <replaceable>expr2</replaceable> ÅÐÇ ãÇæÊ
<replaceable>expr1</replaceable> ÊÙ×ê ÇäâêåÉ &true;
<replaceable>expr3</replaceable> ÅÐÇ ãÇæÊ
<replaceable>expr1</replaceable> ÊÙ×ê ÇäâêåÉ &false;.
</para>
<para>
ÇÓÊÙÑÖ ÃêÖÇ <function>strcasecmp</function>¬
<function>strcmp</function> èáÕä ÇäÏñîäêä ÇäÎÇÕ Èà
<link linkend="language.types">ÇäÃæèÇÙ</link>.
</para>
</sect1>
<sect1 id="language.operators.errorcontrol">
<title>åïÔÚñðäÇÊ ÇäÊñîÍãå ÈÇäÃÎ×ÇÁ (Error Control Operators)</title>
<simpara>
ÊÏÙå PHP åïÔÚñðäÇ èÇÍÏ ääÊÍãå áê ÇäÃÎ×ÇÁ: ÑåÒ at (@). ÙæÏåÇ
êïÖîÇá Åäé ÈÏÇêÉ ÙÈÇÑÉ áê PHP¬ áÅæñî Ãêñ ÑÓÇÆä Î×à êåãæ
Ãæ ÊïèäñîÏ åæ âÈä Êäã ÇäÙÈÇÑÉ ÓêÊå ÊÌÇçäçÇ.
</simpara>
<simpara>
ÅÐÇ ãÇæÊ åêÒÉ <link linkend="ini.track-errors">track_errors</link>
åïáÙäɬ áÅæñî ÃêÉ ÑÓÇäÉ Î×à êÊå ÊèäêÏçÇ åæ âÈä ÇäÙÈÇÑÉ
ÓêÊå ÍáØçÇ áê ÇäåÊÚêñðÑ
<link linkend="reserved.variables.phperrormsg">$php_errormsg</link>.
çÐÇ ÇäåïÊÚêñðÑ ÓêÊå ÓÍâçÇ ÙæÏ ãäñ Î×ì äÐä㬠âå ÈÊáâÏ ÈÇãÑÇ ÅÐÇ ãæÊ
ÊèñîÏ ÇÓÊÎÏÇåç.
</simpara>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
/* Î×à åäá åâÕèÏ */
$my_file = @file ('non_existent_file') or
die ("ÊÙÐÑ áÊÍ Çäåäá: êÊåËä ÇäÎ×à áê '$php_errormsg'");
// êÙåä çÐÇ äÃÌä ÃêÉ ÙÈÇÑɬ äêÓ áâ× ääÏèÇä:
$value = @$cache[$key];
// äæ êÕÏÑ ÊæÈêçÇ ÅÐÇ ãÇæ ÇäáçÑÓ $key ÚêÑ åèÌèÏ.
?>
]]>
</programlisting>
</informalexample>
</para>
<note>
<simpara>
êÙåä åïÔÚñðä @ áâ× Ùäé
<link linkend="language.expressions">ÇäÙÈÇÑÇÊ</link>. âÇÙÏÉ ÙåäêñîÉ ÈÓê×É
çê: ÅÐÇ ãÇæ ÈÅåãÇæã ÊæÇèä âêåÉ ÔêÁ åǬ áÅæñîç ÈÅåãÇæã ÅÖÇáÉ
ÇäåïÔÚñðä @ Åäé ÈÏÇêÊç. Ùäé ÓÈêä ÇäåËÇä: ÈÅåãÇæã ÅÖÇáÊç Åäé ÈÏÇêÉ ÇäåÊÚêñðÑÇʬ
ÇäÏñîèÇä èæÏÇÁÇÊ <function>include</function>¬ ÇäËèÇÈÊ
èçãÐÇ ÏèÇäêã. äêÓ ÈÅåãÇæã ÅÖÇáÊç Åäé ÈÏÇêÉ ÊÙÑêáÇÊ ÏÇäÉ Ãè Õæá¬
Ãè ÇäÈæé ÇäÔñîÑ×êñîÉ åËä: <literal>if</literal> è
<literal>foreach</literal>¬ èçãÐÇ ÏèÇäêã.
</simpara>
</note>
<simpara>
ÇÓÊÙÑÖ ÃêÖÇ <function>error_reporting</function> èáÕä ÇäÏñîäêä áêåÇ êÎÕ
<link linkend="ref.errorfunc">ÏèÇä ÇäÊñîÙÇåä åÙ ÇäÃÎ×ÇÁ èÊÓÌêä ÇäÏñïÎèä (Error Handling and Logging functions)</link>.
</simpara>
<note>
<para>
Åæñî ÓÇÈâÉ åïÔÚñðä ÇäÊñîÍãå áê ÇäÃÎ×ÇÁ "@" äæ Êâèå ÈÊÙ×êä ÇäÑñîÓÇÆä
ÇäæñîÇÊÌÉ Ùæ ÃÎ×ÇÁ áê ÇäÊñîáÓêÑ (parse errors).
</para>
</note>
<warning>
<para>
áê ÇäèâÊ ÇäÌÇÑê¬ áÅæñî ÓÇÈâÉ åïÔÚñðä ÇäÊñîÍãå áê ÇäÃÎ×ÇÁ "@" ÓÊâèå ÍÊé ÈÊÙ×êä
ÇäÅÙäÇå Ùæ ÇäÃÎ×ÇÁ áêåÇ êÎÕ ÇäÃÎ×ÇÁ ÇäÍÑÌÉ ÇäÊñðê Êæçê ÊæáêÐ
ÇäÎÇ×è×. åæ Èêæ ÃÔêÇÁ ÃÎÑé¬ áÅæñî çÐÇ êÙæê Ãæñîç ÅÐÇ ãæÊ ÊÓÊÎÏå "@" ÈÚÑÖ
ÅÒÇäÉ ÇäÃÎ×ÇÁ ÇäÕñîÇÏÑÉ Ùæ ÏÇäÉ åÇ èÍÊé Åæ äå Êãæ
åïÊÇÍÉ Ãè ÑïâðæÊ ÈÔãä ÎÇׯ¬ áÅæñî ÇäÎÇ×è× ÓêÊäÇÔé ÍêæÐÇã ÊÍÏêÏÇë
åæ Ïèæ ÇêÉ ÅÔÇÑÉ ääÓÈÈ.
</para>
</warning>
</sect1>
<sect1 id="language.operators.execution">
<title>åïÔÚñðäÇÊ ÇäÊñîæáêÐ (Execution Operators)</title>
<para>
ÊÏÙå PHP åïÔÚñðä ÊæáêÐ èÇÍÏ: ÇäáÇÕäÇÊ ÇäÙäêÇ ÇäÊñîÑÇÌÙêñîÉ "backticks" (``). äÇÍØ Ãæñî
çÐç äêÓÊ ÇâÊÈÇÓÇÊ åïáÑÏÉ! ÓÊÍÇèä PHP ÊæáêÐ
åÍÊèêÇÊ ÇäáÇÕäÇÊ ÇäÙäêÇ ÇäÊñîÑÇÌÙêñîÉ Ùäé ÃæñîçÇ ÃåÑ shell» ÓêÊå ÅÑÌÇÙ
ÇäåïÎòÑîÌ (Ãê: Ãæñîç äæ êÊå ÈÙËç áâ× Åäé ÇäåïÎòÑîÌ» êåãæ
ÊÙêêæç äÃÌä åÊÚêñðÑ). Åæñî ÇÓÊÎÏÇå åïÔÚñðä ÇäáÇÕäÉ ÇäÙäêÇ ÇäÊñîÑÇÌÙêñîÉ êåÇËä
<function>shell_exec</function>.
<informalexample>
<programlisting role="php">
<![CDATA[
$output = `ls -al`;
echo "<pre>$output</pre>";
]]>
</programlisting>
</informalexample>
</para>
<note>
<para>
Åæñî åïÔÚñðä ÇäáÇÕäÉ ÇäÙäêÇ ÇäÊñîÑÇÌÙêñîÉ åïÙ×ñîä ÙæÏåÇ êãèæ &safemode; åïáÙäÇë
Ãè ÙæÏåÇ Êãèæ <function>shell_exec</function> åïÙ×äÉ.
</para>
</note>
<para>
ÇÓÊÙÑÖ ÃêÖÇ áÕä ÇäÏñîäêä ÇäÎÇÕ Èà <link linkend="ref.exec">Program
ÏèÇä ÇäÊñîæáêÐ (Execution functions)</link>¬ <function>popen</function>¬
<function>proc_open</function> è
<link linkend="features.commandline">ÇÓÊÎÏÇå PHP Åæ×äÇâÇ åæ
åæ Ó×Ñ ÇäÃèÇåÑ</link>.
</para>
</sect1>
<sect1 id="language.operators.increment">
<title>åïÔÚñðäÇÊ ÇäÊñîÒÇêÏ/ÇäÊñîæÇâÕ (Incrementing/Decrementing Operators)</title>
<para>
ÊÏÙå PHP ÇäåïÔÚñðäÇÊ ÇäÔñîÈêçÉ ÈÃÓäèÈ C èÇäÎÇÕÉ ÈÇäÊñîÒÇêÏ èÇäÊñîæÇâÕ ÇäåÓÈâêæ èÇääÇÍâêæ (pre- and post-increment and decrement)
.
</para>
<table>
<title>åïÔÚñðäÇÊ ÇäÊñîÒÇêÏ/ÇäÊñîæÇâÕ</title>
<tgroup cols="3">
<thead>
<row>
<entry>åËÇä</entry>
<entry>ÅÓå</entry>
<entry>ÊÃËêÑ</entry>
</row>
</thead>
<tbody>
<row>
<entry>++$a</entry>
<entry>ÇäÊñîÒÇêÏ ÇäåïÓÈâ (Pre-increment)</entry>
<entry>êÒêÏ áê $a ÈèÇÍϬ èåæ Ëå êïÑÌÙ $a.</entry>
</row>
<row>
<entry>$a++</entry>
<entry>ÇäÊñîÒÇêÏ ÇääÇÍâ (Post-increment)</entry>
<entry>êïÑÌÙ $a¬ èåæ Ëå êÒêÏ áê $a ÈèÇÍÏ.</entry>
</row>
<row>
<entry>--$a</entry>
<entry>ÇäÊñîæÇâÕ ÇäåïÓÈâ (Pre-decrement)</entry>
<entry>êïæâÕ åæ $a ÈèÇÍϬ èåæ Ëå êïÑÌÙ $a.</entry>
</row>
<row>
<entry>$a--</entry>
<entry>ÇäÊñîæÇâÕ ÇääÇÍâ (Post-decrement)</entry>
<entry>êïÑÌÙ $a¬ èåæ Ëå êæâÕ åæ $a ÈèÇÍÏ.</entry>
</row>
</tbody>
</tgroup>
</table>
<para>
ÌðÏ çæÇ ÎÇ×è×Ç ãåËÇä ÈÓê×:
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
echo "<h3>ÇäÊñîÒÇêÏ ÇääÇÍâ</h3>";
$a = 5;
echo "êÌÈ Ãæ Êãèæ 5: " . $a++ . "<br />\n";
echo "êÌÈ Ãæ Êãèæ 6: " . $a . "<br />\n";
echo "<h3>ÇäÊñîÒÇêÏ ÇäåïÓÈâ</h3>";
$a = 5;
echo "êÌÈ Ãæ Êãèæ 6: " . ++$a . "<br />\n";
echo "êÌÈ Ãæ Êãèæ 6: " . $a . "<br />\n";
echo "<h3>ÇäÊñîæÇâÕ ÇääÇÍâ</h3>";
$a = 5;
echo "êÌÈ Ãæ Êãèæ 5: " . $a-- . "<br />\n";
echo "êÌÈ Ãæ Êãèæ 4: " . $a . "<br />\n";
echo "<h3>ÇäÊñîæÇâÕ ÇäåïÓÈâ</h3>";
$a = 5;
echo "êÌÈ Ãæ Êãèæ 4: " . --$a . "<br />\n";
echo "êÌÈ Ãæ Êãèæ 4: " . $a . "<br />\n";
?>
]]>
</programlisting>
</informalexample>
</para>
<para>
ÊÊÈÙ PHP ÅÕ×äÇÍÇÊ Perl ÙæÏ ÇäÊñÙÇ×ê åÙ ÇäÙåäêÇÊ ÇäÍÓÇÈêñîÉ
Ùäé ÇäåÊÚêñðÑÇÊ ÇäÍÑáêñîÉ (character variables) èäêÓ ÇÕ×äÇÍÇÊ C. Ùäé ÓÈêä ÇäåËÇä: áê Perl¬ 'Z'+1
ÊïÕÈÍ 'AA' áê Íêæ Ãæñîç áê C¬ áÅæñî 'Z'+1 ÊïÕÈÍ '[' ( ord('Z') == 90, ord('[') == 91 ).
äÇÍØ Ãæñî ÇäåÊÚêñðÑÇÊ ÇäÍÑáêñîÉ êåãæ ÇäÒñðêÇÏÉ áêçÇ äãæ äÇ êåãæ ÇäÅæâÇÕ åæçÇ.
<example>
<title>ÇäÙåäêÇÊ ÇäÍÓÇÈêñîÉ Ùäé ÇäåïÊÚêñðÑÇÊ ÇäÍÑáêñîÉ</title>
<programlisting role="php">
<![CDATA[
<?php
$i = 'W';
for($n=0; $n<6; $n++)
echo ++$i . "\n";
/*
êïæÊðÌ åïÎÑÌÇë ÔÈêçÇ ÈÇäÊñîÇäêñ:
X
Y
Z
AA
AB
AC
*/
?>
]]>
</programlisting>
</example>
</para>
</sect1>
<sect1 id="language.operators.logical">
<title>ÇäåïÔÚñðäÇÊ Çäåæ×âêñîÉ (Logical Operators)</title>
<table>
<title>ÇäåïÔÚñðäÇÊ Çäåæ×âêñîÉ</title>
<tgroup cols="3">
<thead>
<row>
<entry>åËÇä</entry>
<entry>ÅÓå</entry>
<entry>æÊêÌÉ</entry>
</row>
</thead>
<tbody>
<row>
<entry>$a and $b</entry>
<entry>è (And)</entry>
<entry>&true; ÅÐÇ ãÇæ ãäñ åæ $a è $b ÕÍêÍêæ: &true;.</entry>
</row>
<row>
<entry>$a or $b</entry>
<entry>Ãè (Or)</entry>
<entry>&true; ÅÐÇ ãÇæ $a Ãè $b ÕÍêÍÇ: &true;.</entry>
</row>
<row>
<entry>$a xor $b</entry>
<entry>Xor</entry>
<entry>&true; ÅÐÇ ãÇæ $a Ãè $b ÕÍêÍÇ: &true;¬ äãæ äêÓ ãäÇçåÇ.</entry>
</row>
<row>
<entry>! $a</entry>
<entry>äÇ (Not)</entry>
<entry>&true; ÅÐÇ äå êãæ $a ÕÍêÍÇ: &true;.</entry>
</row>
<row>
<entry>$a && $b</entry>
<entry>è (And)</entry>
<entry>&true; ÅÐÇ ãÇæ ãäñ åæ $a è $b ÕÍêÍêæ: &true;.</entry>
</row>
<row>
<entry>$a || $b</entry>
<entry>Ãè (Or)</entry>
<entry>&true; ÅÐÇ ãÇæ $a Ãè $b ÕÍêÍÇ: &true;.</entry>
</row>
</tbody>
</tgroup>
</table>
<simpara>
ÓÈÈ ÇäÊñîæèÙêæ ÇäåÎÊäáêæ äåïÔÚñðäÇÊ "and" è "or"
çè ÃæñîçÇ ÊÙåä ÈÍÓÈ ÃÓÈâêÇÊ åÎÊäáÉ. (ÇÓÊÙÑÖ
<link linkend="language.operators.precedence">ÃÓÈâêÉ ÇäåïÔÚñðäÇÊ - Operator
Precedence</link>.)
</simpara>
</sect1>
<sect1 id="language.operators.string">
<title>åïÔÚñðäÇÊ ÇäÓñîäÇÓä ÇäæñîÕêñîÉ (String Operators)</title>
<simpara>
çæÇã åïÔÚñðäêæ <type>ääÓäÇÓä ÇäæñîÕêñîÉ</type>. ÇäÃèä çè
åïÔÚñðä ÇäÊñîÊÇÈÙ "concatenation operator" ('.')¬ ÇäÐê êïÑÌÙ ÊÊÇÈÙ
èÓê×ÇÊç (arguments) Çäêåæé èÇäêÓÑé. ÇäËÇæê çè åïÔÚñðä ÇäÊñîÙêêæ ÇäÊîÊÇÈÙêñ
"concatenating assignment operator" ('.=')¬ ÇäÐê êïäÍñðâ ÇäèÓê×É Ùäé ÇäÌçÉ Çäêåæé
ÈÇäèÓê×É ÇäÊñðê Ùäé ÇäÌçÉ ÇäêÓÑé. ÑÌÇÁë¬ ÇâÑÇ <link
linkend="language.operators.assignment">åïÔÚñðäÇÊ ÇäÊñîÙêêæ (Assignment
Operators)</link> åæ ÃÌä åÒêÏ åæ ÇäåÙäèåÇÊ.
</simpara>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
$a = "ÃçäÇ ";
$b = $a . "êÇ âÏÓ!"; // ÇäÂæ¬ $b ÊÍÊèê "ÃçäÇ êÇ âÏÓ!"
$a = "ÃçäÇ ";
$a .= "êÇ âÏÓ!"; // ÇäÂæ¬ $a ÊÍÊèê "ÃçäÇ êÇ âÏÓ!"
]]>
</programlisting>
</informalexample>
</para>
<para>
ÇÓÊÙÑÖ ÃêÖÇ áÕèä ÇäÏñîäêä Íèä
<link linkend="language.types.string">æèÙ ÇäÓñðäÓäÉ ÇäæñîÕêñîÉ</link> è
<link linkend="ref.strings">ÏèÇä ÇäÓñîäÇÓä ÇäæñîÕêñîÉ</link>.
</para>
</sect1>
<sect1 id="language.operators.array">
<title>åïÔÚñðäÇÊ ÇäåÕáèáÇÊ (Array Operators)</title>
<simpara>
åïÔÚñðä ÇäåÕáèáÇÊ ÇäèÍêÏ áê PHP çè åïÔÚñðä <literal>+</literal>.
êâèå ÈÅäÍÇâ ÇäåÕáèáÉ ÇäÊñðê Ùäé ÇäÌçÉ Çäêåæé ÈÇäåÕáèáÉ ÇäÊñðê Ùäé ÇäÌçÉ ÇäêÓÑé¬ áê Íêæ
Ãæñî ÇäåáÇÊêÍ ÇäåïãÑñîÑÉ (duplicated keys) äÇ êÊå ÓÍâçÇ.
</simpara>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
$a = array("a" => "ÊáÇÍÉ", "b" => "åèÒÉ");
$b = array("a" =>"ÅÌÇÕ", "b" => "áÑÇèäÉ", "c" => "ãÑÒ");
$c = $a + $b;
var_dump($c);
]]>
</programlisting>
</informalexample>
ÙæÏ ÇäÊñîæáêЬ Óêâèå çÐÇ ÇäÎÇ×è× È×ÈÇÙÉ ÇäÊñîÇäêñ:
<screen role="php">
<![CDATA[
array(3) {
["a"]=>
string(5) "ÊáÇÍÉ"
["b"]=>
string(6) "åèÒÉ"
["c"]=>
string(6) "ãÑÒ"
}
]]>
</screen>
</para>
<para>
ÇÓÊÙÑÖ ÃêÖÇ áÕèä ÇäÏñîäêä ÈÎÕèÕ
<link linkend="language.types.array">æèÙ ÇäåÕáèáÉ</link> è
<link linkend="ref.array">ÏèÇä ÇäåÕáèáÇÊ</link>.
</para>
</sect1>
</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
-->