php编程基础(三)函数

函数

声明
function fun(参数1,参数...){函数体;return;}

因为没有命名空间的概念,所以函数不能重名。

php变量分不出是声明还是调用,全局变量在使用时和其它语言不一样,要在函数内部通过global把全局变量包含到函数中才能使用。

$a = 10;
$b = 30;
function test(){
global $a;
$a += 10;
echo $a;//20

$b += 10;
echo $b;//10,这儿做重新定义的局部变量处理
}

echo $a;//20
echo $b;//30

静态变量
php静态变量只能声明在函数(类)中,不能在全局声明,在变量声明前使用static关键字
作用:一个变量可以在同一个函数在多次调用中共用。
特点:静态变量在静态代码段中保存;一个函数多次调用之间共用,但只在第一次调用函数时声明到内存,以后再调用时就不再声明,而直接使用。


变量函数
如果一个变量后面有括号$fun=sum;//"sum" $fun();//将寻找与变量值

同名的函数sum();
形式类似多态特性,可用于回调。


在相同功能下一定先使用系统函数,可提高性能。

1.常规函数
bool copy (string source, string dest)
2.带有mixed的参数,mixed表示可以传任何类型的数据
bool chown (string flename,mixed user)
3.带&参数的函数,表示引用赋值,这个参数只能传一个变量(地址),函数中将改变原变量(引用地址的指向的变量)的值。
bool arsort (array &array [,int sort_flags])
4.默认函数 带有[]的函数,表示这个参数可选,如果调用时不传值则使用默认值。直接在函数声明时为参数默认值。参数列表中,必选参数在前,可选参数在后。
bool arsort (array &array [,int sort_flags])
例:
function demo($c,$a=1,$b=3){
echo $a." " .$b. " " .$c;
}

demo(3);//1 3 3
demo(3,5);//5 3 3

5.带有...的参数,...表示可以传任意多个参数
int array_unshift (array &array,mixed var [,mixed ...])
例:
function demo(){
$args = func_get_args();//所有方法内都可以用这方法得到所有参数数组,func_num_args()得到参数个数
$sum = 0;
for($i=0;$i<count($args);$i++){
$sum += $args[$i];
}
return $sum;
}

echo demo(1,2,3,4,5);//15

6.回调函数 带有callback,调用函数时需要传一个函数进来(函数名,函数名字符串)
array arry_filter(array input [,callback callbck])
例:
//积
function demo($x,$y){
return $x*$y;
}

//和
function test($x,$y){
return $x+$y;
}

//回调函数
function sum($a,$b,$fun){
return $a+$b+$fun($a,$b);
}

echo sum(2,3,demo);//11
echo sum(2,3,"test");//10
-------------------------------------------------------
$a = array(1,2,3,4,5,6,7,8,9);

print_r(array_filter($a,demo));//5,6,7,8,9
print_r(array_filter($a,demo2));//2,4,6,8

//>4
function demo($n){
if($n > 4)
return true;
else
return false;
}

//偶数
function demo2($n){
if($n % 2 == 0)
return true;
else
return false;
}


内部函数
php可以在函数内部再声明函数,目的就是在函数内部调用,用来帮助外部函数完成一些子功能的。函数中还是不能直接调用外部函数的变量。


重用函数(使用自己定义的函数库)
系统指令,两种格式,1,xxxx"xx";2,xxxx("xx");

被包含的php文件,命名尽量用xxx.inc.php

require用于静态包含
include(文件名);用于动态包含//include"文件名";

require_once,只包含一次
include_once,只包含一次
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值