以最短的方式将所有PHP类型转换为字符串
P粉369196603
P粉369196603 2023-09-05 15:34:44
0
1
730
<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手册页面中所述。
  • 甚至还有更简洁的格式,它们不仅限于人类可读的表示,如果这对你来说是一个相关因素的话。

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!