LINUX.ORG.RU

PHP package maintainer BUG?

 , ,


0

1

Ситуация..

Пишет мне один знакомый, мол, проверь код:

<?php

ini_set("display_errors", "On");
ini_set("html_errors", "On");
error_reporting(-1);

abstract class A {
    abstract public static function foo();
}

Говорит: Я не могу указать, что он должен быть static. Интерпретатор ругается:

Strict Standards: Static function A::foo() should not be abstract

Проверяю у себя - все работает без нотайсов при максимальном уровне ошибок. Ни в CLI ни в Apache handler режимах ошибок не наблюдается.

Отлично. Сверяем версии и платформы: У него: php 5.4 Windows У меня: php 5.3 Debian 6 (of repo)

Находим в документации:

Не поддерживаются абстрактные статические методы классов. По недосмотру, PHP 5.0.x и 5.1.x позволяли определять абстрактные статические методы классов. Начиная с PHP 5.2.x такие методы могут быть только у интерфейсов.

Тэкс, php.net пишет что лавочку прикрыли в версии 5.2, но у меня 5.3. Ладно, пишу еще одному знакомому - он напрямую общается с кем-то из разрабов php, или приближенным к ним.

Ответ такой:

это баг. но не php - а мейнтейнера пакета. так что, если есть желание, оформляйте и отправляйте

Чего надо бы еще:

Если дочитали до этого места, значит видели что уменя Debian 6 и php установленный из оф репозиториев, конкретно:

PHP 5.3.3-7+squeeze15 with Suhosin-Patch (cli) (built: Mar 4 2013 14:05:25)

Очень реквестую проверить Вас на своих машинках такое поведение интерпретатора. У кого что, вне зависимости от версии и дистра.

Возможно - проблема не только в конкретно моей сборке. После того как кто-то еще может быть отпишется - оформим багрепорт и отправим как положено.

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 1)

Евгений: гм, не обязательно туманно говорить про «приближённых» - я уточнял этот вопрос у одного из разработчиков ядра PHP, а также APC , его имя Joe Watkins. Есть возможность спросить ещё у широкого круга разработчиков, но я посчитал, что мнения Джо достаточно

deep-purple ★★★★★
() автор топика
#Debian 7.2
#PHP 5.4.4-14+deb7u5 (cli) (built: Oct  5 2013 15:43:05) 
PHP Strict Standards:  Static function A::foo() should not be abstract in - on line 8
<br />
<b>Strict Standards</b>:  Static function A::foo() should not be abstract in <b>-</b> on line <b>8</b><br />


#Debian 6.0.8
#PHP 5.3.3-7+squeeze17 with Suhosin-Patch (cli) (built: Aug 26 2013 07:26:12)
#(молча работает)
metrokto ★★
()
Ответ на: комментарий от deep-purple

Было бы интересно посмотреть как с этим в других дистрах. Слака, Сюзи, Генту, Арч, пр.. не буду ж я всех тут перечислять :) Не стесняйтесь - проверяйте.

deep-purple ★★★★★
() автор топика
Fedora release 19 (Schrödinger’s Cat)
PHP 5.5.6 (cli) (built: Nov 13 2013 10:24:44)

Ничего не выводит.

Deleted
()
Ответ на: комментарий от Deleted

Привет, Федора. Ничего не выводит? А ведь должен. А учитывая версию 5.5.6 - так это вообще свежачок! Набираем обороты. Кто еще?

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от deep-purple

Так шо, никому не надо? Тогда я отправляю что есть.

deep-purple ★★★★★
() автор топика
23 февраля 2014 г.

на Ubuntu LTS этого бага нет, debian решето

umren ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.