【问题标题】:OOP in PHP - object array iterationPHP 中的 OOP - 对象数组迭代
【发布时间】:2012-02-09 00:10:44
【问题描述】:

我正在尝试遍历 PHP 中的对象数组,但我无法弄清楚。这是我的代码:

    require_once("databaseConnect.php");
require_once("class/Ticket.php");

function showAll(){
    $sql = "SELECT * FROM Ticket WHERE Status='1'";
    $p = mysql_query($sql);
    while ($row = mysql_fetch_object($p)){ 
        $t = new Ticket($row->IDTicket, $row->IDUser, $row->TotalOdd, $row->PlacedBet, $row->PossibleWin, $row->Status, $row->Won, $row->Time);
        $nizTiketa[] = $t;
    }
    return $nizTiketa;
}

$niz = showAll();

for ($i; $i<count($niz); $i++){
    echo $niz[$i]->getIDTicket()."<br/>";
}

这是类票:

class Ticket {
private $IDTicket;
private $IDUser;
private $TotalOdd;
private $PlacedBet;
private $PossibleWin;
private $Status;
private $Won;
private $Time;

function Ticket($idTicket, $idUser, $totalOdd, $placedBet, $possibleWin, $status, $won, $time) {
    $this->IDTicket = $idTicket;
    $this->IDUser = $idUser;
    $this->TotalOdd = $totalOdd;
    $this->PlacedBet = $placedBet;
    $this->PossibleWin = $possibleWin;
    $this->Status = $status;
    $this->Won = $won;
    $this->Time = $time;
}

function getIDTicket(){
    return $this->IDTicket;
}

function setIDTicket($idTicket){
    $this->IDTicket = $idTicket;
}

。 . .

我收到错误调用非对象上的成员函数 getIDTicket()

应该怎么做?

【问题讨论】:

  • 为了理智,在function showAll() 的顶部添加$nizTiketa = array(); - 在向其中添加内容之前始终初始化您的数组:)
  • 你确定必须在php中初始化数组吗?
  • 问题是如果没有行匹配查询,变量$nizTiketa 将不存在。严格来说,这是您希望通过初始化变量来避免的错误。

标签: php arrays oop object


【解决方案1】:

为了理智我会在这里做几件事......

  1. 正如乔所说,在添加元素之前初始化你的数组,例如

    function showAll() {
        $nizTiketa = array();
        // ...
    
  2. 要么将您的迭代计数器 $i 初始化为零

    for ($i = 0, $count = count($niz); $i < $count; $i++)
    

    或更简单地说,使用foreach

    foreach ($niz as $ticket) {
        echo $ticket->getIDTicket(), "<br/>";
    }
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-13
    • 2021-06-22
    • 1970-01-01
    • 2018-02-23
    • 2013-10-01
    • 2019-05-22
    • 1970-01-01
    相关资源
    最近更新 更多