第十九课:自定义函数

第十九课:自定义函数



  函数功能强大,使用简单,我们只要按它的要求输入参数,它就能返回我们想要的结果。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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值