[PHP-DOC] cvs: phpdoc /en/language functions.xml From: Sara Golemon (php <email protected>)
Date: 11/28/02

pollita Thu Nov 28 15:43:00 2002 EDT

  Modified files:
    /phpdoc/en/language functions.xml
  Log:
  Documentation Bug #13568. Added qualification for conditional function declarations.
  
  
Index: phpdoc/en/language/functions.xml
diff -u phpdoc/en/language/functions.xml:1.28 phpdoc/en/language/functions.xml:1.29
--- phpdoc/en/language/functions.xml:1.28 Mon Jul 8 07:40:02 2002
+++ phpdoc/en/language/functions.xml Thu Nov 28 15:43:00 2002
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.28 $ -->
+<!-- $Revision: 1.29 $ -->
  <chapter id="functions">
   <title>Functions</title>
 
@@ -37,8 +37,78 @@
    </simpara>
    <simpara>
     In PHP 3, functions must be defined before they are referenced. No
- such requirement exists in PHP 4.
+ such requirement exists in PHP 4. <emphasis>Except</emphasis> when
+ a function is conditionally defined such as shown in the two examples
+ below.
    </simpara>
+ <para>
+ When a function is defined in a conditional manner such as the two
+ examples shown. Its definition must be processed <emphasis>prior</emphasis>
+ to being called.
+ <example>
+ <title>Conditional functions</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+$makefoo = true;
+
+/* We can't call foo() from here
+ since it doesn't exist yet,
+ but we can call bar() */
+
+bar();
+
+if ($makefoo) {
+ function foo ()
+ {
+ echo "I don't exist until program execution reaches me.\n";
+ }
+}
+
+/* Now we can safely call foo()
+ since $makefoo evaluated to true */
+
+if ($makefoo) foo();
+
+function bar() {
+{
+ echo "I exist immediately upon program start.\n";
+}
+
+?>
+]]>
+ </programlisting>
+ </example>
+ <example>
+ <title>Functions within functions</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+function foo()
+{
+ function bar()
+ {
+ echo "I don't exist until foo() is called.\n";
+ }
+}
+
+/* We can't call bar() yet
+ since it doesn't exist. */
+
+foo();
+
+/* Now we can call bar(),
+ foo()'s processesing has
+ made it accessable. */
+
+bar();
+
+?>
+]]>
+ </programlisting>
+ </example>
+ </para>
    <simpara>
     PHP does not support function overloading, nor is it possible to
     undefine or redefine previously-declared functions.

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