<p>我正在編寫一個通用系統,希望有一天可以應用於醫學等領域(即它是「科學的」)。 </p>
<p>我認為最好的方法是用字串在php中表示所有資料(true將是“true”,false將是“false”,依此類推)。這樣做的原因是在php中任何值都有唯一的字串表示(例如php程式碼本身)。 </p>
<p>我發表這個問題是為了加速這個程式的設計過程。 </p>
<p>有些值很容易轉換成字串:數字、布林值等。 </p>
<p>有些不容易:物件、陣列、資源。 </p>
<p>我認為傳輸物件和陣列的格式基本上是json,但我不確定是否完全匹配。這比我目前擁有的(什麼都沒有)要好,但至少在某個時候,我想將其精煉到一個點。 </p>
<p>有什麼想法嗎? </p>
Your Answer
1 個答案
這確實是一個雄心勃勃的目標;如此雄心勃勃以至於嘗試是愚蠢的。
現在,你可能並不是真的意味著“可以為任何人做任何事”,但你在嘗試表示的時候沒有設定任何限制是與你的問題相關的。這使得你在尋找序列化格式方面變得不必要地困難。
例如,你提到了資源,PHP用於諸如資料庫連線、開啟檔案句柄等的東西。它們是對一些存在一會兒然後消失的東西的短暫指針,對它們進行序列化不僅在PHP中不受支持,而且幾乎沒有意義。
與其試圖涵蓋“一切”,你需要考慮你實際上需要處理哪些類型的資料。也許你主要會使用系統內定義的類,所以你可以定義任何你想要的格式來表示它們。也許你想要處理任意的鍵值對集合,以PHP數組的形式。你可能希望為將來的擴展留下餘地,但這只是關於格式的靈活性,而不是現在就有一個具體的答案。
從那裡開始,你可以尋找你想要的屬性,並四處逛逛:
- JSON是一個非常受歡迎的「最低公共分母」格式。它的主要缺點是它沒有表示特定自訂類型的方式,一切都必須由列表和鍵值對組成(我喜歡說「JSON沒有類別」)。
- XML比它過去流行了一些,但非常強大,可以用於定義自訂語言和類型。它相當冗長,但壓縮效果很好 - 很多現代檔案格式實際上是包含壓縮的XML檔案的zip歸檔。
- PHP序列化格式其實只適用於短期的應用程式內目的,例如快取資料。它相當簡潔,並與PHP的類型系統密切相關,但如果使用者對資料有影響力,則存在安全問題,如unserialize手冊頁面中所述。
- 甚至還有更簡潔的格式,它們不僅限於人類可讀的表示,如果這對你來說是一個相關因素的話。
顯然,列表是無窮無盡的...
Hot Questions
function_exists()無法判定自訂函數
2024-04-29 11:01:01
google 瀏覽器 手機版顯示的怎麼實現
2024-04-23 00:22:19
子窗口操作父窗口,輸出沒反應
2024-04-19 15:37:47
父視窗沒有輸出
2024-04-18 23:52:34
關於CSS心智圖的課件在哪?
2024-04-16 10:10:18
Hot Tools
vc9-vc14(32+64位元)運行庫合集(連結在下方)
phpStudy安裝所需運行函式庫集合下載
VC9 32位
VC9 32位元 phpstudy整合安裝環境運行庫
php程式設計師工具箱完整版
程式設計師工具箱 v1.0 php整合環境
VC11 32位
VC11 32位元 phpstudy整合安裝環境運行庫
SublimeText3漢化版
中文版,非常好用
熱門話題
抖音等級價目表1-75
20337
7
20337
7
wifi顯示無ip分配
13531
4
13531
4
虛擬手機號碼接收驗證碼
11851
4
11851
4
gmail信箱登陸入口在哪裡
8836
17
8836
17
windows安全中心怎麼關閉
8420
7
8420
7
熱門文章
2025年加密貨幣市場十大趨勢預測:下一個風口在哪裡?
2025-11-07
By DDD
幣圈土狗項目如何識別?避免歸零幣的陷阱與風險預警
2025-11-07
By DDD
解決CSS @media 查詢優先級與規則覆蓋問題的教程
2025-11-07
By DDD
win10字體安裝後在軟件裡找不到怎麼辦_win10字體安裝與識別方法
2025-11-07
By DDD
鐵路12306支付失敗訂單還在嗎_鐵路12306支付失敗訂單處理方法
2025-11-07
By DDD





