php curl的隐藏BUG

Posted 小昌君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php curl的隐藏BUG相关的知识,希望对你有一定的参考价值。

<?php
$a = array(
    ‘a‘ => 2,
    ‘b‘ => 3,
);

$curl  = curl_init();
$b = $a;
curl_setopt_array($curl, array(
     CURLOPT_POSTFIELDS => $b
));

var_dump($a);

今天遇到一个神奇的BUG:

上述执行完以后,$a和$b里面的数据变成了字符串型

如果在$b=$a后,改变一下$b以后(比如$b[‘c‘] = 3;),$a就正常了。

个人猜测原因应该是$b=$a后,如果没有修改$b,则它们指向同一个内存区域。

 

而之所以$b的数据会变成字符串型,应该是curl_setopt_array()的BUG,PHP7以后这个BUG就不存在了

以上是关于php curl的隐藏BUG的主要内容,如果未能解决你的问题,请参考以下文章

PHP 使用CURL库IP欺骗,隐藏真实客户端IP

php 发送post请求且header中带参数bug调试

解析php中curl

在 php 中管理 curl 输出

postman 自动生成 curl 代码片段

postman 自动生成 curl 代码片段