Создание объекта по умолчанию из пустого значения ( 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 = (string)$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.

Я также использовал новый 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