Der kürzeste Weg, alle PHP-Typen in Strings umzuwandeln
P粉369196603
P粉369196603 2023-09-05 15:34:44
0
1
963
<p>Ich schreibe ein allgemeines System, von dem ich hoffe, dass es eines Tages auf Bereiche wie die Medizin anwendbar sein wird (d. h. es wird „wissenschaftlich“ sein). </p> <p>Ich denke, der beste Weg ist, alle Daten in PHP mit Strings darzustellen (true wird „true“, false wird „false“ sein und so weiter). Der Grund dafür ist, dass in PHP jeder Wert eine eindeutige Zeichenfolgendarstellung hat (z. B. der PHP-Code selbst). </p> <p>Ich poste diese Frage, um den Entwurfsprozess dieses Programms zu beschleunigen. </p> <p>Einige Werte lassen sich leicht in Zeichenfolgen konvertieren: Zahlen, boolesche Werte usw. </p> <p>Einige sind nicht einfach: Objekte, Arrays, Ressourcen. </p> <p>Ich denke, das Format zum Übertragen von Objekten und Arrays ist grundsätzlich JSON, aber ich bin mir nicht sicher, ob es genau übereinstimmt. Das ist besser als das, was ich derzeit habe (nichts), aber zumindest möchte ich es irgendwann bis zu einem gewissen Punkt verfeinern. </p> <p>Irgendwelche Ideen? </p>
P粉369196603
P粉369196603

Antworte allen(1)
P粉615886660

这确实是一个雄心勃勃的目标;如此雄心勃勃以至于尝试是愚蠢的。

现在,你可能并不是真的意味着“可以为任何人做任何事”,但你在尝试表示的时候没有设定任何限制是与你的问题相关的。这使得你在寻找序列化格式方面变得不必要地困难。

例如,你提到了资源,PHP用于诸如数据库连接、打开文件句柄等的东西。它们是对一些存在一会儿然后消失的东西的短暂指针,对它们进行序列化不仅在PHP中不受支持,而且几乎没有意义。

与其试图涵盖“一切”,你需要考虑你实际上需要处理哪些类型的数据。也许你主要会使用系统内定义的类,所以你可以定义任何你想要的格式来表示它们。也许你想要处理任意的键值对集合,以PHP数组的形式。你可能希望为将来的扩展留下余地,但这只是关于格式的灵活性,而不是现在就有一个具体的答案。

从那里开始,你可以寻找你想要的属性,并四处逛逛:

  • JSON是一个非常受欢迎的“最低公共分母”格式。它的主要缺点是它没有表示特定自定义类型的方式,一切都必须由列表和键值对组成(我喜欢说“JSON没有类”)。
  • XML比它过去流行了一些,但非常强大,可以用于定义自定义语言和类型。它相当冗长,但压缩效果很好 - 很多现代文件格式实际上是包含压缩的XML文件的zip归档。
  • PHP序列化格式实际上只适用于短期的应用内目的,比如缓存数据。它相当简洁,并与PHP的类型系统密切相关,但如果用户对数据有影响力,则存在安全问题,如unserialize手册页面中所述。
  • 甚至还有更简洁的格式,它们不仅限于人类可读的表示,如果这对你来说是一个相关因素的话。

显然,列表是无穷无尽的...

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage