Re: [請益] 伺服器變數
※ 引述《JoeHorn (獅子男)》之銘言:
: ※ 引述《MrMarcus (請勿忘記密碼)》之銘言:
: : 我不知道各位有沒有寫過ASP或者ASP.net。ASP/ASP.net的Application變數
: : 是一種在同一個Application範圍內的所有頁面,所有使用者,都可以存取
: : 得到的變數。這裡的使用者指的是前來瀏覽這個Application範圍內網頁的
: : 訪客,不是主機作業系統上的使用者。
: 我之前的文章有說到這段:
: 如果「user」是單一 PHP 系統的 web wlient ,那根本就不用來問伺服器級變數,
: 隨便找個開放源碼的 PHP 系統(phpBB、OSC、Gallery、...)都可以看到作法。
: 把資料放在 Config 檔,或是放在後端 DB ,都可以解決。
: 有必要一定得用 application variables ?
: : PHP透過auto_prepend_file在每個程式前面插入該程式,這雖然可以讓每個
: : 程式(以及使用者)共享某些資料,但是問題在於這些資料是不能被改變的。
: : ASP/ASP.net程式可以用類似以下的方式讀取Application變數:
: : TotalUserLabel.Text = Application["TotalUser"].ToString();
: : 但是除了讀取,還可以把資料寫到Application層級去:
: : Application.Add("TotalUser", 100);
: : 或者
: : Application["TotalUser"] = 101;
: : 整個app範圍內的所有使用(訪客)都會看到這個變數的改變。PHP的
: : auto_prepend_file沒有辦法做到這個。雖然可以在這個檔案裡面放入一些
: : 變數讓每個程式(以及訪客)都讀取得到,但是當程式試圖去「變更」這些
: : 變數的資料的時候,這些變更影響的範圍都只限於該支程式,該程式執行
: : 完畢,下次執行的時候就又恢復成以前未變更的值了。或者頂多透過
: : SESSION變數,讓同一個訪客瀏覽的多個頁面都能看到之前的變更。
: : 但是重點在於「其他訪客」並無法看到這些「變更」。這也就是Application
: : 層級變數跟session層級變數不同的地方。
: 您在這邊講「整個app範圍內的所有使用(訪客)都會看到這個變數的改變。PHP的
: auto_prepend_file沒有辦法做到這個。」,下一段似乎直接駁斥了這一段的說法?
我不認為後面那段自己駁斥了這一段。
任何缺少的功能我們當然可以自己想辦法做出來。以這個例子來講,也許我們可以
做出自己的lib來達到或者模擬ASP/ASP.net的application變數的功能。但是這跟
auto_prepend_file有什麼關係?這個功能是因為auto_preprend_file才做出來的嗎?
不是吧。auto_prepend_file只是會自動把某個檔案的內容塞到每一個php程式前面
而已。好,就算我把自己做出來的class放在這個檔案裡面好了,這樣我不需要在
程式裡面用include或者require把這個class叫進來,方便多了。但是這樣我會說
這個app變數的功能是因為auto_prepend_file才做出來的嗎?不會吧。
: : PHP如果要做到對某個參數的變更,所有訪客都看得到,那勢必必須自己
: : 實作一些方式把這些資料儲存在某個地方(檔案或者資料庫或者甚至存在
: : shared memory),另外也要自己實作一些方式去讀取這些共用資料。
: : 為什麼得自己實作?就是因為PHP本身沒有提供咩。
: 辦法是人想出來的,自己實做會比較差?
我可沒說自己做的東西就會比較差。請不要自己猜。我只是說,PHP本身沒有
提供類似ASP/ASP.net的application變數這項功能。這有錯嗎?沒有就是沒有。
至於引申出「自己做的就會比較差」這個,那可不是我講的。我也沒有暗示
「自己做的就會比較差」這件事。
說實在話,今天我也得感謝PHP,才能掙口飯吃。說PHP的壞話對我來說有什麼
好處?沒有啊。只不過剛好我也有一部份得感謝ASP/ASP.net。我不會在這裡
說PHP好還是ASP/ASP.net好,那也不是我能評論的。今天只不過是有人問了
PHP有沒有類似app變數的功能,答案是沒有。就這樣。原發問者會因為這樣就
不用PHP嗎?這我不曉得。不過在現實環境下,如果真的需要這功能而且就是
得用PHP,我想原作者會去找到可用的函式庫或者自己想辦法生出來的。我們
都是這樣走來的不是嗎。
: 我在網路上看過一段話,意思大概是這樣:
: 「如果你寫的 code、應用的 library、使用的軟體都是 well documented 的,
: 那你的成果並不是什麼了不起的曠世鋸作。」
: 共勉之~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.153.19
推
03/20 16:58, , 1F
03/20 16:58, 1F
→
03/20 16:59, , 2F
03/20 16:59, 2F
→
03/20 16:59, , 3F
03/20 16:59, 3F
→
03/20 17:02, , 4F
03/20 17:02, 4F
推
03/20 17:11, , 5F
03/20 17:11, 5F
推
03/20 17:13, , 6F
03/20 17:13, 6F
→
03/20 17:14, , 7F
03/20 17:14, 7F
推
03/20 17:14, , 8F
03/20 17:14, 8F
→
03/20 17:15, , 9F
03/20 17:15, 9F
→
03/20 17:15, , 10F
03/20 17:15, 10F
→
03/20 17:15, , 11F
03/20 17:15, 11F
→
03/20 17:16, , 12F
03/20 17:16, 12F
→
03/20 17:16, , 13F
03/20 17:16, 13F
→
03/20 17:17, , 14F
03/20 17:17, 14F
→
03/20 17:18, , 15F
03/20 17:18, 15F
推
03/20 17:18, , 16F
03/20 17:18, 16F
→
03/20 17:19, , 17F
03/20 17:19, 17F
→
03/20 17:19, , 18F
03/20 17:19, 18F
→
03/20 17:20, , 19F
03/20 17:20, 19F
推
03/20 17:23, , 20F
03/20 17:23, 20F
→
03/20 17:24, , 21F
03/20 17:24, 21F
→
03/20 17:34, , 22F
03/20 17:34, 22F
→
03/20 17:35, , 23F
03/20 17:35, 23F
→
03/20 17:35, , 24F
03/20 17:35, 24F
→
03/20 17:36, , 25F
03/20 17:36, 25F
推
03/20 18:34, , 26F
03/20 18:34, 26F
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章
4
11