php 函數
一、函數概念
具有特定功能的可執行性代碼的即可就是函數!
例如:abs();
函數分爲:核心函數(php系統定義的),用戶函數(用戶腳本自定義的函數)
二、函數定義,使用
聲明,定義一個函數
hanshudd.png
hanshudomhyi.png
調用,使用一個函數,函數名()。()調用操作符。
hanshudingyi1.png
注意
聲明和調用誰在前?
聲明在前。但是 在編譯時,函數是預先被編譯形成執行代碼的。因此源代碼的語法上,可以出現,先調用,後聲明語法順序!
shengming123.png
如果函數的定義,被放置在載入的文件內,則需要先載入!
hanshudingyi2.png
函數的定義可以出現在其他語句塊內,但是必須保證語句塊執行,函數的定義纔會生效!
hanshudingyi3.png
三、函數名
函數名必須唯一
用戶定義的不能相同,用戶定義的不能與系統的重名
函數的組成:三部分:函數名,函數參數,函數體。
函數的標識符,調用函數,大小寫不敏感!
hanshuming1.png
典型的命名方法,駝峯法!單詞的首字母大寫,第一個單詞除外!
四、可變函數
函數的標識符(函數名),可以由一個變量來充當!意味着可以出現:$func();
kebianhanshu.png
作用在於:
可以動態確定當前所調用的函數名字!
例如:在處理圖片時,會用到:
imagecreatefromjpeg
imagecreatefrompng
imagecreatefromgif
功能相同,但是細節(圖片類型)不同。
kebianhanshu1.png
五、匿名函數
php5.3增加!
匿名,沒有名字。php允許存在沒有名字的函數,稱之爲匿名函數!
基本語法:與普通函數相同,沒有名字部分
niming.png
niming1.png
匿名函數的管理方式,不同於普通函數,類似於值(數據)的管理方式!將其保存在一個變量內!
niming2.png
匿名函數,是一個內置的Closure類的對象。
niming3.png
php的匿名函數如何實現的?
利用Closure類的對象實現!
tip:closure閉包的意思,導致,php的匿名函數也稱之閉包函數!
匿名函數的調用
diaoyong.png
注意區分好 可變函數。變量的內容加以區分。
變量值爲字符串,作爲可變函數。
變量值爲Closure對象,爲匿名函數。
六、函數的參數
提供,函數運行時所依賴的數據!
形參,實參
形參,形式參數,函數聲明時,用於表示函數需要哪些參數的語法,稱之爲形參!函數內部通過處理形參,完成邏輯功能!
實參,實際參數,函數被調用時,實際獲得的參數數據,稱之爲實參!
xingcan.png
形參的值,最終是調用函數時,實參爲其傳遞過來的!
誰調用,誰傳參!
定義函數時,不用考慮參數來源問題!
調用時,發生了一個實參 爲 形參 賦值的過程!
xingcan1.png
此時,如果實參 也是一個變量!
xingcan2.png
就相當於,發生了一個,實參變量 爲 形參變量 賦值的過程!
兩個變量間的賦值,出現了 值傳遞,和 引用傳遞的區別!
$name = $real_name;//值傳遞
$name = & $real_name;//引用傳遞
文章來至:http://www.codexueyuan.com/learn/learn-detail30-phphanshu