11:PHP函数

一、用户自定义函数

函数名和 PHP 中的其它标识符命名规则相同。有效的函数名以字母或下划线打头,后面跟字母,数字或下划线。

函数名是大小写无关的,不过在调用函数的时候,使用其在定义时相同的形式是个好习惯。

一个函数可由以下的语法来定义:

  1. <?php
  2. function  foo ()
  3. {
  4.   function  bar ()
  5.   {
  6.     echo  "I don't exist until foo() is called." ;
  7.   }
  8. }
  9. /* 现在还不能调用bar()函数,因为它还不存在 */
  10. foo ();
  11. /* 现在可以调用bar()函数了,因为foo()函数
  12.    的执行使得bar()函数变为已定义的函数 */
  13. bar ();

 

二、函数的参数

通过参数列表可以传递信息到函数,即以逗号作为分隔符的表达式列表。参数是从左向右求值的。

PHP 支持按值传递参数(默认),通过引用传递参数以及默认参数。也支持可变长度参数列表。

  1. <?php
  2.  function  takes_array ( $input )
  3.  {
  4.      echo  ' $input [ 0 ]  +  $input [ 1 ]  = ' ,  $input [ 0 ]+ $input [ 1 ];
  5.  }
  6. $input=['1','3','5','7','9'];
  7. takes_array($input);//$input [ 0 ] + $input [ 1 ] = 4

通过引用传递参数

默认情况下,函数参数通过值传递(因而即使在函数内部改变参数的值,它并不会改变函数外部的值)。如果希望允许函数修改它的参数值,必须通过引用传递参数。

如果想要函数的一个参数总是通过引用传递,可以在函数定义中该参数的前面加上符号 &:

  1. <?php
  2. function  add_some_extra (& $string )
  3. {
  4.      $string  .=  '付杰博客' ;
  5. }
  6.  $str  =  'This is a string, ' ;
  7.  add_some_extra ( $str );
  8. echo  $str ;     // 'This is a string, 付杰博客.'

默认参数的值

函数可以定义 C++ 风格的标量参数默认值,如下所示:

  1. <?php
  2.  function  makecoffee ( $blog= '付杰博客' ,$url='www.fujieace.com')
  3.  {
  4.      return  "blogname=$blog,blogurl=$url" ;
  5.  }
  6. echo makecoffee();//blogname=付杰博客,blogurl=www.fujieace.com

 

三、返回值

值通过使用可选的返回语句返回。可以返回包括数组和对象的任意类型。返回语句会立即中止函数的运行,并且将控制权交回调用该函数的代码行。

 

Note:

如果省略了 return ,则返回值为 NULL 。

函数不能返回多个值,但可以通过返回一个数组来得到类似的效果。

  1. <?php
  2. function  square ( $num )
  3. {
  4.     return  $num  *  $num ;
  5. }
  6. echo  square ( 4 );    // 16.

 

四、可变函数

PHP 支持可变函数的概念。这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。可变函数可以用来实现包括回调函数,函数表在内的一些用途。

可变函数不能用于例如 echo , print , unset() , isset() , empty() , include , require 以及类似的语言结构。需要使用自己的包装函数来将这些结构用作可变函数。

  1. <?php
  2.  function  foo () {
  3.      echo  "In foo()" ;
  4.  }
  5. function  bar ( $arg  =  '' ) {
  6.     echo  "In bar(); argument was  $arg " ;
  7. }
  8. // 使用 echo 的包装函数
  9.  function  echoit ( $string )
  10.  {
  11.      echo  $string ;
  12.  }
  13. $func  =  'foo' ;
  14. $func ();         // In foo()
  15. $func  =  'bar' ;
  16. $func ( 'test' );   // In bar(); argument was test
  17. $func  =  'echoit' ;
  18. $func ( 'test' );   // test

 

五、内部(内置)函数

PHP 有很多标准的函数和结构。还有一些函数需要和特定地 PHP 扩展模块一起编译,否则在使用它们的时候就会得到一个致命的“未定义函数”错误。

例如,要使用 image 函数中的 imagecreatetruecolor() ,需要在编译 PHP 的时候加上 GD 的支持。或者,要使用 mysql_connect() 函数,就需要在编译 PHP 的时候加上 MySQL 支持。有很多核心函数已包含在每个版本的 PHP 中如字符串和变量函数。调用 phpinfo() 或者 get_loaded_extensions() 可以得知 PHP 加载了那些扩展库。同时还应该注意,很多扩展库默认就是有效的。

PHP 手册按照不同的扩展库组织了它们的文档。请参阅配置,安装以及各自的扩展库章节以获取有关如何设置 PHP 的信息。php函数

六、匿名函数

匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。

  1. <?php
  2.  echo  preg_replace_callback ( '~-([a-z])~' , function ( $match ) {
  3.     return  strtoupper ( $match [ 1 ]);
  4. },  'hello-world' );
  5.  // 输出 helloWorl
    A+
发布日期:2016年12月30日 22:23:47  所属分类:PHP教程
最后更新时间:2016-12-30 22:23:47
付杰
  • ¥ 98.0元
  • 市场价:298.0元
  • ¥ 79.0元
  • 市场价:99.0元
  • ¥ 398.0元
  • 市场价:498.0元
  • ¥ 159.0元
  • 市场价:398.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: