PHP — вызов функций класса извне класса возвращает ошибку неопределенной функции

#php

#php

Вопрос:

Итак, у меня есть класс, и я создал объект класса вне его. Когда я пытаюсь выполнить функцию createSummonerBasicArray(), я получаю эту ошибку "Fatal error: Call to undefined function prepSummonerBasic()" . Так что, по-видимому, это говорит prepSummonerBasic() о том, что не существует. Я попытался сделать обе функции общедоступными, и это не изменило ошибку. Кстати, новое в PHP.

 Class SummonerSearch{

    function prepSummonerBasic($summoner, $server) {

    }

    function createSummonerBasicArray($summoner, $server){
        $summonerBasic = prepSummonerBasic($summoner, $server);
    }

};

$obj = new SummonerSearch('crippy', 'na');
$obj->createSummonerBasicArray('crippy','na');
 

Комментарии:

1. Вы пробовали $this->prepSummonerBasic(...) ?

2. Я этого не делал, но это было решение.

Ответ №1:

 function createSummonerBasicArray($summoner, $server){
    $summonerBasic = $this->prepSummonerBasic($summoner, $server);
}
 

вы должны вызывать ее с $this-> помощью, а не как в java

Комментарии:

1. Спасибо за быстрый ответ! Это сработало, но не могли бы вы немного объяснить, почему $this-> необходимо?

Ответ №2:

Попробуйте это с помощью используемого static ключевого слова:

 <?php
Class SummonerSearch{
    public static function prepSummonerBasic($summoner, $server) {
        echo $summoner;
    }

    function createSummonerBasicArray($summoner, $server){
        $summonerBasic = self::prepSummonerBasic($summoner, $server);
    }
};

$obj = new SummonerSearch('crippy', 'na');
$obj->createSummonerBasicArray('crippy','na');
?>