设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 站长学院 > PHP教程 > 正文

怎样理解PHP用户自定义函数,有哪些要点

发布时间:2022-11-10 09:11 所属栏目:121 来源:互联网
导读:这篇给大家分享的知识是如何理解PHP用户自定义函数,有哪些要点,小编觉得挺不错的,对大家学习或是工作可能会有所帮助,对此分享发大家做个参考,希望这篇如何理解PHP用户自定义函数,有哪些要点文章能帮助大家解决问题。 一个函数可由以下的语法来定义: Ex
  这篇给大家分享的知识是“如何理解PHP用户自定义函数,有哪些要点”,小编觉得挺不错的,对大家学习或是工作可能会有所帮助,对此分享发大家做个参考,希望这篇“如何理解PHP用户自定义函数,有哪些要点”文章能帮助大家解决问题。
 
  一个函数可由以下的语法来定义:
 
  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()函数,
 
     因为它还不存在,但可以调用bar()函数。*/
 
  bar();
 
  if ($makefoo) {
 
    function foo()
 
    {
 
      echo "I don't exist until program execution reaches me.\n";
 
    }
 
  }
 
  /* 现在可以安全调用函数 foo()了,
 
     因为 $makefoo 值为真 */
 
  if ($makefoo) foo();
 
  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()函数了,因为foo()函数
 
     的执行使得bar()函数变为已定义的函数 */
 
  bar();
 
  ?>
 
  PHP 中的所有函数和类都具有全局作用域,可以定义在一个函数之内而在之外调用,反之亦然。
 
  PHP 不支持函数重载,也不可能取消定义或者重定义已声明的函数。
 
  Note: 函数名是大小写无关的,不过在调用函数的时候,使用其在定义时相同的形式是个好习惯。
 
  PHP 的函数支持可变数量的参数和默认参数。参见 func_num_args(), func_get_arg() 和 func_get_args()。
 
  在 PHP 中可以调用递归函数。但是要避免递归函数/方法调用超过 100-200 层,因为可能会使堆栈崩溃从而使当前脚本终止。
 
  Example #4 递归函数
 
  <?php
 
  function recursion($a)
 
  {
 
      if ($a < 20) {
 
          echo "$a\n";
 
          recursion($a + 1);
 
      }
 
  }
 
  ?>
 

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读