php curl 寫在同一個function但沒辦法同時兩次請求?
我把curl寫在一個function像這樣:
function httpRequest ($api, $data_string)
{
$ch = curl_init($api);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
$result = curl_exec($ch);
curl_close($ch);
return json_decode($result);
}
然後我同一頁有兩隻請求
$api_a = 'a';
$api_b = 'b';
$get_a = array(
"session" => $_SESSION['session']
);
$get_a_str = json_encode($get_a);
$get_a = httpRequest($api_a, $get_a_str);
$get_b = array(
"session" => $_SESSION['session']
);
$get_b_str = json_encode($get_b);
$get_b = httpRequest($api_b, $get_b_str);
寫在同一頁:
<?foreach ($get_a->dataA as $key) {?>
<?=@$key->{'name'};?>
<?}?>
<?foreach ($get_b->dataB as $key) {?>
<?=@$key->{'name'};?>
<?}?>
為什麼這樣不行同時呢?
他只能請求其中一個,另一個會無效?(誰在最上面誰才能運行)
他會抱錯:
Undefined variable: get_b
Trying to get property 'dataB' of non-object
Invalid argument supplied for foreach()
我只要把A刪掉就可以運行B
把B刪掉就可以運行A
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
php官方在线文档的foreach页面里分别提到过两个问题:
$value
在执行完foreach循环之后仍会保留,所以需要手动执行unset()
来将其销毁。@
标记抑制错误。另外还有个建议,如果foreach是在视图页分开写的,可以写成:
这种形式,在流程控制的替代语法中有介绍。