函数

简介:通俗点讲,函数就是把一块代码放在一起,统一一个名字,以便以后做相同功能的时候少写点字。

一、自定义函数

自定义函数,其实我们以前就已经用了。。。写法很简单

function test($arg1,$arg2...){
//code
}

函数名和 PHP 中的其它标识符命名规则相同。有效的函数名以字母或下划线打头,后面跟字母,数字或下划线。PHP 中的所有函数和类都具有全局作用域,可以在内部定义外部调用,反之亦然。PHP 不支持函数重载,也不可能取消定义或者重定义已声明的函数。和java不一样只要函数名一样就算两个函数是相同的,就会出错。函数名是大小写无关的,不过在调用函数的时候,通常使用其在定义时相同的形式。另外要注意一点要避免递归函数/方法(调用自己的函数/方法)调用超过 100-200 层,因为可能会破坏堆栈从而使当前脚本终止。试试下面的代码

function zhuge(){
echo "我是第一个函数";
}

if(0){ //不能重复定义,可以把0改成1试试看看效果
function zhuge(){
echo "我是第二个函数";
}
}
//特殊的两种用法
/* 我们不能在处调用test1()函数,
   因为它还不存在,但可以调用test2()函数。*/
test2();
if (1) {
  function test1()
  {
    echo "我还不存在\n";
  }
}
/* 现在我们可以安全调用函数 test1()了*/
test1();
function test2()
{
  echo "当程序开始运行是我便可以使用\n";
}

//内部定义的函数
function zhugeout(){
function zhugein(){
echo "我是in";
}
}
/* 现在不能运行zhugein
因为还没有定义*/
//zhugein();这里调用将会出错
zhugeout();
//现在可以了,因为out运行了,定义了in
zhugein();

二、参数

参数就是在运行函数时可以让调用他的人告诉这个函数一些信息,供他参考。

缺省情况下,函数参数通过值传递(因而即使在函数内部改变参数的值,它并不会改变函数外部的值)。如果希望允许函数修改它的参数值,必须通过引用传递参数。如果想要函数的一个参数总是通过引用传递,可以在函数定义中该参数的前面预先加上符号 &:

$a = "a";
$b = "b";
function zhuge($a,&$b){
  echo $a." 里面的a\n";
  $a = "aa";
  echo $b." 里面的b\n";
  $b="bb";
}
zhuge($a,$b);
echo $a." 外面的a\n";
echo $b." 外面的b\n";

上例中a是普通的传值,b是引用传值,看出哪里不同了么。

另外,函数还可以定义默认参数如

$a = "a";
function zhuge($a,$b="aa"){
  echo $b."\n";
}
zhuge($a,"xx");
zhuge("xx");

但是默认的参数必须放到后面,看下面的例子:运行下看看

$a = "a";
function zhuge($a="aa",$b){
  echo $a."\n";
}
zhuge($a,"xx");
zhuge("xx");

默认值必须是常量表达式,不能是诸如变量,类成员,或者函数调用等表达式。

php函数也可以不定义参数,在函数内部使用func_get_args();得到传递过来的参数,试试下面的代码吧,

function zhuge(){
  $lists = func_get_args();
  var_dump($lists);
}

zhuge("qaforcode.net");

三、函数返回值

我们使用return,来终止函数并且返回一个值,这个值可以是任何类型。

函数不能返回多个值,但可以通过返回一个数组来得到类似的效果。看下面的例子

<?php
function zhuge(){
  echo "我在return之前,我会运行";

  return array(1,2,3);

  echo "我在return之后,我不会运行";
}

zhuge("qaforcode.net");
?>

四、可变函数

如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。这个其实很简单,看个例子就明白了

$zhuge = "zhuge_test";

function zhuge_test(){
  echo "猪哥的网站www.qaforcode.net";
}

$zhuge();

五、匿名函数

即零时函数,经常作为回调函数使用。匿名函数只在PHP 5.3.0 及以上版本有效。看下面的例子

$zhuge = function($a,$b){
  return $a+$b;
};

echo $zhuge(1,1);

六、内部函数

即php自带的或者php扩展自带的函数,这类函数需要大家可以到这里查看http://www.php.net/manual/zh/extensions.alphabetical.php

 

 

 

 

本文固定链接: http://www.qaforcode.net/archives/251 | 猪哥每日一贴

该日志由 趴在树上的猪 于2012年11月14日发表在 php 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 函数 | 猪哥每日一贴
关键字:
【上一篇】
【下一篇】

函数:目前有1 条留言

  1. 沙发
    OMG:

    留着慢慢学习… 😉

    2012-11-30 下午 4:32 [回复]

发表评论


快捷键:Ctrl+Enter

浙公网安备 33010602001905号