php 从数据库获取对象列表[重复]

kninwzqo  于 2023-05-05  发布在  PHP
关注(0)|答案(3)|浏览(115)

此问题已在此处有答案

get array of rows with mysqli result(2个答案)
昨天关门了。
我有一个名为Person的类,有它的getter和setter,我想知道如何从数据层返回一个List。在C#中我使用List,我可以返回列表,但在PHP中我不知道如何返回。

function AllPersons()
{
    try 
    {
        $objConn = new Connection();
        $conn = $objConn ->Connect();
        $sql = "SELECT * FROM PERSON";
        $answer= mysqli_query($cn, $sql);
        if(mysqli_num_rows($answer) > 0)
        {
            while($row = mysqli_fetch_array($answer)) 
            {
                /*here i want to do something like in C#
                  List<Person>listPerson;
                  listPerson.add(objPerson);*/
            }
        }
        else
        {
            return null;

        }
    } 
    catch (Exception $e) 
    {
        //FB::log("nada");
    }
}
lkaoscv7

lkaoscv71#

创建数组并填充它。

$listPerson = [];   
while($row = mysqli_fetch_array($answer)) {
    $listPerson[] = new Person($row);
}
1tu0hz3e

1tu0hz3e2#

在PHP中,数组取代了你在. NET中使用的列表/数组。当涉及到突变时,它们真的很灵活。
在这种情况下,您可能会像这样处理它:

...

$persons = array();
while($row = mysqli_fetch_array($answer)) 
{
    // Using [] appends the content of $row to the $persons array.
    $persons[] = $row;
}

...

阅读更多about the flexibility of PHPs arrays here.

0x6upsns

0x6upsns3#

List是C#中的无量纲数组(也可用于维数)。PHP中的数组也是无量纲的。所以你可以使用数组。

...
$listPerson = array();
while($row = mysqli_fetch_array($answer)) 
{
   $listPerson[] = new objPerson($row);
}
...

相关问题