看板 PHP 關於我們 聯絡資訊
※ 引述《p52189 (皮爺)》之銘言: : function A (String,String,int) : function A (String,int,int) : : 沒有明顯型別限制的話怎麼區別它們呢? : 我之前好像看過有人這樣寫 : : function X ($vara = '') : : 這樣是不是表示限制? php 裡面沒有重載(overload) 你只能宣告 function A (var1, var2, var3) { // 如果你依舊想寫成 overload 的話 if (is_int(var2)) { A2(); } // etc... } php 只認得一個同名的 A function,其他不管參數數一不一樣,都會跳重複定義的錯誤 : 另外 : : $a = $b; : : 這時候a、b皆是指向同一個實體嗎? : : ↑這部分超搞混 : array 的話在 PHP5 裡面直接用 $a = $b 是指向同個實體 (印象中,有錯請指正。我只依稀記得 PHP4 跟 PHP5 不一樣) ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
UniFish:array的=是「複製」02/15 09:10
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ : : 更搞混的還有... : : 請問以下變數作用範圍是? : : {$a} 個人沒寫過這種寫法,估計只有在 "{$a}",雙引號內部出現, : : function A(){$a} local : : while(true){$a} global : : 我知道一般寫在最外頭的變數好像強到可以跨過不同的指令稿 : : 所以會讓多個頁面利用include同一指令稿的方式共用變數 : : 但所謂的共用,這些變數是屬於同一個Request嗎? : 如果你指的同個 request = 同個 client 的 同個 connection 的話 那麼,是的。 : 比如有一組頁面 : : page_one.php : : page_two.php : : page_three.php : : 它們皆 include 一個 global.php,global.php 內含一個 $my_var : : 王小明透過瀏覽器觀看 page_one.php : : 陳小華透過瀏覽器觀看 page_two.php : : 假設兩個頁面會分別對 $my_var做操作,值會不同 : 會 : 那他們得到的 $my_var 結果會一樣嗎? : 不會 PHP 中沒有 ASP 的 Application 全域系統變數, 生命週期就只有 client 開始連線到結束。 (當然你可以用寫檔/share momery的方式來弄一個跟 ASP Application 變數一樣) ($_SESSION 存在主機上,看你設定多久, $_COOKIE 在 client 上,一樣看你的 expire time,其他變數幾乎都是執行完就死了) : 還是說共用僅止於小明本人? : 不考慮上述的 Application 變數的話 小明的變數僅小明 小華的變數僅小華 : : 問得很支離破碎抱歉...因為我也不是很清楚問題長什麼樣子,具體有哪些問題等等 : : 如果清楚問題的話也許自己就可以解決了冏 : ※ 編輯: p52189 來自: 114.42.225.45 (02/14 21:39) : → tyf99:不同 client 的變數是分開的,因為是不同的 php thread 02/14 23:48 : → tyf99:不同 thread 的變數要互通,就要透過 shared memory 02/14 23:49 : → tyf99:變數的生命期,一般來說最長的是$_SESSION,然後才是global 02/14 23:51 : → tyf99:不過一般不會用 shared memory,難寫,透過資料庫比較簡單 02/14 23:53 memcache 是個好方法!(但還是要稍微搭配資料庫做紀錄) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.85.64.11
p52189:感謝!非常清楚! 02/15 07:31
p52189:不過印象中HTTP不是一問一答的嗎? 所以才說request 02/15 07:33
p52189:搞錯的話不好意思 02/15 07:33
gname:php沒有重載,但有寫法可以仿... 02/15 08:34
UniFish:array的=是「複製」 02/15 09:10
kerash:php 的重載大多數都是用 func_get_arg() 取得輸入參數 02/15 09:11
kerash:判斷 arg 的長度 if=1 or if=2 ... etc 之後 02/15 09:12
kerash:再看看要不要針對每個輸入的參數判斷型態來呼叫執行 02/15 09:12
kerash:以上說的是仿造的方式 02/15 09:13
gname:推樓上~ 就是醬~ 02/15 10:53
把樓上板友 array = 的定義放到文章內。 ※ 編輯: chrisQQ 來自: 219.85.64.11 (02/15 17:13)
kusoayan:複製是在改變其值時才會進行 02/16 00:47