Re: [請益] 伺服器變數
※ 引述《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沒有辦法做到這個。」,下一段似乎直接駁斥了這一段的說法?
: PHP如果要做到對某個參數的變更,所有訪客都看得到,那勢必必須自己
: 實作一些方式把這些資料儲存在某個地方(檔案或者資料庫或者甚至存在
: shared memory),另外也要自己實作一些方式去讀取這些共用資料。
: 為什麼得自己實作?就是因為PHP本身沒有提供咩。
辦法是人想出來的,自己實做會比較差?
我在網路上看過一段話,意思大概是這樣:
「如果你寫的 code、應用的 library、使用的軟體都是 well documented 的,
那你的成果並不是什麼了不起的曠世鋸作。」
共勉之~
--
推
,
推
,
推
,
推
,
推
,
推
,
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.116.37.9
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章
4
11