第十九课:自定义函数

    技术2022-05-11  63

    第十九课:自定义函数

      函数功能强大,使用简单,我们只要按它的要求输入参数,它就能返回我们想要的结果。PHP中还能自定义函数,把那些在编程时要反复用到的功能块定义成一个函数,然后简单的调用。   例如,我们经常要在网页里显示时间,而且时间格式各不一样,那么怎么把它定义成一个函数呢?又怎么调用呢?请看下面的代码19-1: <? php // 调用方法一 echo  myDate( 4 );  // 调用方法二 $a = 1 ; echo  myDate( $a );  // 调用方法三 $b = 6 ; $dateStr = myDate( $b ); echo   $dateStr // 定义函数 function  myDate(  $style  ){   switch $style  ){     case   1   :   $str   =   date ( " Y年m月d日 " );  break ;     case   2   :   $str   =   date ( " Y-m-d " );  break ;     case   3   :   $str   =   date ( " m/d/Y " );  break ;     case   4   :   $str   =   date ( " y.m.d l " );  break ;     case   5   :   $str   =   date ( " M d Y " );  break ;     case   6   :   $str   =   date ( " Y年第W周 " );  break ;     default :   break ;  }    return   $str ;} // 定义函数结束 ?> 上面的代码中,我们定义了一个函数 myDate(),定义函数要由关键字 function 来声明,函数名是非大小写敏感的, $style是要输入日期样式的参数,函数内部就是实现特定功能的PHP代码,函数可以通过可选的 return语句返回需要的值。函数定义之后,你可以象上例那样,在你需要的地方简单的调用。    参数   外部信息可以通过参数传递给函数中,参数就是一系列 逗号分隔的变量或常量。PHP支持 数值形参数变量参数默认参数。看一个默认参数使用的例子19-2: <? php  echo  myDate();  function  myDate(  $style = 1  ){   switch $style  ){     case   1   :   $str   =   date ( " Y年m月d日 " );  break ;     case   2   :   $str   =   date ( " Y-m-d " );  break ;     case   3   :   $str   =   date ( " m/d/Y " );  break ;     case   4   :   $str   =   date ( " y.m.d l " );  break ;     case   5   :   $str   =   date ( " M d Y " );  break ;     case   6   :   $str   =   date ( " Y年第W周 " );  break ;     default :   break ;  }    return   $str ;}  ?>  上面的例子中,语句 echo myDate()并没有输入参数,但程序还是正确运行了,为什么呢?这是因为我们在定义函数时使用了默认参数 $style=1,即在没有参数输入的情况下,函数就使用这个默认值。当有多个参数传递时,默认参数要写在最后。例如19-3: <? php function  add( $a , $b , $c = 9 ){    $value   =   $a * $b + $c ;    return   $value ; }  echo  add( 18 , 25 ); ?> 返回值  函数可以通过可选的 return语句来返回需要任何类型的值,这导致函数立即结束它的运行,并且将控制权传递回它被调用的行。例如19-4: <? php function  square( $num ){     return   $num   *   $num ;} echo  square( 4 );    //  输出 '16'. ?>   函数不能同时返回多个值,但可以通过数组的方法来返回。例如19-5: <? php function  small_numbers(){     return   array  ( 0 ,   1 ,   2 );} list  ( $zero ,   $one ,   $two =  small_numbers(); ?>   从函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用操作符 & :例如19-6: <? php function   & returns_reference(){     return   $someref ;}  $newref   =&  returns_reference(); ?>   函数与变量作用域   函数是一个封闭好的模块,它接受的是形式参数,在调用函数过程中,函数外部的变量不能影响到函数内部,函数内部声明的变量同样不能影响到函数外部的领域。而且函数内部的变量在一般情况下会随函数调用结束而消失。因此,如果你想让外部的变量作用到函数内部,或者函数内部的变量能够在函数调用结束后继续保存,这就要使用关键字 global声明。例如19-7: <? php  $a = 5 ; $b = 8 function  add( $c ){   global   $a , $b ;   // 用global声明全局变量$a,$b,否则函数无法获得你想要的值。     return   $a + $b - $c ; }  echo  add( 9 ); ?> 无论是把外部变量作用到内部还是把内部变量作用到外部,都是一种不好的编程思想,这很容易引起错误。所以,关键字 global最好少用。千万不要贪一时方便而多用。   好了,你学会定义函数了吗?下面我又要出一道作业题了:做网页时经常要输出各种大小和颜色的文字,我不想每当用它的时候去重复写这些代码,你能帮我写个函数吗?只要输入字号,颜色和文字,它就能显示我想要的效果。 

    最新回复(0)