PHP基礎-自定義函數(shù)

一畅哑、函數(shù)的聲明

  • 語法:
function 函數(shù)名([arg1][,arg2]...[,argN]){
    .....函數(shù)體功能代碼段...
    return 返回值;                    //沒有返回值則為NULL
}
  • 參數(shù):

    • 按值傳參
    • 引用傳參
  • 栗子:

$a=10;
$b=11;

//按值傳參
function f1($a=2,$b=3){
    $a=$a+1;
    $b=$b+1;
    echo $a.','.$b.'</br>';
}
/*按值穿參仇轻,不會改變外部變量*/
f1($a,$b);                      //11,12
echo $a.','.$b.'</br>';         //10,11
f1($a,$b);                      //11,12

//用&方式,表示引用傳參
function f2($a=3,&$b=4){
    $a=$a+1;
    $b=$b+1;
    echo $a.','.$b.'</br>';
}

/*按值穿參焦人,不會改變外部變量*/
f2($a,$b);                      //11,12
echo $a.','.$b.'</br>';         //10,12
f2($a,$b);                      //11,13
  • 特點:
    • 參數(shù)可以有默認值挥吵,默認值必須是常量表達式(標量類型),不能是諸如變量花椭,類成員忽匈,或者函數(shù)調(diào)用等
    • php函數(shù)支持可變數(shù)量的參數(shù)列表

二、函數(shù)的特性

  • 函數(shù)名命名與變量矿辽、常量命名規(guī)范相同
  • 函數(shù)名不區(qū)分大小寫
  • 函數(shù)名必須是唯一的
  • 函數(shù)不會自己發(fā)揮作用丹允,只有在調(diào)用的時候才會執(zhí)行并發(fā)揮作用
  • 函數(shù)可以有返回值郭厌,但只能有一個返回值,返回值可以是任何php支持的數(shù)據(jù)類型
  • php支持可變函數(shù)雕蔽,他的實質(zhì)就是可變變量

三折柠、函數(shù)的動態(tài)調(diào)用(可變變量的實質(zhì))

/*函數(shù)動態(tài)調(diào)用*/
function t(){
    return 'test';
}
$str="t";
echo $str();    // $str()  等價于  t()

/*可變變量*/
$h="hello";
$hello="hello world";
echo $$h;   // $$h  等價于  $($h)  等價于  $hello  等價于  "hello world"

四、函數(shù)內(nèi)的局部變量

  • 函數(shù)內(nèi)的變量有兩種萎羔,以下兩種變量僅在函數(shù)內(nèi)有效:
    • 局部變量(local):函數(shù)內(nèi)部聲明的變量
    • 局部靜態(tài)變量(static):函數(shù)內(nèi)部使用關鍵字static聲明的變量液走。靜態(tài)變量的值不能是表達式的值碳默,只能是標量值
  • 變量知識補充:
    • 全局變量(global):在全局聲明的變量贾陷,全局有效
    • 變量的銷毀和檢測
  • 栗子:
$a=10;
function f1($a=123){
    echo $a;        //123
    $a++;
    echo $a;        //124
    global $a;      //指定函數(shù)內(nèi)變量使用的是全局變量
    $a++;
    echo $a;        //11
}
echo $a;        //10
f1();
echo $a;        //11


function f2(){
    $a=100;                     //普通局部變量在每次函數(shù)被調(diào)用時都會被初始化
    static $num=100;            //靜態(tài)局部變量,它的值只能是標量值嘱根,在函數(shù)首次被調(diào)用時被初始化
    $a++;
    $num++;
    echo $a,$num;
}
/*靜態(tài)局部變量所做的靜態(tài)計數(shù)器*/
f2();                //101  101
f2();                //101  102
f2();                //101  103

五髓废、函數(shù)和業(yè)務代碼分離(包含文件)

  • 函數(shù)抽離成單獨文件:
<?php
    /*func.php文件*/
    function test(){
        echo 'testests';
    }
  • 四種引入方式:
    • include:
      • 如果引入文件有錯誤,代碼盡可能的往下執(zhí)行
      • <?php
          /*1.php文件*/
          include 'func.php';        //實質(zhì)就是將func.php文件的代碼復制在次行
          include 'func.php';        //如果重復引用則會報“函數(shù)重名錯誤”该抒,test函數(shù)有兩個
        
    • require:如果引入文件有錯誤慌洪,代碼立即終止執(zhí)行
    • include_once:
      • 只會引入一次,如果在此之前已經(jīng)引用過則不會再次引入
      • <?php
          /*1.php文件*/
          include_once 'func.php';        //include_once會檢測當前是否已經(jīng)包含這個文件
          include_once 'func.php';        //已經(jīng)包含fun.php 所以此文件不會再被引入
        
    • require_once
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末凑保,一起剝皮案震驚了整個濱河市冈爹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌欧引,老刑警劉巖频伤,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異芝此,居然都是意外死亡憋肖,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門婚苹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來岸更,“玉大人,你說我怎么就攤上這事膊升≡醮叮” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵廓译,是天一觀的道長评肆。 經(jīng)常有香客問我,道長责循,這世上最難降的妖魔是什么糟港? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮院仿,結果婚禮上秸抚,老公的妹妹穿的比我還像新娘速和。我一直安慰自己,他們只是感情好剥汤,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布颠放。 她就那樣靜靜地躺著,像睡著了一般吭敢。 火紅的嫁衣襯著肌膚如雪碰凶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天鹿驼,我揣著相機與錄音欲低,去河邊找鬼。 笑死畜晰,一個胖子當著我的面吹牛砾莱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播凄鼻,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼腊瑟,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了块蚌?” 一聲冷哼從身側(cè)響起闰非,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎峭范,沒想到半個月后财松,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡虎敦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年游岳,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片其徙。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡胚迫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出唾那,到底是詐尸還是另有隱情访锻,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布闹获,位于F島的核電站期犬,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏避诽。R本人自食惡果不足惜龟虎,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望沙庐。 院中可真熱鬧鲤妥,春花似錦佳吞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至贡耽,卻和暖如春衷模,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蒲赂。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工阱冶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人凳宙。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓熙揍,卻偏偏與公主長得像,于是被迫代替她去往敵國和親氏涩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1. 定義 函數(shù)是一個被命名的有梆,獨立的代碼段是尖,它執(zhí)行特定的任務,并可能給調(diào)用它的程序一份返回值泥耀。 PHP的模塊化程...
    楠哥哥_0b86閱讀 627評論 1 2
  • 考點:變量的作用域和靜態(tài)變量 延伸:函數(shù)的參數(shù)及參數(shù)的引用傳遞饺汹,函數(shù)的返回值及引用返回,外部文件的引入,系統(tǒng)內(nèi)置的...
    ZhouJiping閱讀 566評論 0 0
  • 目錄### 一痰催、函數(shù)的定義二兜辞、自定義函數(shù)三、函數(shù)的工作原理和結構化編程四夸溶、PHP變量的范圍五逸吵、聲明及應用各種形式的...
    akon2016閱讀 780評論 1 1
  • 引言 PHP的教程我還是按照所用即所得的方式來寫吧,本身對PHP的認識也不系統(tǒng)缝裁,因此扫皱,摸著石頭過河,披荊斬棘吧~ ...
    OzanShareing閱讀 534評論 2 4
  • 青山巍然不動 站著捷绑,不說話 那無喜無歡的樣子 多么可愛韩脑,生動如人 寂寞,只能被擋在山后 快樂粹污,只能從你頭頂兀自漫過...
    木子又二土閱讀 312評論 0 2