第十九课:自定义函数

第十九课:自定义函数



  函数功能强大,使用简单,我们只要按它的要求输入参数,它就能返回我们想要的结果。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最好少用。千万不要贪一时方便而多用。

  好了,你学会定义函数了吗?下面我又要出一道作业题了:做网页时经常要输出各种大小和颜色的文字,我不想每当用它的时候去重复写这些代码,你能帮我写个函数吗?只要输入字号,颜色和文字,它就能显示我想要的效果。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值