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