【问题标题】:Call to undefined method stdClass error调用未定义的方法 stdClass 错误
【发布时间】:2012-04-02 05:31:21
【问题描述】:

我正在尝试在 $rooms 是返回的数据库对象的 foreach 循环中实现以下逻辑。我想将数据分成 5 个不同的数组,每个数组的大小取决于从数据库返回的房间数。每当我实现下面的函数时,它都会为我提供对未定义方法 stdClass::number_format() 的调用,我认为我的数组正在转换为 stdClass。我环顾该网站,发现有人遇到同样的问题但没有修复。如何在 php 中执行此操作?

提前致谢

代码:

...
$rooms = $db->query($sql, PDO::FETCH_OBJ);

$barray = array();
$rarray = array();
$darray = array();
$latarray = array();
$lonarray = array();

$i = 0;
foreach ($rooms as $room):
    $barray[i] = $room->Bldg;
    $rarray[i] = $room->Room;
    $darray[i] = $room->number_format($room->D,9);
    $latarray[i] = number_format($room->Latitude,7,".","");
    $lonarray[i] = number_format($room->Longitude,7,".","");
    $i = $i + 1;
endforeach
?>

【问题讨论】:

  • 您确定不应该使用 PDO::FETCH_CLASS 吗?因为 pdo 在使用 PDO::FETCH_OBJ 时返回通用 stdClass 对象。
  • 是什么让您认为$room->number_format 应该有效?

标签: php arrays foreach stdclass


【解决方案1】:
$darray[i] = $room->number_format($room->D,9);

...应该是...

$darray[i] = number_format($room->D,9);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-17
    • 2016-05-08
    • 2019-07-19
    • 1970-01-01
    相关资源
    最近更新 更多