gpt4 book ai didi

php - 使用从 PHP 函数返回的对象数组

转载 作者:行者123 更新时间:2023-12-04 05:54:52 25 4
gpt4 key购买 nike

我有一个奇怪的问题。我正在学习 PHP(用于用 Java 编程),并且我正在尝试做一件简单的事情。我有一个 DAO 方法可以做这样的事情:

while (oci_fetch($parse)) {
$stats = new Stats();
$stats->setId($id);
$stats->setName($name);
$stats->setEmail($email);
$stats->setGender($gender);
$stats->setBirthday($birthday);
$statslist[] = $stats;
}

return $statslist;

我还有另一个使用此函数(称为 getById)的 PHP 文件作为测试,如下所示:
    $statsdao = new StatsDAO();
$statslist[] = $statsdao->getById(1);
foreach ($statslist as $stat) {
echo $stat->getName();
}

这看起来很简单:DAO 返回一个数组,我的另一个文件读取返回的 Stats 数组并打印它。但我收到此错误消息:

Fatal error: Call to a member function getName() on a non-object in /var/www/socializi/interfaceusuario/index.php on line 25



奇怪的是:如果我在 DAO 的 getById 函数中调用 foreach 循环,它会打印它,但是当我从外部调用该函数并将其分配给另一个数组时,它不会将数组的内容识别为对象。

我在这里做错了什么?
谢谢!

最佳答案

像这样尝试:

  $statsdao = new StatsDAO();
$statslist = $statsdao->getById(1);
foreach ($statslist as $stat) {
echo $stat->getName();
}

您添加一个 [] 仅提供服务,然后将数组放入另一个数组中,从而为您提供
 $statslist[0][0]->getName(); //would only work on php 5.4 with this syntaxe but it shoes the idea.

一层太深了。

将另一个 foreach 放在第一个里面也可以修复它,但它很丑陋并且没有任何作用:
 $statsdao[] = new StatsDAO();
$statslist = $statsdao->getById(1);
foreach ($statslist as $stats) {
foreach ($stats as $stat) {
echo $stat->getName();
}
}

关于php - 使用从 PHP 函数返回的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9638390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com