锟矫伙拷锟皆讹拷锟藉函锟斤拷

一锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟铰碉拷锟斤法锟斤拷锟斤拷锟藉:

Example #1 展示锟斤拷锟斤拷锟斤拷途锟斤拷伪锟斤拷锟斤拷

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

锟轿猴拷锟斤拷效锟斤拷 PHP 锟斤拷锟诫都锟叫匡拷锟杰筹拷锟斤拷锟节猴拷锟斤拷锟节诧拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟藉。

锟斤拷锟斤拷锟斤拷锟斤拷 PHP 锟叫碉拷锟斤拷锟斤拷锟斤拷识锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷同锟斤拷锟斤拷效锟侥猴拷锟斤拷锟斤拷锟斤拷锟斤拷母锟斤拷锟铰伙拷锟竭达拷头锟斤拷锟斤拷锟斤拷锟斤拷锟侥革拷锟斤拷锟斤拷只锟斤拷禄锟斤拷摺锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟绞斤拷锟绞疚拷锟�[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*锟斤拷

锟斤拷锟斤拷锟斤拷锟斤拷锟节碉拷锟斤拷之前锟斤拷锟斤拷锟藉,锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟叫猴拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷时锟斤拷

锟斤拷一锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷时锟斤拷锟斤拷锟斤拷锟节碉拷锟矫猴拷锟斤拷之前锟斤拷锟藉。

Example #2 锟斤拷锟斤拷锟斤拷锟侥猴拷锟斤拷

<?php

$makefoo 
true;

/* 锟斤拷锟斤拷锟节此达拷锟斤拷锟斤拷foo()锟斤拷锟斤拷锟斤拷
   锟斤拷为锟斤拷锟斤拷锟斤拷锟斤拷锟节o拷锟斤拷锟斤拷锟皆碉拷锟斤拷bar()锟斤拷锟斤拷锟斤拷*/

bar();

if (
$makefoo) {
  function 
foo()
  {
    echo 
"I don't exist until program execution reaches me.\n";
  }
}

/* 锟斤拷锟节匡拷锟皆帮拷全锟斤拷锟矫猴拷锟斤拷 foo()锟剿o拷
   锟斤拷为 $makefoo 值为锟斤拷 */

if ($makefoofoo();

function 
bar()
{
  echo 
"I exist immediately upon program start.\n";
}

?>

Example #3 锟斤拷锟斤拷锟叫的猴拷锟斤拷

<?php
function foo()
{
  function 
bar()
  {
    echo 
"I don't exist until foo() is called.\n";
  }
}

/* 锟斤拷锟节伙拷锟斤拷锟杰碉拷锟斤拷bar()锟斤拷锟斤拷锟斤拷锟斤拷为锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 */

foo();

/* 锟斤拷锟节匡拷锟皆碉拷锟斤拷bar()锟斤拷锟斤拷锟剿o拷锟斤拷为foo()锟斤拷锟斤拷
   锟斤拷执锟斤拷使锟斤拷bar()锟斤拷锟斤拷锟斤拷为锟窖讹拷锟斤拷暮锟斤拷锟� */

bar();

?>

PHP 锟叫碉拷锟斤拷锟叫猴拷锟斤拷锟斤拷锟洁都锟斤拷锟斤拷全锟斤拷锟斤拷锟斤拷锟津,匡拷锟皆讹拷锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷之锟节讹拷锟斤拷之锟斤拷锟斤拷茫锟斤拷锟街拷锟饺伙拷锟�

PHP 锟斤拷支锟街猴拷锟斤拷锟斤拷锟截o拷也锟斤拷锟斤拷锟斤拷取锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷囟锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷暮锟斤拷锟斤拷锟�

Note: 锟斤拷锟斤拷锟斤拷锟角达拷小写锟睫关的o拷锟斤拷锟斤拷锟节碉拷锟矫猴拷锟斤拷锟斤拷时锟斤拷使锟斤拷锟斤拷锟节讹拷锟斤拷时锟斤拷同锟斤拷锟斤拷式锟角革拷锟斤拷习锟竭★拷

PHP 锟侥猴拷锟斤拷支锟斤拷锟缴憋拷锟斤拷锟斤拷锟侥诧拷锟斤拷锟斤拷默锟较诧拷锟斤拷锟斤拷锟轿硷拷 func_num_args()锟斤拷func_get_arg() 锟斤拷 func_get_args()锟斤拷

锟斤拷 PHP 锟叫匡拷锟皆碉拷锟矫递归函锟斤拷锟斤拷

Example #4 锟捷归函锟斤拷

<?php
function recursion($a)
{
    if (
$a 20) {
        echo 
"$a\n";
        
recursion($a 1);
    }
}
?>

Note: 锟斤拷锟斤拷要锟斤拷锟斤拷莨楹拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷贸锟斤拷锟� 100-200 锟姐,锟斤拷为锟斤拷锟杰伙拷使锟斤拷栈锟斤拷锟斤拷锟接讹拷使锟斤拷前锟脚憋拷锟斤拷止锟斤拷 锟斤拷锟睫递癸拷锟斤拷锟轿拷锟教达拷锟斤拷