【问题标题】:Xoops - Why I get an array and not a XoopsObject?Xoops - 为什么我得到一个数组而不是 XoopsObject?
【发布时间】:2012-08-01 10:57:28
【问题描述】:

我尝试从我的处理程序中获取一个对象,但是当我尝试知道它是否是一个带有“is_object”的对象时,答案是假的,而“is_array”的答案是真的。

为什么?

这是我的代码:

        // Get members list
        $criteria = new CriteriaCompo();
        $criteria->setSort('member_id');
        $criteria->setOrder('ASC');
        $members = $memberhandler->getObjects($criteria, true, false);
        unset($criteria);

        // Get  Nickname / Pseudo
        if (count($members) > 0) {
            foreach (array_keys($members) as $i) {
                is_object($members[$i]) ? print_r("is object") : print_r("is not object");
                is_object($members[0]) ? print_r("is object") : print_r("is not object");
                is_array($members[$i]) ? print_r("is array") : print_r("is not array");
                echo($member->getVar('uid'));
            }
        }

谢谢你的回答:)

【问题讨论】:

  • 在循环之前尝试var_dump($members),并显示结果。

标签: php content-management-system portal


【解决方案1】:

这是因为“getObjects”给你一个“对象数组”

如果你想检索一个特定的对象,并拥有 member_id,那么你应该使用“get”,在你的情况下,你不会再使用“criteria”,而是直接请求对象:

$member = $memberhandler->get($member_id);

您可以在此演示文稿中看到更多示例:

http://www.slideshare.net/xoopsproject/oop-adventures-with-xoops

【讨论】:

    猜你喜欢
    • 2019-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多