使用 PHP 的 curl API 时,如果我不小心使用了带有CURLOPT_HTTPHEADERcurl 选项的字符串
curl_setopt($ch, CURLOPT_HTTPHEADER, 'User-Agent: php-curl');
PHP会骂我
警告:curl_setopt():您必须在第 32 行的 /path/to/test.php 中传递带有 CURLOPT_HTTPHEADER 参数的对象或数组
我知道我可以使用数组来解决这个问题
$headers = [];
$headers[] = 'User-Agent: php-curl';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
但是,警告似乎表明我也可以传递curl_setopt一个对象。这可能吗?
我已经尝试过使用stdClassand ArrayObject,但似乎都不起作用。这只是一个误导性的警告信息,还是有办法curl_setopt与对象一起使用?
更新原来我安装了一个阻止标准行为的 PHP 扩展。ArrayObjects 在这个函数中工作正常。我无法关闭或删除此问题,因此希望此警告可以避免混淆。