Създаване на обект по подразбиране от празна стойност ( stdClass? )

Скриптът работи добре, но само когато извличам групите на потребителя, се казва:

SteamUser.php (132): Създаване на обект по подразбиране от празна стойност

    function getProfileData() {

    //Set Base URL for the query:
    if(empty($this->vanityURL)) {
        $base = "http://steamcommunity.com/profiles/{$this->userID}/?xml=1";
    } else {
        $base = "http://steamcommunity.com/id/{$this->vanityURL}/?xml=1";
    }

    try {
        $content = SteamUtility::fetchURL($base);
        if ($content) {
            $parsedData = new SimpleXMLElement($content);
        } else {
            return null;
        }
    } catch (Exception $e) {
        //echo "Whoops! Something went wrong!\n\nException Info:\n" . $e . "\n\n";
        return null;
    }

    if(!empty($parsedData)) {   
        $this->steamID64 = (string)$parsedData->steamID64;
        $this->steamID = (string)$parsedData->steamID;
        $this->stateMessage = (string)$parsedData->stateMessage;
        $this->visibilityState = (int)$parsedData->visibilityState;
        $this->privacyState = (string)$parsedData->privacyState;

        $this->avatarIcon = (string)$parsedData->avatarIcon;
        $this->avatarMedium = (string)$parsedData->avatarMedium;
        $this->avatarFull = (string)$parsedData->avatarFull;

        $this->vacBanned = (int)$parsedData->vacBanned;
        $this->tradeBanState = (string)$parsedData->tradeBanState;
        $this->isLimitedAccount = (string)$parsedData->isLimitedAccount;

        $this->onlineState = (string)$parsedData->onlineState;
        $this->inGameServerIP = (string)$parsedData->inGameServerIP;

        //If their account is public, get that info:
        if($this->privacyState == "public") {
            $this->customURL = (string)$parsedData->customURL;
            $this->memberSince = (string)$parsedData->memberSince;

            $this->steamRating = (float)$parsedData->steamRating;
            $this->hoursPlayed2Wk = (float)$parsedData->hoursPlayed2Wk;

            $this->headline = (string)$parsedData->headline;
            $this->location = (string)$parsedData->location;
            $this->realname = (string)$parsedData->realname;
            $this->summary = (string)$parsedData->summary;
        }

        //If they're in a game, grab that info:
        if($this->onlineState == "in-game") {
            $this->inGameInfo = array();
            $this->inGameInfo["gameName"] = (string)$parsedData->inGameInfo->gameName;
            $this->inGameInfo["gameLink"] = (string)$parsedData->inGameInfo->gameLink;
            $this->inGameInfo["gameIcon"] = (string)$parsedData->inGameInfo->gameIcon;
            $this->inGameInfo["gameLogo"] = (string)$parsedData->inGameInfo->gameLogo;
            $this->inGameInfo["gameLogoSmall"] = (string)$parsedData->inGameInfo->gameLogoSmall;
        } 

        //Any weblinks listed in their profile:
        if(!empty($parsedData->weblinks)) {
            $this->weblinks = array();

            $i = 0;
            foreach ($parsedData->weblinks->weblink as $weblink) {
                $this->weblinks[$i]->title = (string)$weblink->title;
                $this->weblinks[$i]->link = (string)$weblink->link;
                $i++;
            }
        }   

  if(!empty($parsedData->groups)) {
            $this->groups = array();

            $i = 0;
            foreach ($parsedData->groups->group as $group) {

$this->groups[$i]->groupID64 = (низ)$group->groupID64; // ред 132 в скрипта

                $this->groups[$i]->groupName = (string)$group->groupName;
                $this->groups[$i]->groupURL = (string)$group->groupURL;
                $this->groups[$i]->headline = (string)$group->headline;
                $this->groups[$i]->summary = (string)$group->summary;

                $this->groups[$i]->avatarIcon = (string)$group->avatarIcon;
                $this->groups[$i]->avatarMedium = (string)$group->avatarMedium;
                $this->groups[$i]->avatarFull = (string)$group->avatarFull;

                $this->groups[$i]->memberCount = (string)$group->memberCount;
                $this->groups[$i]->membersInChat = (string)$group->membersInChat;
                $this->groups[$i]->membersInGame = (string)$group->membersInGame;
                $this->groups[$i]->membersOnline = (string)$group->membersOnline; 

                $i++;
            }

        }                    

    }
}
  .

. . Вече се опитах да използвам асоциативни масиви, но не се получи; може би с това, че всичко е ново. -_-

Така че изобщо не мога да задам error_reporting(0) или ini_set.

Използвах и new stdClass() като опит. Но и това не го пуснах.


person gDayZ    schedule 06.08.2015    source източник
comment
set error_reporting(0) не решава никакъв проблем. Скрива проблема. Но проблемът все още дебне там нерешен. Никога не трябва да правите това (всъщност по-скоро трябва да опитате обратното и да активирате възможно най-много докладвани предупреждения)   -  person Marcin Orlowski    schedule 06.08.2015
comment
възможен дубликат на Създаване на обект по подразбиране от празна стойност в PHP?   -  person Marcin Orlowski    schedule 06.08.2015
comment
Написах отговор. помогна ли Искате ли повече помощ? Бихте ли разрешили проблема?   -  person Sigee    schedule 10.08.2015
comment
Съжалявам! Да, работи добре! Благодаря ти много! :)   -  person gDayZ    schedule 14.08.2015


Отговори (1)


Създавате масив.

$this->groups = array();

Но в този масив вие не създавате никакъв обект. Вие просто използвате елементите на този масив (които не са инициализирани) като обекти. Трябва да добавите този ред преди вашия 132. ред.

$this->groups[$i] = new Group();

Или нещо подобно. Ако нямате групов клас, трябва да опитате

$this->groups[$i] = new stdClass();
person Sigee    schedule 06.08.2015