Cannot access self:: when no class scope is active

Rooibos

Новичок
Cannot access self:: when no class scope is active

Писал код и отлаживал в PHP 5.0.5 + Apache 2. Решил перенести на другой сервак, на нем стоит PHP 5.0.4 + Apache 1.3, выдает такую ошибку (fatal):

Cannot access self:: when no class scope is active
Кто нибудь знает точно, отчего? Помогите пожалуйста.
:confused:
 

svetasmirnova

маленький монстрик
Вообще-то написано отчего. Или пример кода в студию, если под 5.0.5 работает
 

Rooibos

Новичок
Код большой, какую часть в пример-то? Я же говорю - в 5.0.5 работает. В коде использованы абстрактные классы, интерфейсы, константы классов.
Ошибка происходит во время создания экземпляра класса, который реализует методы абстрактного класса, который реализует часть методов интерфейса, в свою очередь абстрактный этот класс - потомок еще одного класса. Ну да это не суть - а в чем смысл ошибки - мол, нельзя пользоваться константами класса, если нет экземпляра объекта этого класса? Так?
 

svetasmirnova

маленький монстрик
>какую часть в пример-то?
я не знаю: локализовать до десятка строк всегда можно
>нельзя пользоваться константами класса, если нет экземпляра объекта этого класса? Так?
Нет, нельзя обращаться self::xxx вне класса. Т.е. к/из статическим методам и свойствам обращаться можно
 

Profic

just Profic (PHP5 BetaTeam)
Такое обычно происходит из-за использования ключевого слова self вне контекста метода класса.
 

Rooibos

Новичок
Даже и не знаю, как же ее локализовывать, эту ошибку... вот зараза

-~{}~ 26.12.05 19:54:

Извиняюсь, нажал случайно на ответ, не дописав.
Даже и не знаю, как же ее локализовывать, эту ошибку... вот зараза :mad:

Вот вся инфа что выдает пхп:
Fatal error: Cannot access self:: when no class scope is active in /home/apache/.../list.php on line 86
В этой строчке всего то:
PHP:
$form = new SearchForm('search_form');
Но там полторы тысячи строк... :(

-~{}~ 26.12.05 19:56:

Вся соль в том, что на локальном моем серваке все работает, отличие только в версии, у меня 5.0.5, там где не фурычит - 5.0.4

-~{}~ 26.12.05 20:02:

Хм, а вот такая запись может давать ошибку? (но она работает на моем PHP 5.0.5)

PHP:
class ... {
...
const DEFAULT_ELEMENT_VALUE = 'request';	// значение по умолчанию - из формы
public $def_element_value = self::DEFAULT_ELEMENT_VALUE;
...
 

Profic

just Profic (PHP5 BetaTeam)
Смотри определение конструктора и свойств класса SearchForm

-~{}~ 26.12.05 20:03:

Да, именно она. Видимо пофиксенная бага.
 

tony2001

TeaM PHPClub
05 Sep 2005, PHP 5.0.5
...
- Fixed bug #30702 (cannot initialize class variable from class constant).
(Dmitry)
...
 
Сверху