0

我试图从我的处理程序中获取一个对象,但是当我试图知道它是否是一个带有“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'));
            }
        }

感谢你的回答 :)

4

1 回答 1

1

这是因为“getObjects”正在为您提供“对象数组”

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

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

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

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

于 2013-01-06T06:56:11.120 回答