PHP выбор данных для нечетных и четных чисел - PullRequest
0 голосов
/ 29 января 2020

У меня есть таблицы с идентификатором в моей базе данных. Я пытаюсь убедиться, что один API используется для четного числа, так что другой API используется для нечетного числа.

Переменная, которую мне нужно использовать для разных чисел protected $apiKey = '5cef0578-acbc-4523-88c8-b47634ca3ba6';

Мой код:

class RandomOrgClient
{

    protected $url = 'https://api.random.org/json-rpc/2/invoke';
    protected $apiKey = 'MY KEY';
    protected $timeLimit = 300;


    function __construct()
    {
        $this->setTimelimit($this->timeLimit);
    }

Я пытался сделать что-то вроде:

class RandomOrgClient
{

    protected $url = 'https://api.random.org/json-rpc/2/invoke';

    if ($games_count %2 == 0) {
        protected $apiKey = 'KEY FOR ODD NUMBER';
    } else { 
    protected $apiKey = 'KEY FOR EVEN NUMBER';
    }
    protected $timeLimit = 300;


    function __construct()
    {
        $this->setTimelimit($this->timeLimit);
        $games_count = DB::table('game_double')->count();

    }

Но каждый раз, когда я получал ошибку Parse error: syntax error, unexpected 'if' (T_IF), expecting function (T_FUNCTION) or const (T_CONST).

Что я делаю не так? Как я могу исправить ошибку?

UPD:

Я внес изменения в соответствии с предложением 2 человек, но теперь есть другая проблема. 1 раз код сгенерирован, второй раз не хочет, это пустая страница. Скорее всего из-за того, что я использую не правильно запрос на $games_count variable. Насколько я понимаю, четные или нечетные должны брать из ID таблицы. Я немного изменил переменную на $games_count = DB::table('game_double')->where('id')->get();, и я получил белую страницу в браузере, где моя ошибка?

Ответы [ 2 ]

1 голос
/ 29 января 2020

Вы не можете поместить код в класс, если он не находится в функции. Инициализация, да, но без условий или тому подобное. Переместите все это в вашу __construct функцию:

class RandomOrgClient
{
    protected $url = 'https://api.random.org/json-rpc/2/invoke';
    protected $apiKey = 'KEY FOR EVEN NUMBER';
    protected $timeLimit = 300;

    function __construct()
    {
        $this->setTimelimit($this->timeLimit);
        $games_count = DB::table('game_double')->count();
        if ($games_count %2 == 0) {
            $this->apiKey = 'KEY FOR ODD NUMBER';
        }
    }
1 голос
/ 29 января 2020

Вам нужно переместить этот условный код в конструктор.

class RandomOrgClient
{
    protected $url = 'https://api.random.org/json-rpc/2/invoke';
    protected $apiKey;
    protected $timeLimit = 300;

    function __construct()
    {
        $this->setTimelimit($this->timeLimit);
        $games_count = DB::table('game_double')->count();
        if ($games_count %2 == 0) 
        {
            $this->apiKey = 'KEY FOR ODD NUMBER';
        }
        else 
        { 
            $this->apiKey = 'KEY FOR EVEN NUMBER';
        }
    }
    // ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...