<?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就不存在了