PHP函数

定义和调用函数:

概念:将一些重复使用到的功能写在一个独立的代码块中,在需要时单独调用(封装方法)。
语法格式:
    function fun_name($str1,$stgr2…$strn){
    fun_body;
    }
参数说明:
function:为声明自定义函数时必须使用到的关键字。
fun_name:为自定义函数的名称。
$str1…$strn:为函数的参数。
fun_body:为自定义函数的主体,是功能实现部分。
调用函数:当函数被定义好后,所要做的就是调用这个函数。调用函数的操作十分简单,只需要引用函数名并赋予正确的参数即可完成函数的调用。
<?php
   function multiply($num=100){
   return "$num * $num = ".$num * $num;
   }
   echo multiply(10);
?>

函数间传递参数:

      在调用函数时,需要向函数传递参数,被传入的参数称为实参,而函数定义的参数为形参。参数传递的方式有按值传递按引用传递默认参数3种。
      1.按值传递方式:将实参的值复制到对应的形参中,在函数内部的操作针对形参进行,操作的结果不会影响到实参,即函数返回后,实参的值不会改变。function metric( $m ){                                //定义一个函数
      $m = $m * 5 + 10;
      echo "在函数内:\$m = ".$m;              //输出形参的值
}
$m = 1;
metric( $m ) ;                                              //传值:将$m的值传递给形参$m
echo "<p>在函数外:\$m = $m<p>" ;      //实参的值没有发生变化,输出m=1
      2.按引用传递方式:按引用传递就是将实参的内存地址传递到形参中。这时,在函数内部的所有操作都会影响到实参的值,返回后,实参的值会发生变化。引用传递方式就是传值时在原基础上加&号即可。
     3.默认参数:还有一种设置参数的方式,即可选参数。可以指定某个参数为可选参数,将可选参数放在参数列表末尾,并且指定其默认值为空。
<?php
       function tax($price, $tax=""){
           $price=$price + ($price * $tax);
           echo "价格: $price<br>";
       }
       tax(100,0.25);        //为可选参数赋值0.25
       tax(100);              //没有给可选参数赋值
?>

从函数中返回值:

       通常,函数将返回值传递给调用者的方式是使用关键字return。return将函数的值返回给函数的调用者,将程序控制权返回到调用者的作用域。return语句只能返回一个参数,也即只能返回一个值,不能一次返回多个。如果要返回多个结果,就要在函数中定义一个数组,将返回值存储在数组中返回。

变量函数:

      php支持变量函数的概念。这意味着如果一个变量名后有圆括号,php 将寻找与变量的值同名的函数,并且将尝试执行它。除了别的事情以外,这个可以被用于实现回调函数,函数表等等。变量函数不能用于语言结构,例如 echo(),print(),unset(),isset(),empty(),include(),require() 以及类似的语句。需要使用自己的外壳(包装)函数来将这些结构用作变量函数。     
      function bar($arg = ''){
          echo "In bar(); argument was '$arg'./n";
      }     
     $func = 'bar';
     $func('test');

对函数的引用:

引用不仅可用于普通变量、函数参数,也可作用于函数本身。
       function &plus(){                //别忘了加“&”   
            static $num =0;            //定义一个静态的变量'$num'  
           $num++;   
           return $num;
      }
      $n  = plus();
      echo $n.'<br>';              //这一行输出结果是1
      echo plus().'<br>';         //这一行输出结果是2
      $n  = &plus();
      echo $n.'<br>';             //这一行输出结果是3
      $n  = 6;
      echo plus().'<br>';         //这一行输出结果是7

取消引用:

       当不再需要引用时,可以取消引用。取消引用使用unset()函数,它只是断开了变量名和变量内容之间的绑定,而不是销毁变量内容。
  取消引用后对原变量没有任何影响。     
  $num = 1234;           //声明一个整型变量       
  $math = &$num;      //声明一个对变量$num的引用$math       
  echo "\$math is:  ".$math."<br>";     //输出引用$math      
  unset($math);                                   //取消引用$math       
  echo "\$math is: ".$math."<br>";     //再次输出引用       
  echo "\$num is:  ".$num;                 //输出原变量

书写规范:

关键字,小括号,函数,运算符
不要把小括号和关键字紧贴在一起,要用空格隔开它们。如:
if ($expr){         //if和“(”之间有一个空格

} 运算符与两边的变量或表达式要有一个空格。
while ($boo == true){        //$boo和“==”,true和“==”之间都有一个空格

}
当代码段较大时,上、下应当加入空白行,两个代码块之间只使用一个空行

方法中的参数命名
使用驼峰命名法,也可使用下划线命名法
如以下代码:
class EchoAnyWord{
function echoWord($firstWord,$secondWord){

}
}

全局常量
常量/全局常量,应该全部使用大写字母,单词之间用'_'来分隔,使大小写敏感。如:
define('DEFAULT_NUM_AVE', 90);
define('DEFAULT_NUM_SUM', 500);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,922评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,591评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,546评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,467评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,553评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,580评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,588评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,334评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,780评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,092评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,270评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,925评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,573评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,194评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,437评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,154评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容

  • 函数的定义 函数是什么? 函数(function)是一段完成指定任务的已命名代码块。函数可以遵照给它的一组值或参数...
    dptms阅读 1,054评论 0 2
  • 函数是可以在程序中重复使用的语句块,在页面加载时函数不会立即执行,只有在被调用时才会执行。 在代码执行过程中,如果...
    THEyAnJ阅读 354评论 0 0
  • 一、函数概念 函数是用来完成某种特定任务的可重复使用的代码块; 函数可以使程序更具模块化,拥有良好的结构; 函数定...
    XZ阳光小熊阅读 804评论 0 0
  • 风过无痕 夜清如水 轻噙一指夜色的微凉 向你望去 你如一缕绚丽的霓光 在红尘里 一抹忧郁,种在心里 你还是原谅的样...
    四夕清荷阅读 267评论 0 0
  • 周末,无意间看到一期节目“演员的诞生”,无论是其豪华的导师阵容,参与演员的网络热度,还是录制现场突发事件的争议性,...
    Jason叶阅读 291评论 2 6