LINUX.ORG.RU

Ответ на: Re: Вышел PHP-5.0.5 от clx

Re: Вышел PHP-5.0.5

Ё-маё... Зачем, почему. Есть новость - наслаждайся!!! Что за мода до всего докапываться пошла?

anonymous ()

Re: Вышел PHP-5.0.5

А вот когда последний раз находили ошибки безопасности в Java?

anonymous ()

Re: Вышел PHP-5.0.5

Пятый по счету багфикс релиз. Мдя...

StDog ()
Ответ на: Re: Вышел PHP-5.0.5 от vtVitus

Re: Вышел PHP-5.0.5

Частота обнаружения ошибок прямо пропорциональна популярности разработки.

"Линукс по-Тузиковски" том второй.

TrollTux ()
Ответ на: Re: Вышел PHP-5.0.5 от anonymous

Re: Вышел PHP-5.0.5

> "This is a candidate ..."
This is a candidate for inclusion in the CVE list :)))))))))
по ссылкам там сходи умник

ed ★★ ()
Ответ на: Re: Вышел PHP-5.0.5 от LamerOk

Re: Вышел PHP-5.0.5

А что говорить? Ява сасёт. ocaml - хорощая ОС, только языка
программирования под неё нет ;)

anonymous ()
Ответ на: Re: Вышел PHP-5.0.5 от vtVitus

Re: Вышел PHP-5.0.5

Когда последний раз находили ошибки безопасности в Python? :-P

SKYRiDER ★★★ ()

Re: Вышел PHP-5.0.5

Один из скриптовых языков под Java(и C) - правда самый бестолковый. Beanshell и то лучше. Хотя если кто-то хочет - пусть пользуется вместо JSP(хотя я бы не стал).

anonymous ()

Re: Вышел PHP-5.0.5

Пардон, где там ВООБЩЕ дыры в безопасности? Пакет XMLRPC написан на PHP и частью языка не является, это модуль из PEAR, такой же модуль, как модули в Perl из CPAN.

anonymous ()

Re: Вышел PHP-5.0.5

Хм, в 5.0.5 поломали совместимость. Куча приложений теперь встаёт колом
с ошибкой Fatal error: Only variables can be passed by reference in xxx.php.
До php-5.0.4 включительно такого не было. Это происходит когда в функции
параметр объявлен с передачей по ссылке, а в коде параметром передаётся
другая функция. Чо за бля такое? Раньше же хавала и не ругалась...

anonymous ()
Ответ на: Re: Вышел PHP-5.0.5 от anonymous

Re: Вышел PHP-5.0.5

Вот ещё: перестала работать конструкция типа
$x = array_pop(explode(' ', 'a b'));
Раньше возвращала 'b'.

anonymous ()
Ответ на: Re: Вышел PHP-5.0.5 от anonymous

Re: Вышел PHP-5.0.5

по поводу "поломали" см php.ini:

allow_call_time_pass_reference = On

прописываешь глобально, либо в .htaccess конкретного сайта:

php_flag allow_call_time_pass_reference on

neksa ()
Ответ на: Re: Вышел PHP-5.0.5 от anonymous

Re: Вышел PHP-5.0.5

Однако ж до 5.0.5 работала. Я не считаю, что это фигня. Это нормальное
"умолчальное" поведение. Такая "фигня", к примеру, сплошь и рядом
встречается в друпале:

$theme = array_pop(explode('.', arg(3), 2));
(system.module:25)

anonymous ()
Ответ на: Re: Вышел PHP-5.0.5 от neksa

Re: Вышел PHP-5.0.5

> allow_call_time_pass_reference = On

Какие мы умные! Это совсем другой случай. Он обрабатывает устаревшую
конструкцию передачи параметра по ссылке, когда ссылку явно указывают
при передаче, типа $a = myfunc(&$myvar). Здесь же иная проблема.

anonymous ()
Ответ на: Re: Вышел PHP-5.0.5 от neksa

Re: Вышел PHP-5.0.5

Пример для наглядности:

function myfunc(&$param) { return true;}
function another_func() { return true; }

До php-5.0.5 работала такая конструкция:
$a = myfunc(another_func());

В php-5.0.5 такой код обламывается с фатальной ошибкой.

anonymous ()
Ответ на: Re: Вышел PHP-5.0.5 от anonymous

Re: Вышел PHP-5.0.5

Да, вы правы, это другой случай, посмотрел невнимательно.

Но те примеры, которые вы приводите -- это неправильный код. И то, что он работал в PHP < 5.0.5 не делает его правильным.

Уж простите за ссылку:

http://www.php.net/manual/en/language.references.pass.php

и цитату:

> The following things can be passed by reference: > * Variable, i.e. foo($a) > * New statement, i.e. foo(new foobar()) > * Reference, returned from a function

> $x = array_pop(explode(' ', 'a b'));

это неправильно, так как array_pop модифицирует аргумент.

и в другом примере ошибка:

> function myfunc(&$param) { return true;} > function another_func() { return true; } > $a = myfunc(another_func());

должно быть: &function another_func() { return true; }

согласен, что такие вещи лучше "вправлять" на релизах с другими номерами (PHP 5.1), но вы уж если перешли на 5, то и пишите правильно (с точки зрения документации). Кстати, кто следит за CVS, мог заметить, что там уже давно только так работает.

но факт, что обратная совместимость поломана. несогласные смотрят реплику derick-а: http://bugs.php.net/bug.php?id=33495&edit=1

neksa ()
Ответ на: Re: Вышел PHP-5.0.5 от neksa

Re: Вышел PHP-5.0.5

> но факт, что обратная совместимость поломана. несогласные смотрят реплику derick-а: http://bugs.php.net/bug.php?id=33495&edit=1

Давайте разберём его реплику по полочкам. По поводу верности/неверности
использования - это в реальности отмазки, чтобы завуалировать истинную
причину изменения, которая на самом деле решена неверно в виде костыля.

Причина в том, что при "неверном" использовании параметра по ссылке
возникала трудно уловимая, трудно объяснимая коррупция памяти и,
отчаявшись её решить, убрали саму возможность "неверного" использования.
Примерно как если бы стоматолог отчаявшись вылечить зуб, вырвал бы его
с корнем ;)

А теперь давайте посмотрим, чем плохо было иметь возможность посылать
по ссылке не переменную, а результат функции? А ничем. Это была фича!
Пересылка аргумента по ссылке имела всего два важных отличия от
пересылки по значению:

1) значение параметра не копировалось (оптимизация)
2) значение параметра могло быть изменено в функции и сохраняло новое значение

Что мы имели если пересылаемый по ссылке параметр был не переменной,
а значением из другой функции? Оптимизация тут по любому не проходила,
то есть она вообще не важна. Изменять значение тоже бессмыслено.
То есть функция работала в этом случае так, как если бы параметр
посылался по значению. То есть работала универсально и при этом
никому не мешала и ничего не нарушала в логике кода!

Поэтому я считаю, что убирать старое поведение по логике вещей не
нужно было ни в коем случае. Оно никому не мешало и упрощало работу
программиста.

annonymous ★★ ()
Ответ на: Re: Вышел PHP-5.0.5 от neksa

Re: Вышел PHP-5.0.5

> но вы уж если перешли на 5, то и пишите правильно

Самое противное заключается в том, что люди только-только стали
перебираться на php5, и тут на тебе такую плюху. Ведь куча приложний
перестала работать... Если не вернут назад, забью нах на такой язык и
пойду рубить чего-нибудь на рельсах ;)

annonymous ★★ ()

Re: Вышел PHP-5.0.5

Есть еще пара проблемных моментов с новым пхп --
в случае если у нас в такой вот ф-ции возвращается null:

function &getSomething() {
if ($this->a === true) {
return new SomeObject();
} else {
return null;
}
}

То мы получаем варнингом по консоли... Вместо простого и понятного кода приходится писать $nil = null; return $nil;
Ввели бы что ли анонимные переменные/объекты...

anonymous@linux.org.ru

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