LINUX.ORG.RU

Вышел PHP 5.4.0

 ,


0

0

Разработчики PHP рады сообщить о релизе популярного языка программирования под номером 5.4.0. В релиз вошли следующие изменения:

  • Новые синтаксические конструкции:
    • Traits - иначе говоря - миксины, то есть, наборы методов, которые можно использовать в нескольких классах
    • краткая запись массивов - $a = [1, 2, 3, 4]; или $a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4];
    • <?= доступен всегда, независимо от значения опции short_open_tag
    • Числа в двоичном формате теперь можно записывать в формате 0b001001101
    • остальные изменения
  • Улучшена производительность и уменьшено потребление ОЗУ
  • Улучшены сообщения об ошибках и предупреждения
  • Поддержка многобайтовых кодировок теперь присутствует во всех сборках и может быть включена и выключена в настройках.
  • В режиме CLI появился встроенный вебсервер - для удобства разработки

Обратно-несовместимые изменения:

  • Убраны register globals, magic quotes и safe mode
  • Убрана конструкция break/continue $var
  • Убрана опция allow-call-time-pass-reference

Версия 5.4.0 будет последней, в которой будут официально поддерживаться ОС Windows XP и Windows 2003.

Руководство по апгрейду с версии 5.3 доступно здесь.

Полный чейнджлог можно прочитать здесь.

>>> Подробности

★★★★★

Проверено: JB ()

а в fastcgi он так нормально и не убивает при рестарте заблокированные в io воркеры?

Sveta_F ()

краткая запись массивов - $a = [1, 2, 3, 4]; или $a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4];

Да неужели? Что-то они рано до этого додумались.

Ramen ★★★★ ()

краткая запись массивов - $a = [1, 2, 3, 4];

Мои глаза не обманывают меня? Это правда появилось только в 2012 году?

deb ()

В режиме CLI появился встроенный вебсервер - для удобства разработки

Ну наконец-то оно готово для десктопа.

Уже хочу покрутить, уже интересно. Кстати, как там с legacy-кодом, будет поддерживаться нормально?

deb ()

В режиме CLI появился встроенный вебсервер

Ну всё, теперь даже неосиляторы денвера подтянутся.

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

Да он все равно нифига не умеет. Денвер безопасносте.

power ()

>> Версия 5.4.0 будет последней, в которой будут официально поддерживаться ОС Windows XP и Windows 2003.

А как работа серверного языка может поддерживаться на xp и 2k3?

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

А как работа серверного языка может поддерживаться на xp и 2k3?

Что такое «серверный язык»? И если такой существует, то причем тут PHP?

baverman ★★★ ()

$a = [1, 2, 3, 4];

да это вообще пушка!

Changed default value of «default_charset» php.ini option from ISO-8859-1 to UTF-8.

ну всё готов для десктопа

ggrn ★★★★★ ()
Ответ на: комментарий от mumpster

это обязательно что-то хорошее

Но и неплохое.

cipher ★★★★★ ()

В толксах тему закрыли, поэтому теперь это здесь.

Они таки сделали $a = [1,2,3], как в perl'е и Perl::Class->new('param')->bar(), как в perl'е. И func()[0], как в ... короче, вы поняли. Про бинарные числа промолчу... они много где так.

Для дурака объясните, в чём мега-фишка trait'ов?

helios ★★★★★ ()
Ответ на: комментарий от mumpster

ты так говоришь как будто это обязательно что-то хорошее.

Ты так говоришь, как будто что-то говоришь.

global'ы - лишь средство. То, как его применяли в старых проектах мне не нравится. Может программисты неправы, а может это реально развращающая конструкция.

helios ★★★★★ ()

Версия 5.4.0 будет последней, в которой будут официально поддерживаться ОС Windows XP и Windows 2003.

Православненько!

splinter ★★★★★ ()

Молодцы, чо

$a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4] имхо недостаточно кратко, нужно было ['key' : value] или {'key': value} сделать.

я бы еще долго ржал если б они убрали $ у переменных.

в общем, правильной дорогой идут, лол

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

Всё ещё выдаёт 4?

Ты так говоришь, словно это какое-то необычное поведение:

>>> for i in [1, 2, 3, 4]: pass
... 
>>> i
4

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

Ты так говоришь, словно это какое-то необычное поведение:

Кто юзал my, тот меня поймёт. Переменная должна существовать только тогда, когда она нужна. По-моему, это очевидно. Часто нужно, чтобы это «i» жило после массива?

helios ★★★★★ ()

Отличная новость. Все равно PHP остается очень популярным в том числе и для новых проектов.

Разработка быстрее, дешевле. Все просто.

Рельсодрочеры отдыхают.

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

Часто нужно, чтобы это «i» жило после массива?

Случается, в общем-то. Хотя, конечно, можно и обойтись

Divius ★★ ()
Ответ на: комментарий от nehochuha

Рельсодрочеры отдыхают

Ты просто сравниваешь нож с кухонным комбайном. Чтобы порезать морковку первый и правда лучше =)

Divius ★★ ()
Ответ на: комментарий от helios

Кто юзал my, тот меня поймёт.

Я не знаю что за «my», но я и так в курсе про возможные косяки из-за такого поведения.

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

Он тебе мешает? Если речь идет о сохранении пару байтов памяти то я молчу.

В принципе так было бы лучше (всмысле чистка после использования). Но эта байда никогда, лично мне, не вредила.

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

Конечно сначала режем морковку. И если все пошло отлично потом можно и на более серьезные вещи переходить (переписывать, полностью или частично)

Хотя опыт показывает что люди так и остаются на PHP. Потому что ЗaРaЗa.

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

Это же такой специальный костыль, созданный для удобства поиска уязвимостей. Кому он был нужен? Даже 15-летние быдлокодеры быстро приучаются к $_WHATEVER.

r4 ()

благодарность разработчикам

СПАСИБО за ваш труд! (Пишу ООП-но на PHP5+JS)

Жаль, сразу не удастся применить новшества, т.к. у хостеров PHP версии 5.2.

P.S. Решил разбавить негатив предыдущих комментаторов.

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

Он тебе мешает? Если речь идет о сохранении пару байтов памяти то я молчу.

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

Тут другое важно: это потенциальная угроза безопасности. Логика опять же страдает, если использовать эту переменную.

helios ★★★★★ ()

Правда я нифига не понял ситуацию про мультибайтовых стрингов.

Замена default.charset на UTF8 это же даже не смешно. (он ни за что, кроме как, отослать HTTP заголовок не отвечает)

Делали PHP6 который должен был добавить полную поддержку Unicode.

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

Делали PHP6 который должен был добавить полную поддержку Unicode.

Всмысле, и где она?))) поддержка.

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

Я не знаю что за «my», но я и так в курсе про возможные косяки из-за такого поведения.

Это такая функция в одном известном языке, который почему-то всё пытаются закопать (ИЧСХ, уже лет 25 у них это не получается). Переменная, объявленная как my $var; будет «жива» только в текущем блоке( то, что в скобочках {} ).

helios ★★★★★ ()
Ответ на: комментарий от nehochuha

Вижу вижу )) Растет )))

Вы спросили одно - я Вам на это ответил. Теперь Вы мой ответ используете для другого вопроса. Зачем?

helios ★★★★★ ()
Ответ на: комментарий от nehochuha

Первый был от том, закопали ли его сразу (читай «мёртворождённый»), второй - о текущей распространённости.

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