Jump to content

Return value of none returned


TemKa_SD
 Share

Recommended Posts

Здравствуйте. Почему не возвращает значения из \IPS\sharedstats\Records\ScoredGame?

 

    /**
    * @param array $game
    * @param string $type
    * @return StatsGamesScored
    */
   protected function createGameEntity(array $game, $type): \IPS\sharedstats\Records\ScoredGame {
       $scoredGame = new \IPS\sharedstats\Records\ScoredGame();
       #$scoredGame->gameid = $game['id'];
       $scoredGame->setGameid($game['id']);
       $scoredGame->setGamename($game['gamename']);
       $scoredGame->setDuration($game['duration']);
       $scoredGame->setUuid($game['uuid']);
       $scoredGame->setMap($game['map']);
       $scoredGame->setSaved(new \DateTime($game['datetime']));
       $scoredGame->setScored(new \DateTime());
       $scoredGame->setType($type);
       #$scoredGame->setTeam1win(50.00);
       #$scoredGame->setTeam2win(50.00);
       $scoredGame->setLobbyChats(json_encode([]));
       $scoredGame->setGameChats(json_encode([]));
       $scoredGame->setPlayerawards(json_encode([]));
       $scoredGame->setWinner(0);

       $scoredGame->save();
   }

Link to comment
Share on other sites

protected function createGameEntity(array $game, $type): \IPS\sharedstats\Records\ScoredGame {

Вы указали, что должен вернуться объект класса \IPS\sharedstats\Records\ScoredGame, но ничего не возвращаете.

       $scoredGame->save();
      return $scoredGame;

Link to comment
Share on other sites

Вы указали, что должен вернуться объект класса \IPS\sharedstats\Records\ScoredGame, но ничего не возвращаете.

 

Значит это не то. Я во всём разобрался, у меня всё отлично работает, данные собираются между функциями, сохраняются - всё отлично.

 

Т.е если взять вот эту строку:

 

$scoredGame->setGameid($game['id']);

 

Работать не будет, функция не работает, она в прикрепленном файле. Если использовать значение передаваемое в таске между функциями то всё работает отлично:

 

$scoredGame->gameid = $game['id'];

 

Этот весь функционал с другого движка, на котором всё работало, помогите разобраться с функциями в файле ScoredGame, почему не возвращает нужные значения. Т.е если в функции прописать return 1; то вернет всё как надо, не работают именно переменные почему-то.

ScoredGame.php

Link to comment
Share on other sites

Что именно не работает?

 

.е если в функции прописать return 1; то вернет всё как надо, не работают именно переменные почему-то
Где прописать?
Link to comment
Share on other sites

Вот на скрине, если вернуть просто 1 то оно вернет, а через this не работает почему-то.

post-60255-0-90280400-1535530966_thumb.png

Link to comment
Share on other sites

Еще раз попробую объяснить.

 

    /**
    * @param array $game
    * @param string $type
    * @return StatsGamesScored
    */
   protected function createGameEntity($game, $type): StatsGamesScored {
       $scoredGame = new StatsGamesScored();
       #$scoredGame->gameid = $game['id'];
       $scoredGame->setGameid($game['id']);
       $scoredGame->setGamename($game['gamename']);
       $scoredGame->setDuration($game['duration']);
       $scoredGame->setUuid($game['uuid']);
       $scoredGame->setMap($game['map']);
       $scoredGame->setSaved(new \DateTime($game['datetime']));
       $scoredGame->setScored(new \DateTime());
       $scoredGame->setType($type);
       #$scoredGame->setTeam1win(50.00);
       #$scoredGame->setTeam2win(50.00);
       $scoredGame->setLobbyChats(json_encode([]));
       $scoredGame->setGameChats(json_encode([]));
       $scoredGame->setPlayerawards(json_encode([]));
       $scoredGame->setWinner(0);

       $scoredGame->save();

       return $scoredGame;

   }

 

Вот в этом коде возвращаем значения из файла - функций (StatsGamesScored)

$scoredGame->setGameid($game['id']);

 

Я пробую сейчас вернуть просто двойку, оно не возвращает, почему?

 

    /**
    * Set gameid
    *
    * @param integer $gameid
    *
    * @return StatsGamesScored
    */
   public function setGameid($gameid)
   {
       return 2;
   }

Link to comment
Share on other sites

/**

* @param array $game

* @param string $type

* @return StatsGamesScored

*/

protected function createGameEntity($game, $type): StatsGamesScored {

$scoredGame = new StatsGamesScored();

#$scoredGame->gameid = $game['id'];

$scoredGame->setGameid($game['id']);

$scoredGame->setGamename($game['gamename']);

$scoredGame->setDuration($game['duration']);

$scoredGame->setUuid($game['uuid']);

$scoredGame->setMap($game['map']);

$scoredGame->setSaved(new \DateTime($game['datetime']));

$scoredGame->setScored(new \DateTime());

$scoredGame->setType($type);

#$scoredGame->setTeam1win(50.00);

#$scoredGame->setTeam2win(50.00);

$scoredGame->setLobbyChats(json_encode([]));

$scoredGame->setGameChats(json_encode([]));

$scoredGame->setPlayerawards(json_encode([]));

$scoredGame->setWinner(0);

 

$scoredGame->save();

 

return $scoredGame;

 

}

Link to comment
Share on other sites

Этот код чуть ли не в каждом посте.

$scoredGame->setGameid($game['id']);

Здесь идет присваивание $scoredGame->gameid = $game['id'];

Где Вы хотите получить двойку, не понятно.

 

Чтобы получить двойку

    public function setGameid($gameid)
   {
       return 2;
   }

и

$two = $scoredGame->setGameid($game['id']);

Тогда значение переменной $two будет 2

Link to comment
Share on other sites

Хорошо, вот такой код почему возвращает null?

 

$scoredGame->setGameid($game['id']);

 

    /**
    * Set gameid
    *
    * @param integer $gameid
    *
    * @return StatsGamesScored
    */
   public function setGameid($gameid)
   {
       $this->gameid = $gameid;

       return $this;
   }

Edited by TemKa_SD
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...