为了账号安全,请及时绑定邮箱和手机立即绑定

php curl 寫在同一個function但沒辦法同時兩次請求?

php curl 寫在同一個function但沒辦法同時兩次請求?

PHP
隔江千里 2019-03-18 15:28:32
我把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
查看完整描述

1 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

php官方在线文档的foreach页面里分别提到过两个问题:

  1. 最后一个元素的$value在执行完foreach循环之后仍会保留,所以需要手动执行unset()来将其销毁。
  2. foreach不支持使用@标记抑制错误。

另外还有个建议,如果foreach是在视图页分开写的,可以写成:

<?php foreach($arr as $ele): ?>

<?=$ele?>

<?php endforeach; ?>

这种形式,在流程控制的替代语法中有介绍。

查看完整回答
反对 回复 2019-03-18
  • 1 回答
  • 0 关注
  • 387 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信