2017-01-22 6 views
-1

Я запускаю одну грушевую библиотеку на своем локальном сервере. Библиотека была разработана, создавая статический метод нестатический для дочернего класса. Посмотрите на their documentation Но когда я запускаю библиотеку на своем локальном сервере (используя PHP 5.4), он генерирует фатальную ошибку.Не удается сделать статический метод не статическим

Я также написал очень простую программу php для ее репликации, которая генерирует одно и то же сообщение об ошибке.

class Test { 
    static function mytest($num) { 
     return $num + 10; 
    } 
} 


class childTest extends Test { 
    function mytest() { 
     echo Test::mytest(10); 
} 
} 

«Фатальная ошибка: Не удается сделать статический метод Test :: MyTest() отсутствие статического в классе childTest»

ли кто-нибудь знает, как решить эту ошибку во время выполнения этих библиотек грушу, или это чисто из-за использования последняя версия PHP?

+1

Почему вы должны сделать это нестатическим? В классе документации 'DataObjects_Grp' написан пользователь библиотеки, не так ли? –

+0

@GermanLashevich: статический метод staticGet вызывается в нестационарном методе staticGet (такое же имя) в дочернем классе, что создает фетальную ошибку в моем компиляторе php. Я упомянул версию php. – kta

+0

Можете ли вы отредактировать дочерний класс? –

ответ

0

ли это:

class Test { 
    static function mytest($num) { 
     return $num + 10; 
    } 
} 


class childTest extends Test { 
    static function mytest() { 
     echo Test::mytest(10); 
    } 
} 

необходимости используйте статические конструктор

+2

Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, как и/или почему оно решает проблему, улучшит долгосрочную ценность ответа. –

Смежные вопросы