如何在php中访问foreach循环之外的多个变量

Posted

技术标签:

【中文标题】如何在php中访问foreach循环之外的多个变量【英文标题】:How to access multiple variables outside foreach loop in php 【发布时间】:2021-01-21 16:16:12 【问题描述】:

我不是 php 专业人士,并且已经探索了不同的在线搜索论坛,但找不到任何合适的答案,这就是为什么在这里发布我的问题。

功能一:查询数据库并在foreach循环中定义变量如下:

function myFunction()
 $dbinfo = get_db_info();
 $users = $dbinfo->get_results("
    SELECT 
       Email,
       ID,
       Name,
       Address
        FROM Database_table
        WHERE ID = 5
    ");
    
    if($users) 
        $output = '';
        foreach($users as $user) 
            $ID = $user->ID;
            $dname = $user->Name;
            $email = $user->Email;
            $address = $user->Address;
        else
            $output .= 'No user found';
        

    //endif
    return $output;

函数二:现在我想在另一个函数中获取这些变量的值,如下所示:

function dislayData()

    $values = myFunction();
    echo $values=>$email;


但它不起作用。看来我可能需要将 foreach 循环中的变量包装到一个数组中。我不明白该怎么做。

我们将不胜感激。

提前致谢。

巴卡尔

【问题讨论】:

什么是echo $values=>$email; 【参考方案1】:
function myFunction()
    $dbinfo = get_db_info();
    $users = $dbinfo->get_results("SELECT Email, ID, Name, Address
                                    FROM Database_table
                                    WHERE ID = 5");
    
    if($users) 
        $arrOutput = [];
        foreach($users as $user) 
            $arrOutput[]    =   [
                'ID'    =>  $user->ID,
                'dname' =>  $user->Name,
                'email' =>  $user->Email,
                'address'   =>  $user->Address
            ];
        
        return $arrOutput;
    
    else
        return false;
    


function dislayData()

    $values = myFunction();

    if($values !== false)
        foreach($values as $user)
            // Now you can access property of each uesr
            echo $user['email'];
        
    

【讨论】:

【参考方案2】:

我认为您忘记将用户数据存储在变量“输出”中。

【讨论】:

以上是关于如何在php中访问foreach循环之外的多个变量的主要内容,如果未能解决你的问题,请参考以下文章

PHP foreach循环中的多个索引变量

我们如何在 laravel php 刀片模板中为 foreach 循环定义循环变量

如何在laravel中的foreach循环中传递多个变量

php foreach里面的变量

PHP 变量范围 - 在 foreach 循环中设置全局变量

PHP - foreach循环中变量之前的&符号[重复]