猿问

有人比较过这几种方法的优劣吗?哪种方法更好,或者说它们适用的场景有和不同?

对php来说将一些配置信息数组保存到文件中是司空见惯的情况,就我目前所知,有以下几种保存方法

  1. 直接用var_export写成return array(...);的php代码,然后读取的时候用require解析即可。

  2. 使用serialize函数序列化一个数组,然后读取的时候用unserialize反序列化

  3. 使用json_encode序列化一个数组,然后读取的时候用json_decode反序列化

  4. 使用其它的文件格式,比如yaml或者ini


湖上湖
浏览 85回答 2
2回答

繁星点点滴滴

如果你的数组是只是给php项目用,使用第一种方法是最好的最方便的,我一直用它如果你的数据可能不仅仅被php所用,那最好使用通用性更高的json格式了,当然yaml,xml也行,但总归不如json_encode方便serialize我还真的很少在保存数组的时候用到PS:不好意思刚才没看到你是说在配置文件的使用。如果是配置文件的话,一定要注意你的php代码会不会有可能被加密,如果有这种可能性最好是使用json或者yml或者ini等其他格式方便配置文件的修改

开满天机

还是用json吧。可读性强。体积小。解析速度快。跨语言。XML虽然也拥有强大的可读性。但是比起JSON来说,太过庞大,解析速度也是问题。YAML可读性一般,较复杂的内容肉眼看起来那就是一堆天书了。但毋庸置疑文件体积将是最小的。除var_export外。你需要考虑文件直接被浏览器打开的问题。最终还是力荐JSON,json_encode($content,15) 。推荐使用第二个参数。json_decode($data,true)可轻易的将object转换为array类型。方便操作。
随时随地看视频慕课网APP
我要回答