PHP 5.2 Ошибка со статической переменной: «синтаксическая ошибка, неожиданный T_STATIC» - PullRequest
2 голосов
/ 06 октября 2010

У меня довольно странная проблема:

Мой класс выглядит так

<?php
class asd {
    private static $variable;

    public static function blabla(){
        self::$variable="blubb";
    }
}
?>

Когда я пытаюсь вызвать asd :: blabla () с помощью функции __autoload, все работает нормально. Но когда я пытаюсь вызвать его без автозагрузки, использую include / require, я получаю это сразу после включения

Ошибка разбора: синтаксическая ошибка, неожиданный T_STATIC, ожидаемый T_OLD_FUNCTION или T_FUNCTION или T_VAR или '}' в path / asd.php в строке 3

Не понимаю, почему это работает в одну сторону, а не в другую. Я не могу использовать механизм автозагрузки в каждом классе, так что просто использовать это не вариант.

е: Дополнительная информация: Файл, в который я хочу включить класс, представляет собой файл .rdf, который анализируется php через запись «AddType application / x-httpd-php .rdf» .htaccess.

Если я попытаюсь включить класс в случайный файл .php, он будет работать отлично, даже с включенным руководством ... Это вообще не имеет смысла.

e: больше информации: Если я копирую / вставляю весь код .rdf в файл .php, все работает. Если я сейчас попытаюсь включить файл .php в файл .rdf, ошибка возникнет снова.

Ответы [ 2 ]

1 голос
/ 06 октября 2010

Просто предположение: вы пробовали это? Обратите внимание на 5 в конце типа MIME. Я думаю, что на вашем сервере выполняется установка PHP 4 вместо установки PHP 5.2 при использовании типа MIME без 5.

AddType application/x-httpd-php5 .rdf
0 голосов
/ 06 октября 2010

Похоже, ваш сервер работает как php4 и php5, а ваш файл анализируется как php4.Я предполагаю, что php5-скрипты должны запускаться через cgi

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...