Re: [請益] 一些觀念釐清

看板PHP作者 (ChrisLiu)時間13年前 (2012/02/15 02:51), 編輯推噓5(506)
留言11則, 5人參與, 最新討論串3/4 (看更多)
※ 引述《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 不一樣) ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

02/15 09:10,
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

02/15 07:31, , 1F
感謝!非常清楚!
02/15 07:31, 1F

02/15 07:33, , 2F
不過印象中HTTP不是一問一答的嗎? 所以才說request
02/15 07:33, 2F

02/15 07:33, , 3F
搞錯的話不好意思
02/15 07:33, 3F

02/15 08:34, , 4F
php沒有重載,但有寫法可以仿...
02/15 08:34, 4F

02/15 09:10, , 5F
array的=是「複製」
02/15 09:10, 5F

02/15 09:11, , 6F
php 的重載大多數都是用 func_get_arg() 取得輸入參數
02/15 09:11, 6F

02/15 09:12, , 7F
判斷 arg 的長度 if=1 or if=2 ... etc 之後
02/15 09:12, 7F

02/15 09:12, , 8F
再看看要不要針對每個輸入的參數判斷型態來呼叫執行
02/15 09:12, 8F

02/15 09:13, , 9F
以上說的是仿造的方式
02/15 09:13, 9F

02/15 10:53, , 10F
推樓上~ 就是醬~
02/15 10:53, 10F
把樓上板友 array = 的定義放到文章內。 ※ 編輯: chrisQQ 來自: 219.85.64.11 (02/15 17:13)

02/16 00:47, , 11F
複製是在改變其值時才會進行
02/16 00:47, 11F
文章代碼(AID): #1FEgqUGP (PHP)
文章代碼(AID): #1FEgqUGP (PHP)