hprose / hprose-php

Hprose is a cross-language RPC. This project is Hprose 3.0 for PHP
MIT License
1.97k stars 390 forks source link

fix list or map judge error #108

Closed wklzz closed 5 years ago

wklzz commented 5 years ago

一次循环解决所有问题

wklzz commented 5 years ago

随机数组长度:1001 bool(true)

0.00024604797363281秒 随机数组长度:10001 bool(true)

0.0023910999298096秒 随机数组长度:100001 bool(true)

0.024230003356934秒 随机数组长度:1000001 bool(true)

0.24304103851318秒

andot commented 5 years ago

isset 对于数组中为 NULL 的值不会返回 TRUE,而 array_key_exists 会。 isset 性能比 array_key_exists 高,但是会有误判。所以两者结合判断才会准确,又不失效率。

andot commented 5 years ago

另外,如果您愿意的话,帮忙把 pecl 版本的这个函数也改一下吧,这样扩展和php实现才能统一。

https://github.com/hprose/hprose-pecl/blob/master/hprose_common.h#L692

andot commented 5 years ago

另外,你可以帮忙看看有没有更快的方法:https://www.php.net/manual/zh/function.is-array.php 这里的用户注释部分提供了许多判断的方法,你可以帮忙测试一下哪个更快,且更准。

wklzz commented 5 years ago

好的,我先把PHP这个做好。

wklzz commented 5 years ago

再次关闭