手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆

ThinkSNS 插件配置BUG

首页 > PHP >

由于最近一直在使用thinksns,所以相对关注的就比较多了一点。BUG偶尔也会发现一些,小的就不提了,没意义,偶尔也有可能是手误的关系,但一些稍大一点的。我还是写下来做个记录。。

比如这个插件配置的BUG。

一般来说,项目的配置要覆盖原始配置都是array_merge就结束了。于是乎,ThinkSNS在每个插件的Conf目录下的Config文件里也都有这么一行。

然而。。。问题就出来这里,插件的作者好象都没有注意过Array_merge的作用范围。

大多情况都是这样写的:

PHP代码
  1. $miniConfig = array (  
  2.     'DEBUG_MODE'        =>  false,  
  3.     'DEFAULT_ACTION'    =>   'index',  
  4. );  
  5. $array = require_once( SITE_PATH.'/config.inc.php' );  
  6. $array = array_merge$miniConfig,$array );  
OK,让我们来温习一下array_merge函数。
XML/HTML代码
  1. array_merge() merges the elements of one or more arrays together so that the values of one are appended to the end of the previous one. It returns the resulting array.   
  2.   
  3. If the input arrays have the same string keys, then the later value for that key will overwrite the previous one. If, however, the arrays contain numeric keys, the later value will not overwrite the original value, but will be appended.   
  4.   
  5. If only one array is given and the array is numerically indexed, the keys get reindexed in a continuous way.   

看到第二段没?如果有相同的KEY,后面的会覆盖前面的。。那么。。上面第6行的array_merge,和没运行有什么区别???

把参数顺序颠倒一下就OK了。。。




本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"易栈网-膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):