

   



      function,        ,   :

function MyFunction()
{
 // 
}

   ,        .     ,         .  ,      ,    :

function MyFunction($var, $var1, $var2)

   - ,        return:

function MyFunction()
{
  return $ret; //    $ret
}

  .

<?
  function get_sum()
  {
  $var = 5;
  $var1 = 10;
  $sum = $var + $var1;
  return $sum;
  }
  echo(get_sum()); //  15
?>

    ,    .       ,        .  ,      echo     .    ,      ,     .      echo   :

<?
  function get_sum()
  {
  $var = 5;
  $var1 = 10;
  $sum = $var + $var1;
  echo $sum;
  }
  get_sum();
?>

 $var  $var1                :

<?
  function get_sum($var, $var1)
  {
  $sum = $var + $var1;
  echo $sum;
  }
  get_sum(5,2); //  7
?>

,  ,   ,   .

       , . .      ,           :

<?
  function get_sum($var) //    
  {
  $var = $var + 5;
  return $var;
  }
  $new_var = 20;
  echo(get_sum($new_var)); //  25
  echo("<br>$new_var"); //  20
?>

            ,     .         (&):

  function get_sum($var, $var1, &$var2)

    $var  $var1    ,   $var2 -  .  ,     ,        -:

<?
  function get_sum(&$var) //    
  {
  $var = $var + 5;
  return$var;
  }
  $new_var = 20;
  echo(get_sum($new_var)); //  25
  echo("<br>$new_var"); //  25
?>

2   



      .  ,          ,          :

<?
  function get_sum()
  {
  $var = 5; //  
  echo $var;
  }
  $var = 10; //  
  get_sum(); //  5 ( )
  echo("<br>$var"); //  10 ( )
?>

    ,        global.      global,        :

<?
function get_sum()
  {
  global $var;
  $var = 5; //   
  echo $var;
  }
  $var = 10;
  echo("$var<br>"); //  10
  get_sum(); //  5 (  )
?>

          $GLOBALS:

<?
  function get_sum()
  {
  $GLOBALS["var"] = 20; //    $var
  echo($GLOBALS["var"]);
  }
  $var = 10;
  echo("$var<br>"); //  10
  get_sum(); //  20 (  )
?>

 $GLOBALS           ,    .


3   



      ,     .        ,         ,    .  ,               .        ,  -,         1:

  function counter()
  {
  $counter = 0;
  return ++$counter;
  }

 ,           ,         static:

  function counter()
  {
  static $counter = 0;
  return ++$counter;
  }

       . . .,    ,      ,  $counter     .

4   



   ,      .     .    ,        .      ,      ,      .

     -         . ,       -      ,                .

<?
  function degree($x,$y)
  {
  if($y)
  {
  return $x*degree($x,$y-1);
  }
  return 1;
  }
  echo(degree(2,4)); //  16
?>

    ,  xy  x*x(y-1).      24    2*2?.  2*2?   2*2?     ,      .

     :

<?
  function degree($x,$y)
  {
  for($result = 1; $y > 0; --$y)
  {
  $result *= $x;
  }
  return $result;
  }
  echo(degree(2,4)); //  16
?>

 ,      ,     ,     ""  .

<?
  function fact($x)
  {
  if ($x < 0) return 0;
  if ($x == 0) return 1;
  return $x * fact($x - 1);
  }
  echo (fact(3)); //  6
?>

      ,         .       1,  0! = 1.           1  ,        . . .   :

k * (k - 1) * (k - 2) * ... * 3 * 2 * 1 * 1

       fact(0),       1  ,    ,    ,   1 * fact(1 - 1).

    :

<?
  function fact($x)
  {
  for ($result = 1; $x > 1; --$x)
  {
  $result *= $x;
  }
  return $result;
  }
  echo (fact(6)); //  720
?>