cvs: phpdoc-ar /language oop.xml
[email protected] ("Hafid Benhadria") Wed, 26 May 2004 23:14:22 -0000
| Newsgroups | php.doc.ar |
|---|---|
| Message-ID | <cvshafid1085613262@cvsserver> |
hafid Wed May 26 19:14:22 2004 EDT
Modified files:
/phpdoc-ar/language oop.xml
Log:
Second Partial Translation. Always EN1.52 compatible.
hafid-20040526191422.txt
(text/plain, 10.8 KB)
http://cvs.php.net/diff.php/phpdoc-ar/language/oop.xml?r1=1.1&r2=1.2&ty=u
Index: phpdoc-ar/language/oop.xml
diff -u phpdoc-ar/language/oop.xml:1.1 phpdoc-ar/language/oop.xml:1.2
--- phpdoc-ar/language/oop.xml:1.1 Tue May 25 20:10:47 2004
+++ phpdoc-ar/language/oop.xml Wed May 26 19:14:21 2004
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="WIN-1256"?>
-<!-- $Revision: 1.1 $ -->
+<!-- $Revision: 1.2 $ -->
<!-- EN-Revision: 1.52 Maintainer: hafid Status: working -->
<chapter id="language.oop">
<title>ÇáÃÕäÇÝ "Classes" æÇáßÇÆäÇÊ "Objects"</title>
@@ -307,30 +307,30 @@
</sect1>
<sect1 id="language.oop.constructor">
- <title><literal>Constructors</literal></title>
+ <title>ÇáÈÇäíÇÊ: <literal>Constructors</literal></title>
<caution>
<simpara>
- In PHP 3 and PHP 4 constructors behave differently. The PHP 4
- semantics are strongly preferred.
+ ÈÍÓÈ PHP 3 Ãæ PHP 4¡ ÊÊÕÑÝ ÇáÈóÇäöíóÇÊ ÈÕæÑÉ ãÊÛÇíÑÉ. ÊõÝÖøóá ÈÞæÉ
+ ÏáÇÆáíÉ PHP 4.
</simpara>
</caution>
<para>
- Constructors are functions in a class that are automatically
- called when you create a new instance of a class with
- <literal>new</literal>. In PHP 3, a
- function becomes a constructor when it has the same name as
- the class. In PHP 4, a function becomes a constructor, when
- it has the same name as the class it is defined in - the
- difference is subtle, but crucial (see below).
+ ÇáÈÇäíÇÊ åí ÏæÇá Ýí ÕäÝ ÊÊã ãäÇÏÇÊåÇ ÂáíÇ
+ ÚäÏ ÇäÔÇÁ ãËíá "instance" ÌÏíÏ áÕöäÝ¡ ÈæÇÓØÉ
+ <literal>new</literal>. Ýí PHP 3¡
+ ÊÕÈÍ ÏÇáÉ ãÇ ÈÇäíÉð ÚäÏãÇ ÊÊæÝÑ Úáì äÝÓ ÇáÅÓÇã ãËá
+ ÇáÕøöäÝ. Ýí PHP 4¡ ÊÕÈÍ ÏÇáÉ ãÇ ÈÇäíÉð ÚäÏãÇ
+ ÊÊæÝÑ Úáì äÝÓ ÇáÅÓã ãËá ÇáÕøöäÝ ÇáÐøí ÚõÑøöÝÊ Èå -
+ ÇáÝÑÞ ÏÞíÞ áßäå ÍÇÓã (ÇÓÊÚÑÖ ãÇ íÃÊí).
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
-// Works in PHP 3 and PHP 4.
+// íÚãá ãÚ PHP 3 æ PHP 4.
class Auto_Cart extends Cart {
function Auto_Cart() {
$this->add_item("10", 1);
@@ -342,31 +342,31 @@
</informalexample>
<para>
- This defines a class Auto_Cart that is a Cart plus a constructor
- which initializes the cart with one item of article number "10"
- each time a new Auto_Cart is being made with "new". Constructors
- can take arguments and these arguments can be optional, which
- makes them much more useful. To be able to still use the class
- without parameters, all parameters to constructors should be
- made optional by providing default values.
+ íõÚÑøöÝõ åÐÇ ÕöäÝ Auto_Cart æåæ ÚÈÇÑÉ Úä ÓáøÉ "Cart" ÅÖÇÝÉ Åáì ÈÇäíÉ
+ ÊÞæã ÈÇÓÊåáÇá ÇáÓøáøÉ ÈÛÑÖ æÇÍÏ ãä ÇáÓøáÚÉ ÑÞã "10"
+ Ýí ßáø ãÑøÉ íÌÑí ÝíåÇ ÇäÔÇÁ ÝíåÇ Auto_Cart ÌÏíÏ ÈæÇÓØÉ "new". ÈÇãßÇä ÇáÈÇäíÇÊ
+ ÃÎÐ ÏáÇÆá "arguments"¡ æÇáÊíø íãßä Ãä Êßæä ÇÎÊíÇÑíøÉ¡ ããÇ
+ íÌÚáåÇ ÃßËÑ ÞÇÈáíÉ ááÇÓÊÎÏÇã ÈÔßá ãõÚúÊóÈóÑ. ááÇÓÊãÑÇÑ Ýí ÇáÞÏÑÉ Úáì ÇÓÊÎÏÇã ÇáÕøöäÝ
+ ãä Ïæä ÇáãóÚúáóãóÇÊ "parameters"¡ íÊæÌÈ ÌÚá ßÇÝÉ ÇáãóÚúáóãóÇÊ¡ ÈÇáäøÓÈÉ ááÈÇäíÇÊ¡
+ ÇÎÊíÇÑíøÉ ÈÊÞÏíã Þíã ÇÝÊÑÇÖíøÉ.
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
-// Works in PHP 3 and PHP 4.
+// íÚãá ãÚ PHP 3 æ PHP 4.
class Constructor_Cart extends Cart {
function Constructor_Cart($item = "10", $num = 1) {
$this->add_item ($item, $num);
}
}
-// Shop the same old boring stuff.
+// ÇÈÊíÇÚ äÝÓ ÇáÈÖÇÆÚ ÇáãõãøöáóÉ ÇáÞÏíãÉ.
$default_cart = new Constructor_Cart;
-// Shop for real...
+// ÇÈÊíÇÚ ÍÞíÞíø...
$different_cart = new Constructor_Cart("20", 17);
?>
@@ -375,16 +375,16 @@
</informalexample>
<para>
- You also can use the <literal>@</literal> operator to
- <emphasis>mute</emphasis> errors occurring in the constructor, e.g.
+ íãßäß ÃíÖÇ ÇÓÊÎÏÇã ãõÔÛøöá <literal>@</literal> ÈÛÑÖ
+ <emphasis>ßÊã "mute"</emphasis> ÇáÃÎØÇÁ ÇáØøóÇÑÆÉ Ýí ÇáÈÇäíÉ¡ Úáì ÓÈíá ÇáãËÇá:
<literal>@new</literal>.
</para>
<caution>
<simpara>
- In PHP 3, derived classes and constructors have a number of
- limitations. The following examples should be read carefully
- to understand these limitations.
+ Ýí PHP 3¡ ÊÊæÝÑ Úáì ÇáÃÕäÇÝ ÇáãõÔÊøóÞóÉ æÇáÈÇäíÇÊ Úáì ÚÏÏ ãä
+ ÇáÊøóÞííÏÇÊ "limitations". íÌÈ ÞÑÇÁÉ ÇáÃãËáÉ ÇáÂÊíøóÉ ÈÇÍÊÑÇÓ
+ áÝåã åÐå ÇáÊøÞííÏÇÊ.
</simpara>
</caution>
@@ -394,17 +394,17 @@
<?php
class A {
function A() {
- echo "I am the constructor of A.<br />\n";
+ echo "ÃäÇ ÈÇäíÉ A.<br />\n";
}
}
class B extends A {
function C() {
- echo "I am a regular function.<br />\n";
+ echo "ÃäÇ ÏÇáÉ ÇÚÊíÇÏíøÉ.<br />\n";
}
}
-// no constructor is being called in PHP 3.
+// áÇ ÈÇäíÉ íÌÑí ãäÇÏÇÊåÇ Ýí PHP 3.
$b = new B;
?>
]]>
@@ -412,17 +412,17 @@
</informalexample>
<para>
- In PHP 3, no constructor is being called in the above example.
- The rule in PHP 3 is: 'A constructor is a function of the same
- name as the class.'. The name of the class is B, and there is
- no function called B() in class B. Nothing happens.
+ Ýí PHP 3¡ æáÇ ÃíÉ ÈÇäíÉ ÊÊã ãäÇÏÇÊåÇ Ýí ÇáãËÇá ÇáÚáæíø.
+ ÇáÞÇÚÏÉ Ýí PHP 3 åí: 'ÈÇäíÉ ãÇ åí ÚÈÇÑÉ Úä ÏÇáÉ áåÇ äÝÓ
+ ÇáÅÓã ãËá ÇáÕøöäÝ.'. ÅÓã ÇáÕøöäÝ åæ B æáíÓ åäÇß
+ ÃíøÉ ÏÇáÉ ÊõÏÚóì B() Ýí ÇáÕøöäÝ B. áã íÍÏË ÔíÁ.
</para>
<para>
- This is fixed in PHP 4 by introducing another rule: If a class
- has no constructor, the constructor of the base class is being
- called, if it exists. The above example would have printed
- 'I am the constructor of A.<br />' in PHP 4.
+ Êãø ÊÞæíã åÐÇ ÇáÃãÑ Ýí PHP 4 ÈÅÏÎÇá ÞÇÚÏÉ ÃÎÑì: ÅÐÇ áã íÊæÝÑ ÕöäÝñ ãÇ
+ Úáì ÈÇäíÉ¡ ÝÅäøóå íÊã ãäÇÏÇÉ ÈÇäíÉ ÇáÕøöäÝ ÇáÞÇÚÏíø "base class"¡
+ Åä æõÌöÏ. ÇáãËÇá ÇáÃÚáì íÄÏí Åáì ØÈÇÚÉ
+ 'ÃäÇ ÈÇäíÉ A.<br />' Ýí PHP 4.
</para>
<informalexample>
@@ -433,13 +433,13 @@
{
function A()
{
- echo "I am the constructor of A.<br />\n";
+ echo "ÃäÇ ÈÇäíÉ A.<br />\n";
}
function B()
{
- echo "I am a regular function named B in class A.<br />\n";
- echo "I am not a constructor in A.<br />\n";
+ echo "ÃäÇ ÏÇáÉ ÇÚÊíÇÏíøÉ ÊõÏúÚóì B Ýí ÇáÕøöäÝ A.<br />\n";
+ echo "áÓÊ ÈÇäíÉ Ýí A.<br />\n";
}
}
@@ -447,11 +447,11 @@
{
function C()
{
- echo "I am a regular function.<br />\n";
+ echo "ÃäÇ ÏÇáÉ ÇÚÊíÇÏíøÉ.<br />\n";
}
}
-// This will call B() as a constructor.
+// ÓíÄÏí åÐÇ Åáì ãäÇÏÇÉ B() Úáì ÃäøåÇ ÈÇäíÉ.
$b = new B;
?>
]]>
@@ -459,43 +459,43 @@
</informalexample>
<para>
- In PHP 3, the function B() in class A will suddenly become a
- constructor in class B, although it was never intended to be.
- The rule in PHP 3 is: 'A constructor is a function of the same
- name as the class.'. PHP 3 does not care if the function is
- being defined in class B, or if it has been inherited.
+ Ýí PHP 3¡ ÇáÏøÇáÉ B() Ýí ÇáÕøöäÝ A ÓÊõÕÈöÍ ÝÌÃÉ
+ ÈÇäíÉð Ýí ÇáÕøöäÝ B ÈÇáÑøÛã ãä ÚÏã ãÞÕæÏíÉ ÔíÁ ãä åÐÇ ÇáÞÈíá.
+ ÇáÞÇÚÏÉ Ýí PHP 3 åí: 'ÈÇäíÉñ ãÇ åí ÏÇáÉ áåÇ äÝÓ
+ ÇáÅÓã ãËá ÇáÕøöäÝ.'. áÇ ÊßÊÑË PHP 3 ÅÐÇ Êãø ÊÚÑíÝ ÇáÏøÇáÉ
+ Ýí ÇáÕøöäÝ B Ãæ ÅÐÇ ÊãøÊ æÑÇËÊåÇ.
</para>
<para>
- This is fixed in PHP 4 by modifying the rule to: 'A constructor
- is a function of the same name as the class it is being defined
- in.'. Thus in PHP 4, the class B would have no constructor function
- of its own and the constructor of the base class would have been
- called, printing 'I am the constructor of A.<br />'.
+ Êãø ÊÞæíã åÐÇ ÇáÃãÑ Ýí PHP 4 ÈÊÚÏíá ÇáÞÇÚÏÉ Åáì: 'ÈÇäíÉñ ãÇ
+ åí ÏÇáÉ áåÇ äÝÓ ÇáÅÓã ãËá ÇáÕøöäÝ ÇáÐøí ÌÑì ÊÚÑíÝåÇ
+ Èå.'. æåßÐÇ¡ ÝÅäøå ÈÜPHP 4¡ ÇáÕøöäÝ B áä íÊæÝÑ Úáì ÏÇáÉ ÈÇäíøÉ¡
+ ÈãÈÇÏÑÉ ÐÇÊíøÉ¡ æÓÊÊã ãäÇÏÇÉ ÈÇäíÉ ÇáÕøöäÝ ÇáÞÇÚÏíø
+ áíõØúÈóÚ 'ÃäÇ ÈÇäíÉ A.<br />'.
</para>
<caution>
<simpara>
- Neither PHP 3 nor PHP 4 call constructors of the base class
- automatically from a constructor of a derived class. It is
- your responsibility to propagate the call to constructors
- upstream where appropriate.
+ áÇ PHP 3 æáÇ PHP 4 ÊõäÇÏí ÈÇäíÇÊ ÇáÕøöäÝ ÇáÞÇÚÏíø
+ ÂáíÇ ÇäØáÇÞÇð ãä ÈÇäíÉ ÕöäÝ ãõÔÊøóÞ. ÊÞÚ Úáì ÚÇÊöÞß
+ ãÓÄæáíÉ äÔÑ äÏÇÁ ÇáÈÇäíÇÊ
+ ÃÝÞíÇð ÍíË íáíÞ ÇáãÞÇã.
</simpara>
</caution>
<note>
<simpara>
- There are no destructors in PHP 3 or PHP 4. You may use
- <function>register_shutdown_function</function> instead
- to simulate most effects of destructors.
+ áíÓÊ åäÇß åÇÏãÇÊ "destructors" Ýí PHP 3 Ãæ PHP 4. íãßäß ÇÓÊÎÏÇã
+ <function>register_shutdown_function</function> ÈÏáÇ ãä Ðáß
+ ÈÛÑÖ ãõÍÇßÇÉ ãõÚÙóã ÊÃËíÑÇÊ ÇáåÇÏãÇÊ.
</simpara>
</note>
<para>
- Destructors are functions that are called automatically
- when an object is destroyed, either with <function>unset</function>
- or by simply going out of scope. There are no destructors
- in PHP.
+ ÇáåÇÏãÇÊ åí ÏæÇá ÊÊã ãäÇÏÇÊåÇ ÂáíÇ
+ ÚäÏ ÊÍØíã ßÇÆä ãÇ¡ ÅãÇ ÈæÇÓØÉ <function>unset</function>
+ Ãæ ÈÈÓÇØÉ ÈÇáÎÑæÌ ãä ÇáãÏì "scope". áíÓÊ åäÇß åÇÏãÇÊ
+ Ýí PHP.
</para>
</sect1>