aidan           Mon Oct 11 02:27:54 2004 EDT

  Modified files:              
    /phpdoc/en/language/oop5    magic.xml 
  Log:
  Clarified when __toString is called (bug #30379)
  
http://cvs.php.net/diff.php/phpdoc/en/language/oop5/magic.xml?r1=1.4&r2=1.5&ty=u
Index: phpdoc/en/language/oop5/magic.xml
diff -u phpdoc/en/language/oop5/magic.xml:1.4 phpdoc/en/language/oop5/magic.xml:1.5
--- phpdoc/en/language/oop5/magic.xml:1.4       Thu Oct  7 10:04:17 2004
+++ phpdoc/en/language/oop5/magic.xml   Mon Oct 11 02:27:51 2004
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.4 $ -->
+<!-- $Revision: 1.5 $ -->
  <sect1 id="language.oop5.magic">
   <title>Magic Methods</title>
   <para>
@@ -64,10 +64,12 @@
     The <literal>__toString</literal> method allows a class to decide
     how it will react when it is converted to a string.
    </para>
-   <programlisting role="php">
+   <example>
+    <title>Simple example</title>
+    <programlisting role="php">
 <![CDATA[
 <?php
-// Define a simple class
+// Declare a simple class
 class TestClass
 {
     public $foo;
@@ -85,13 +87,39 @@
 echo $class;
 ?>
 ]]>
-   </programlisting>
-   &example.outputs;
-   <screen>
+    </programlisting>
+    &example.outputs;
+    <screen>
 <![CDATA[
 Hello
 ]]>
-   </screen>
+    </screen>
+   </example>
+   <para>
+    It is worth noting that the <literal>__toString</literal> method
+    will only be called when it is directly combined with
+    <function>echo</function> or <function>print</function>.
+   </para>
+   <example>
+    <title>Cases where <literal>__toString</literal> is called</title>
+    <programlisting role="php">
+<![CDATA[
+<?php
+// __toString called
+echo $class;
+
+// __toString called (still a normal parameter for echo)
+echo 'text', $class;
+
+// __toString not called (concatenation operator used first)
+echo 'text' . $class;
+
+// __toString not called (casted to string first)
+echo (string) $class;
+?>
+]]>
+    </programlisting>
+   </example>
   </sect2>
  </sect1>
  

Reply via email to