PHP函数

2018-02-22 16:40 更新

PHP教程 - PHP函数

函数是执行特定任务的自包含代码块。

函数避免重复代码。它们使得更容易消除错误。

函数可以在其他脚本中重用。他们帮助你分解一个大项目。

参数

函数通常接受一个或多个参数,它们是由调用它的代码传递给函数的值。

然后函数可以读取并处理这些参数。

返回

函数可以可选地返回可以由调用代码读取的值。

这样,调用代码可以与函数通信。



PHP函数创建

我们用function关键字定义函数,后面是函数的名称和两个括号。

你的函数将执行的实际代码大括号之间。

定义函数使用以下语法:

function myFunc() { 
   // (do stuff here) 
}   

示例 - 定义函数

定义函数

<?PHP
         function hello() { 
            echo "Hello, world!\n"; 
         } 
         hello(); 
?>

上面的代码生成以下结果。

正如你可以看到,这个脚本定义一个函数,hello(),只是显示string“Hello,world!"

hello()函数中的代码仅在稍后调用函数时运行,而不是当函数本身被创建时。



PHP函数返回

函数可以从函数返回一个值使用return语句。

如果你试图给一个变量赋值一个函数的返回值没有返回值,你的变量将被设置为NULL。

示例 - 函数的返回值

从函数返回值

<?PHP
function foo() { 
       print "In function"; 
       return 1; 
       print "Leaving function..."; 
} 
print foo(); 
?>

上面的代码生成以下结果。

PHP返回参考

除了通过引用将变量传递给函数,你也可以得到返回引用的函数,而不是价值观。

在函数中的函数名称前添加一个&符号定义。 然后,当您使用return语句返回一个变量时,你传递一个引用变量返回调用代码,而不是变量的s值:

function  &myFunc(){ 
    // (do stuff) 
   return $var;  // Returns a reference to $var 
}   

从函数返回引用

<?PHP
   $myNumber = 5; 

   function  &getMyNumber() { 
     global $myNumber; 
     return $myNumber; 
   } 

   $numberRef = &getMyNumber(); 
   $numberRef++; 
   echo "\$myNumber = $myNumber\n";   // Displays "6" 
   echo "\$numberRef = $numberRef\n"; // Displays "6"   
?>

上面的代码生成以下结果。

PHP递归函数

递归函数是调用自身的函数。

这里是一个递归函数如何操作的快速概述:

递归函数由调用代码调用如果满足基本情况,则该函数需要计算,然后退出。

否则,该函数需要计算,然后调用自身继续递归。

这里是一个计算阶乘的例子:

<?PHP
function factorial($number) { 
        if ($number == 0) return 1; 
        return $number * factorial($number-1); 
} 

print factorial(6); 
?>

上面的代码生成以下结果。

示例 - PHP递归函数

下面的代码显示了如何创建递归函数。

<?php
  function checkInteger($Number)
  {
    if($Number > 1)
    {
      // integer minus one is still an integer
      return(checkInteger($Number-1));
    }
    elseif($Number < 0)
    {
      //numbers are symmetrical, so
      //check positive version
      return(checkInteger((-1)*$Number-1));
    }
    else
    {
      if(($Number > 0) AND ($Number < 1))
      {
        return("no");
      }
      else
      {
        //zero and one are
        //integers by definition
        return("yes");
      }
    }
  }

  print("Is 0 an integer? " .  checkInteger(0) . "<br>\n");
  print("Is 7 an integer? " . checkInteger(7) . "<br>\n");
  print("And 3.5? " . checkInteger(3.5) . "<br>\n");
  print("What about -5? " . checkInteger(-5) . "<br>\n");
  print("And -9.2? " . checkInteger(-9.2) . "<br>\n");
?>


上面的代码生成以下结果。

PHP匿名函数

PHP匿名函数没有名称。

您可能需要创建匿名函数,有两个原因:

  • To create functions dynamically
  • To create short-term, disposable functions

句法

要创建匿名函数,请使用分隔的参数列表(如果有)和函数体的代码。

$myFunction = create_function( "$param1, $param2", "function code here;" );

匿名函数示例

这里是一个基于变量值动态创建匿名函数的示例:

<?PHP
        $mode = "+"; 
        $processNumbers = create_function( "$a, $b", "return \$a $mode \$b;" ); 
        echo $processNumbers( 2, 3 ); // Displays "5"   
?>

上面的代码生成以下结果。

该代码使用$ mode变量的值作为运算符用于处理其两个参数$ a和$ b。例如,如果将$ mode更改为“*",代码将显示“6"。

示例 - 动态函数

下面的代码显示了如何动态调用函数。

<?php
  function write($text)
  {
    print($text);
  }

  function writeBold($text)
  {
    print("<b>$text</b>");
  }

  $myFunction = "write";
  $myFunction("Hello!");
  print("<br>\n");

  $myFunction = "writeBold";
  $myFunction("Goodbye!");
  print("<br>\n");
?>


上面的代码生成以下结果。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号