PHP 的坑

1. curl在执行的时候,经常会有内部错误,在curl_errno中返回正值,不必未必费心

2.检测编码的时候,mb_check_encoding基本是没有用的,检查不出当前的字符串编码格式

  if (3 !== strlen()) {                                                                                                                                            

            throw new \DomainException(Bad encoding, length of unicode character ✓ should be 3. Ensure charset UTF-8 and check ini val  mbstring.func_autoload);                

}                                                                                                                                                                  

这个方法不错,可以判断是不是utf-8编码

3.php静态变量的问题。奇葩问题。

   从mc中读取缓存,如果读取次数太多,也会出现效率问题,一个更加优化的办法是保存在静态变量里面,或者是变量里面,这样会得到更高的效率。

这样做的前提条件是,数据量不能够过大,php的静态变量中不能保存太多的东西,最近遇到一个问题,

一个数组,长度为9,存储在mc中的,每个变量的长度是一个长度48的数组,如下,其中只有四条是有用的,如果我将这个9 * 48

的数组存在静态变量里面,页面是无法显示出来的,如果将长度为48的数组替换成想要的长度为4的数组,就可以毫无压力的显示数据,由此可见静态变量无法保存这个9 * 48 的数组,不过有点奇怪的是,使用 memory_get_usage 测试,耗费内存是2.4mb,不再变化。

<!-------------------------------------------------------------------------->
实测证明,不是因为静态变量大,将此长度为48数组单独保存,for循环复制给一个静态变量,,发现在循环到1000,程序执行如常,因为担心引用造成的复用,
每次循环中修改数组中的变量,形成数组脏数组,避免php的内部数据引用,结果依旧证明,不是因为静态变量造成的。
4.array_merge 的元素中,如果其中有null或者其他,返回结果不是array,而是null

Leave a comment

Your email address will not be published.

*