以最短的方式將所有PHP型別轉換為字串
P粉369196603
P粉369196603 2023-09-05 15:34:44
0
1
955
<p>我正在編寫一個通用系統,希望有一天可以應用於醫學等領域(即它是「科學的」)。 </p> <p>我認為最好的方法是用字串在php中表示所有資料(true將是“true”,false將是“false”,依此類推)。這樣做的原因是在php中任何值都有唯一的字串表示(例如php程式碼本身)。 </p> <p>我發表這個問題是為了加速這個程式的設計過程。 </p> <p>有些值很容易轉換成字串:數字、布林值等。 </p> <p>有些不容易:物件、陣​​列、資源。 </p> <p>我認為傳輸物件和陣列的格式基本上是json,但我不確定是否完全匹配。這比我目前擁有的(什麼都沒有)要好,但至少在某個時候,我想將其精煉到一個點。 </p> <p>有什麼想法嗎? </p>
P粉369196603
P粉369196603

全部回覆(1)
P粉615886660

這確實是一個雄心勃勃的目標;如此雄心勃勃以至於嘗試是愚蠢的。

現在,你可能並不是真的意味著“可以為任何人做任何事”,但你在嘗試表示的時候沒有設定任何限制是與你的問題相關的。這使得你在尋找序列化格式方面變得不必要地困難。

例如,你提到了資源,PHP用於諸如資料庫連線、開啟檔案句柄等的東西。它們是對一些存在一會兒然後消失的東西的短暫指針,對它們進行序列化不僅在PHP中不受支持,而且幾乎沒有意義。

與其試圖涵蓋“一切”,你需要考慮你實際上需要處理哪些類型的資料。也許你主要會使用系統內定義的類,所以你可以定義任何你想要的格式來表示它們。也許你想要處理任意的鍵值對集合,以PHP數組的形式。你可能希望為將來的擴展留下餘地,但這只是關於格式的靈活性,而不是現在就有一個具體的答案。

從那裡開始,你可以尋找你想要的屬性,並四處逛逛:

  • JSON是一個非常受歡迎的「最低公共分母」格式。它的主要缺點是它沒有表示特定自訂類型的方式,一切都必須由列表和鍵值對組成(我喜歡說「JSON沒有類別」)。
  • XML比它過去流行了一些,但非常強大,可以用於定義自訂語言和類型。它相當冗長,但壓縮效果很好 - 很多現代檔案格式實際上是包含壓縮的XML檔案的zip歸檔。
  • PHP序列化格式其實只適用於短期的應用程式內目的,例如快取資料。它相當簡潔,並與PHP的類型系統密切相關,但如果使用者對資料有影響力,則存在安全問題,如unserialize手冊頁面中所述。
  • 甚至還有更簡潔的格式,它們不僅限於人類可讀的表示,如果這對你來說是一個相關因素的話。

顯然,列表是無窮無盡的...

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板