kk              Fri May 18 05:44:37 2001 EDT

  Modified files:              
    /phpdoc/en/language oop.xml 
  Log:
  - Some clarifications.
  - Normalized spelling of product names (PHP 3 and PHP 4)
    to go with the rest of our docs.
  
  
  
Index: phpdoc/en/language/oop.xml
diff -u phpdoc/en/language/oop.xml:1.13 phpdoc/en/language/oop.xml:1.14
--- phpdoc/en/language/oop.xml:1.13     Fri May 18 00:47:01 2001
+++ phpdoc/en/language/oop.xml  Fri May 18 05:44:37 2001
@@ -43,7 +43,7 @@
 
    <caution>
     <simpara>
-     The following cautionary note are valid for PHP4.
+     The following cautionary notes are valid for PHP 4.
     </simpara>
     
     <simpara>
@@ -103,7 +103,7 @@
    <para>
     Classes are types, that is, they are blueprints for actual
     variables. You have to create a variable of the desired type with
-    the new operator.
+    the <literal>new</literal> operator.
    </para>
  
    <informalexample>
@@ -126,18 +126,20 @@
    
    <para>
     Both, $cart and $another_cart, have functions add_item(),
-    remove_item() and a variable items. These are distinct functions and
-    variables. You can think of the objects as something like
-    directories in a filesystem, where you can have two different 
-    files README.TXT, as long as they are in different directories,
-    and you'll have to type the full pathname in order to reach each
-    file from the toplevel directory. In PHP terms, the toplevel
-    directory would be the global namespace, and the pathname separator
-    would be -&gt;. Thus, the names $cart-&gt;items and 
-    $another_cart-&gt;items name two different variables. Note
-    that the variable is named $cart-&gt;items, not
-    $cart-&gt;$items, that is, a variable name in PHP has only a
-    single dollar sign.
+    remove_item() and a variable items. These are distinct
+    functions and variables. You can think of the objects as
+    something similar to directories in a filesystem. In a
+    filesystem you can have two different files README.TXT, as
+    long as they are in different directories.  Just like with
+    directories where you'll have to type the full pathname in
+    order to reach each file from the toplevel directory, you
+    have to specify the complete name of the function you want
+    to call: In PHP terms, the toplevel directory would be the
+    global namespace, and the pathname separator would be -&gt;. 
+    Thus, the names $cart-&gt;items and $another_cart-&gt;items
+    name two different variables. Note that the variable is
+    named $cart-&gt;items, not $cart-&gt;$items, that is, a
+    variable name in PHP has only a single dollar sign.
    </para>
 
    <informalexample>
@@ -156,11 +158,11 @@
    </informalexample>
 
    <para>
-    Within a class, you do not know under which name the object will
+    Within a class definition, you do not know under which name the object will
     be accessible in your program: At the time the Cart class was 
     written, it was unknown that the object will be named $cart or
     $another_cart later. Thus, you cannot write $cart-&gt;items within
-    the Cart class. Instead, in order to be able to access it's own
+    the Cart class itself. Instead, in order to be able to access it's own
     functions and variables from within a class, one can use the
     pseudo-variable $this which can be read as 'my own' or
     'current object'. Thus, '$this->items[$artnr] += $num' can
@@ -225,22 +227,24 @@
 
    <caution>
     <simpara>
-     In PHP3 and PHP4 constructors behave differently. The PHP4
+     In PHP 3 and PHP 4 constructors behave differently. The PHP 4
      semantics are strongly preferred.
     </simpara>
    </caution>
 
    <para>
     Constructors are functions in a class that are automatically
-    called when you create a new instance of a class. In PHP3, a
+    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 PHP4, a function becomes a constructor, when
-    it has the same name as the class it is defined in.
+    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).
    </para>
  
    <informalexample>
     <programlisting role="php">
-// Works in PHP3 and PHP4.
+// Works in PHP 3 and PHP 4.
 class Auto_Cart extends Cart {
     function Auto_Cart () {
         $this->add_item ("10", 1);
@@ -253,7 +257,7 @@
     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 also take arguments and these arguments can be optional, which
+    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.
@@ -261,7 +265,7 @@
  
    <informalexample>
     <programlisting role="php">
-// Works in PHP3 and PHP4.
+// Works in PHP 3 and PHP 4.
 class Constructor_Cart extends Cart {
     function Constructor_Cart ($item = "10", $num = 1) {
         $this->add_item ($item, $num);
@@ -280,7 +284,7 @@
 
    <caution>
     <simpara>
-     In PHP3, derived classes and constructors have a number of
+     In PHP 3, derived classes and constructors have a number of
      limitations. The following examples should be read carefully
      to understand these limitations.
     </simpara> 
@@ -300,23 +304,23 @@
   }
 }
 
-// no constructor is being called in PHP3.
+// no constructor is being called in PHP 3.
 $b = new B;
     </programlisting>
    </informalexample>
 
    <para>
-    In PHP3, no constructor is being called in the above example.
-    The rule in PHP3 is: 'A constructor is a function of the same
+    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.
    </para>
    
    <para>
-    This is fixed in PHP4 by introducing another rule: If a class
+    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.&lt;br>' in PHP4.
+    'I am the constructor of A.&lt;br>' in PHP 4.
    </para>
 
    <informalexample>
@@ -344,24 +348,24 @@
    </informalexample>
    
    <para>
-    In PHP3, the function B() in class A will suddenly become a
+    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 PHP3 is: 'A constructor is a function of the same
-    name as the class.'. PHP3 does not care if the function is
+    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.
    </para>
    
    <para>
-    This is fixed in PHP4 by modifying the rule to: 'A constructor
+    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 PHP4, the class B would have no constructor function
+    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.&lt;br>'.
    </para>
    
    <caution>
     <simpara>
-     Neither PHP3 nor PHP4 call constructors of the base class 
+     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.
@@ -370,7 +374,7 @@
    
    <note>
     <simpara>
-     There are no destructors in PHP3 or PHP4. You may use
+     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.
     </simpara>
@@ -389,7 +393,7 @@
 
    <caution>
     <simpara>
-     The following is valid for PHP4 only.
+     The following is valid for PHP 4 only.
     </simpara>
    </caution>
 
@@ -452,7 +456,9 @@
     The original definition in class A is shadowed
     and no longer available, unless you are refering specifically
     to the implementation of example() in class A using the 
-    ::-operator. Write A::example() to do this.
+    ::-operator. Write A::example() to do this (in fact, you
+    should be writing parent::example(), as shown in the next
+    section).
    </para>
    
    <para>
@@ -513,7 +519,7 @@
 
   <note>
    <simpara>
-    In PHP3, objects will lose their class association
+    In PHP 3, objects will lose their class association
     throughout the process of serialization and unserialization. 
     The resulting variable is of type object, but has no class
     and no methods, thus it is pretty useless (it has become
@@ -523,7 +529,7 @@
 
   <caution>
    <simpara>
-    The following information is valid for PHP4 only. 
+    The following information is valid for PHP 4 only. 
    </simpara>
   </caution>
 

Reply via email to