Chapter 12. Functions

Table of Contents
User-defined functions
Function arguments
Returning values
Variable functions
Internal (built-in) functions

User-defined functions

A function may be defined using syntax such as the following:

Example 12-1. Pseudo code to demonstrate function uses

<?php
function foo ($arg_1, $arg_2, /* ..., */ $arg_n)
{
    echo
"Example function.\n";
    return
$retval;
}
?>

Any valid PHP code may appear inside a function, even other functions and class definitions.

In PHP 3, functions must be defined before they are referenced. No such requirement exists in PHP 4. Except when a function is conditionally defined such as shown in the two examples below.

When a function is defined in a conditional manner such as the two examples shown. Its definition must be processed prior to being called.

Example 12-2. Conditional functions

<?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";
}

?>

Example 12-3. Functions within functions

<?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 accessible. */

bar();

?>

PHP does not support function overloading, nor is it possible to undefine or redefine previously-declared functions.

Note: Function names are case-insensitive, though it is usually good form to call functions as they appear in their declaration.

PHP 3 does not support variable numbers of arguments to functions, although default arguments are supported (see Default argument values for more information). PHP 4 supports both: see Variable-length argument lists and the function references for func_num_args(), func_get_arg(), and func_get_args() for more information.


Sites of interest: Web Hosting : Reseller Hosting : Website Hosting : HTML Editor : Web Design Templates : Free Web Hosting : ASP code examples : PHP & MySQL Code Examples
  Copyright 2004 Evrsoft Developer Network. Privacy policy - Link to Us

Contact Evrsoft