【问题标题】:function inside FOR LOOP execute only onceFOR LOOP 中的函数只执行一次
【发布时间】:2023-04-07 04:10:01
【问题描述】:

我有一系列电子邮件添加需要验证。当我在迭代期间调用该函数时,循环在第一次迭代后停止并且不会在整个数组上进行。和返回值。

$num 包含 6,$email 由 (1st@yahoo.com,2nd@yahoo.com,3rd@yahoo.com, 4th@yahoo.com, 5th@yahoo.com,6th@yahoo.com)唯一有效和注册的电子邮件是 1st@yahoo.com 和 6th@yahoo.com,但我只收到最后一个 6th@yahoo.com。

  function get_email_verification(){
        $num = count($this->get_payqucker_emails());
        $email = $this->get_payqucker_emails();
        if ($num){
            for($i=0; $i < $num; $i++){
                $api_request_url = "http://api.payquicker.com/api/IsActiveAccount";
                $param = "email=".$email[$i];
        $result_request =  $this->do_request($api_request_url, $param, 'GET', 'json');   
            }
        }
        else {
            echo "All payee emails are already registered to Payquicker";
        }
         return $result_request ; 

    }

do_request 函数将暂停一个 json/xml 值到 Payquicker API 中的 (GET/POST)

【问题讨论】:

  • 不是一个直接的问题,但如果你执行 $num = count($email),代码运行起来会非常流畅。无需调用该函数两次。
  • 这只执行一次 $result_request = $this->do_request($api_request_url, $param, 'GET', 'json');
  • @ArkNet 你怎么知道循环内的代码只执行一次?
  • @Konstantin 因为我只收到 1 封退回 1 封电子邮件。
  • 你会得到 1 个返回值,你可以尝试覆盖它,$result_request[]

标签: php


【解决方案1】:

使用 foreach:

function get_email_verification(){
            $result_request = array();
            $api_request_url = "http://api.payquicker.com/api/IsActiveAccount";
            foreach ($this->get_payqucker_emails() as $email) {

                    $param = "email=".$email;
                    $result_request[] =  $this->do_request($api_request_url, $param, 'GET', 'json');
            }
            if (empty($result_request)) {
                echo "All payee emails are already registered to Payquicker";
            }
            return $result_request;     
     }

【讨论】:

  • 会有什么不同? (在 for 和 foreach 之间)
  • @cske 谢谢我收到这两封电子邮件。
  • 在 foreach 之前移动 $api_request_url = ...。不干净!
  • @hallaji 是的,我将它移到上面,因为它是常量变量。
  • @itachi: 数组键可以是任何东西,php 数组自然是散列
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-02
  • 2020-11-05
  • 1970-01-01
  • 2013-05-22
  • 1970-01-01
相关资源
最近更新 更多