[請益] 請問PHP的函數的參數設初值的意思?

看板PHP作者 (阿湯)時間11年前 (2014/11/23 11:57), 編輯推噓4(408)
留言12則, 7人參與, 最新討論串1/1
抱歉!我算是PHP的新人,希望不要怪我問的問題太笨..... 以前我在看書時,函數如果有參數,都不會有初值 如:public function abc($ex,$info,$url){.......} 但現在在工作時,常常看到都有設初值 如:public function abc($ex = TRUE, $info = 'admin_info', $url = 'admin/login') 問題如下: 1.有設初值的參數的函式,和沒有設初值的參數的函式有甚麼差別呢? 2.如果有地方呼叫這個函式---->abc(FALSE);--->這個的意思是第一個參數設為false而 其他的參數,和函式所設的一樣(如 $info 設為 'admin_info', $url設為 'admin/login') 是這個意思嗎? 麻煩個位高手了 感激不盡 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.233.217.210 ※ 文章網址: http://www.ptt.cc/bbs/PHP/M.1416715073.A.0C0.html

11/23 12:20, , 1F
11/23 12:20, 1F

11/23 14:07, , 2F
學過C++就知道他們也有 意思一樣
11/23 14:07, 2F

11/23 14:59, , 3F
你想的沒有錯"使用這個函式預設值"通常是方便調用函式用
11/23 14:59, 3F

11/23 19:38, , 4F
沒設預設值的函式在呼叫時沒給值會噴 error
11/23 19:38, 4F

11/24 12:19, , 5F
如果你十次使用此函數,有九次某個參數都會設一樣
11/24 12:19, 5F

11/24 12:19, , 6F
會不會希望,不一樣時再設就好,沒設就用預設值?
11/24 12:19, 6F

11/24 14:48, , 7F
coding技巧 有沒有需要倒是看你需不需要
11/24 14:48, 7F

11/24 20:58, , 8F
給初值是optional吧?意思是選擇性可省略
11/24 20:58, 8F

11/24 20:59, , 9F
通常是想合併些大同小異的函數,把同樣的部分一起寫
11/24 20:59, 9F

11/24 20:59, , 10F
而給初值的部分有時候代表不作用,只有給予其他值的
11/24 20:59, 10F

11/24 20:59, , 11F
時候才會動作,這樣可以讓同樣的函數只作一半的事
11/24 20:59, 11F

11/24 21:00, , 12F
當然也可以用來防止意外,或常用的值懶得給這樣
11/24 21:00, 12F
文章代碼(AID): #1KSLj130 (PHP)
文章代碼(AID): #1KSLj130 (PHP)