设为首页 收藏本站
查看: 654|回复: 0

[经验分享] php编程基础(三)函数

[复制链接]

尚未签到

发表于 2017-3-26 11:19:50 | 显示全部楼层 |阅读模式
函数

声明
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,只包含一次

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-355565-1-1.html 上篇帖子: 通俗讲解PHP引用 下篇帖子: PHP怎样抓屏?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表