philip          Fri Sep 27 16:18:31 2002 EDT

  Modified files:              
    /phpdoc/en/chapters tutorial.xml 
  Log:
  Added section on "How to read a function definition (prototype)"
  # One day this will go in "About the manual", when the PDF is fixed ;)
  
  
Index: phpdoc/en/chapters/tutorial.xml
diff -u phpdoc/en/chapters/tutorial.xml:1.8 phpdoc/en/chapters/tutorial.xml:1.9
--- phpdoc/en/chapters/tutorial.xml:1.8 Thu Sep 26 14:30:29 2002
+++ phpdoc/en/chapters/tutorial.xml     Fri Sep 27 16:18:30 2002
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.8 $ -->
+<!-- $Revision: 1.9 $ -->
  <chapter id="tutorial">
   <title>A simple tutorial</title>
 
@@ -322,7 +322,134 @@
     if the string <literal>MSIE</literal> was found or not.
    </para>
   </sect1>
+  
+  <sect1 id="tutorial.prototypes">
+   <title>How to read a function definition (prototype)</title>
+   <para>
+    Each function is documented for quick reference, knowing how 
+    to read and understand the manual will make using PHP 
+    much easier.  Rather than relying on examples or cut/paste, you want 
+    to know how to read function definitions (prototypes).  Let's begin:
+   </para>
+   <note>
+    <title>
+     Prerequisite: Basic understanding of <link linkend="language.types">types</link>
+    </title>
+    <para>
+     Although PHP is a loosly typed language, it's important to have 
+     a basic understanding of <link linkend="language.types">types</link> as 
+     they have important meaning.
+    </para>
+   </note>
+   <para>
+    Function definitions tell us what 
+    type of value is <link linkend="functions.returning-values">returned</link>, 
+    let's use the definition for <function>strlen</function> as our first example:
+   </para>
+   <para>
+    <screen role="html">
+strlen
+
+(PHP 3, PHP 4 >= 4.0.0)
+strlen -- Get string length
 
+Description
+int strlen ( string str )
+
+Returns the length of string.
+    </screen>
+   </para>
+   <para>
+    <table>
+     <title>Explanation of a function definition</title>
+      <tgroup cols="2">
+       <thead>
+        <row>
+         <entry>Part</entry>
+         <entry>Description</entry>
+        </row>
+       </thead>
+       <tbody>
+        <row>
+         <entry>
+         strlen
+        </entry>
+         <entry>
+          The function name.
+         </entry>
+        </row>
+        <row>
+         <entry>
+         (PHP 3, PHP 4 >= 4.0.0)
+        </entry>
+         <entry>
+         strlen() has been around in both all of PHP 3 and PHP 4
+         </entry>
+        </row>
+        <row>
+         <entry>
+         int
+        </entry>
+         <entry>
+         Type of value this function returns, which is an 
+         <link linkend="language.types.integer">integer</link>
+         (i.e. The length of a string is measured in numbers).
+         </entry>
+        </row>
+        <row>
+         <entry>
+         ( string str )
+        </entry>
+         <entry>
+         The first (and in this case the only) parameter/argument for the 
+         function strlen is named <parameter>str</parameter>, and it's a 
+         <link linkend="language.types.string">string</link>.
+         </entry>
+        </row>
+       </tbody>
+      </tgroup>
+     </table>
+    </para>
+    <para>
+     We could rewrite the above function definition in a generic way:
+    </para>
+    <para>
+     <screen role="html">
+      returned type    function name    ( parameter type   parameter name )
+     </screen>
+    </para>
+    <para>
+     Many functions take on multiple parameters, such as 
+<function>in_array</function>.
+     It's prototype is as follows:
+    </para>
+    <para>
+     <screen role="html">    
+      bool in_array ( mixed needle, array haystack [, bool strict])
+     </screen>
+    </para>
+    <para>
+     What does this mean?  in_array() returns a 
+     <link linkend="language.types.boolean">boolean</link> value, &true; on 
+     success (the <parameter>needle</parameter> was found in the 
+     <parameter>haystack</parameter>) or &false; on failure (the 
+     <parameter>needle</parameter> was not found in the 
+     <parameter>haystack</parameter>).  The first parameter is named 
+     <parameter>needle</parameter> and it can be many different 
+     <link linkend="language.types">types</link>, so we call it 
+     "<emphasis>mixed</emphasis>".  This mixed <parameter>needle</parameter> 
+     (what we're looking for) can either be a scalar value (string, integer, 
+     or <link linkend="language.types.float">float</link>), or an
+     <link linkend="language.types.array">array</link>.  
+     <parameter>haystack</parameter> (the array we're searching in) is the 
+     second parameter.  The third <emphasis>optional</emphasis> parameter is 
+     named <parameter>strict</parameter>.  All optional parameters are seen 
+     in <emphasis>[</emphasis> brackets <emphasis>]</emphasis>.  The manual 
+     states that the <parameter>strict</parameter> parameter defaults to 
+     boolean &false;.  See the manual page on each function for details on 
+     how they work.
+    </para>
+   </sect1>
+   
   <sect1 id="tutorial.forms">
    <title>Dealing with Forms</title>
    <para>



-- 
PHP Documentation Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to