Ошибка ссылки на переменную stati c внутри функции stati c в классе PHP 7.4.2 - PullRequest
0 голосов
/ 15 февраля 2020

Я изучаю PHP и использую версию PHP 7.4.2 (используя XAMPP), чтобы опробовать примеры. Я пытаюсь получить доступ к переменной stati c из функции stati c, используя self :: $ vaiablename

, но получаю следующую ошибку:

Parse error: syntax error, unexpected 'self' (T_STRING) in C:\xampp\htdocs\php-getting-started\classes\CountryRepository.php on line 18


<?php

require 'Country.php';
require 'State.php';

class CountryRepository {
    private static $countries = array();

    protected static function init() {
        $countries = array();
        array_push($countries,
        new Country('Austria','at',array(new State('Styria'), new State('Burgandy'))));
        array_push($countries,
        new Country('United States','usa',array(new State('California'), new State('Maryland'))));
        array_push($countries,
        new Country('Luxembourg','lu'))

        self::$countries = $countries;
    }

    public static function getCountries() {
        if(count(self::$countries) === 0) {
            self::init();
        }
        return self::$countries;
    }
}

?>

Может кто-нибудь, пожалуйста, помогите мне с этим?

1 Ответ

0 голосов
/ 16 февраля 2020

В вашем случае пропущена точка с запятой после последней array_push. PHP интерпретирует это как array_push()self, что приводит к вышеуказанной ошибке.

new Country('Luxembourg', 'lu'))
                                ^^^

против

new Country('Luxembourg', 'lu'));
                                ^^^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...