PHP中的对象列表

时间:2017-04-19 13:51:29

标签: php list object

我有一个名为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");
    }
}

4 个答案:

答案 0 :(得分:3)

在PHP数组中,替换使用.NET中使用的列表/数组。 归结为突变时,它们非常灵活。

在这种情况下,你可能会接近它:

;WITH CTE AS
(
    SELECT TOP 1 zone
    FROM @T
    WHERE zone IN (3,2)
    AND @Value >= start
    AND @Value <= [end] 
    ORDER BY CASE WHEN zone = 3 THEN 0 ELSE 1 END
)

SELECT zone
FROM CTE
UNION ALL
SELECT NULL
WHERE NOT EXISTS(
    SELECT 1 
    FROM CTE
)

了解更多about the flexibility of PHPs arrays here

答案 1 :(得分:2)

创建一个数组并填充它。

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

答案 2 :(得分:1)

列表是C#中的无量纲数组(也可以在维度中使用)。 PHP中的数组也是无量纲的。所以你可以使用数组。

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

答案 3 :(得分:-2)

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)) 
            {
                print_r($row);
            }
        }
        else
        {
            return null;

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