The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Началось альфа-тестирование PHP 7.1

10.06.2016 23:48

Доступна для тестирования первая альфа-версия новой значительной ветки языка программирования PHP 7.1. Релиз ожидается в ноябре.

Ключевые улучшения:

  • Добавлен тип возвращаемого значения void, указывающий на то, что функция не вернула значение;
  • При указании смещения внутри строки теперь можно указывать отрицательные значения, позиция в строке для которых будет рассчитана относительно конца строки. Например, для строки 'abcdef' $str[-2] вернёт "e";
  • Добавлен вариант конструкции list(), в которой могут задаваться ключи. Например: "list(1 => $oneBit, 2 => $twoBit, 3 => $threeBit) = $powersOfTwo";
  • Добавлено выражение "[] =", которое выступает альтернативой конструкции "list() =". Например, вместо "list($a, $b, $c) = array(1, 2, 3)" теперь можно указать "[$a, $b, $c] = [1, 2, 3]";
  • Реализована система вывода ошибок и предупреждений в случае использования в математических выражениях строк, не преобразуемых в число. Например, "10 apples" + "5 pears" приведёт к выводу ошибки "Notice: A non well formed numeric string encountered in example.php on line 3", а 5 * "orange" к "Warning: A non-numeric string encountered in example.php on line 3";
  • Возможность обработки нескольких типов исключений в одном выражении catch;
  • Поддержка определения видимости для констант внутри класса. Константы теперь могут определяться с флагами public, private и protected;
  • Возможность использования знака вопроса для пометки типов, которые могут принимать значение null.


  1. Главная ссылка к новости (http://php.net/index.php#id201...)
  2. OpenNews: Релиз языка программирования PHP 7.0
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/44588-php
Ключевые слова: php
Поддержать дальнейшую публикацию новостей на OpenNET.


Обсуждение (60) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, fi (ok), 00:47, 11/06/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    >  для строки 'abcdef' $str[-2] вернёт "e"

    пхп очень близко подобрался к awk, и когда-нибудь станет как perl :))))

     
     
  • 2.2, Dark Amateur (?), 01:23, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Когда читал про фичи, выставленные в alpha, то почему-то подумал, что он стал ближе к C#.
     
     
  • 3.17, Аноним (-), 10:26, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Когда читал про фичи, выставленные в alpha, то почему-то подумал, что он
    > стал ближе к C#.

    PHP очень сильно синтаксисом напоминает C(++/#/...) в принципе. Есть подозрение, что строгую типизацию вводят не просто так - возможно и появление некого компилируемого ответвления. Попытки уже были у фейсбука, но пока только попытки.

     
  • 3.64, Алексей (??), 16:27, 12/06/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Каждый увидел свое. Я увидел, что он заимствовал фичи из Python.
     
  • 2.20, тоже Аноним (ok), 11:54, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >>  для строки 'abcdef' $str[-2] вернёт "e"
    > пхп очень близко подобрался к awk, и когда-нибудь станет как perl :))))

    if ('abcdef'[-2] === 'e' && 'абвгде'[-2] === 'it depends') {
        echo 'Yeah, it's still our well-known headache - PHP!';
    }

     
     
  • 3.47, Аноним (-), 18:08, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А вот у этой проблемы нет нормального решения, кроме как изобрести машину времени и сделать юникод-строки в php 1.0.

    Два типа строк в одном языке с динамической неявной типизацией - это еще хуже.

     
  • 3.72, аннм (?), 17:15, 13/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    как будто раньше такой проблемы с 'абвгде'[2] не было.
    запилили новую фичу, которую можно использовать, когда надо. когда не надо и раньше не стоило.
     
  • 2.22, Аноним (-), 12:00, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Родовую травму просто так не вылечить. ***бищные list(), array(), $var[] = "foo" так и останутся.
     
  • 2.65, maximnik0 (?), 00:31, 13/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >и когда-нибудь станет как perl :))))

    Вообще то pnp начинался как библиотека perl для вэб разработки.

     

  • 1.3, анином (?), 01:27, 11/06/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >Возможность использования знака вопроса для пометки типов, которые могут принимать значение null.

    Почему сразу так не сделать?

     
     
  • 2.4, Crazy Alex (ok), 02:32, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А почему сразу всё было нормально не сделать? Вон, синтаксис списков - это ж перловый, которому уже лет 20. Причём списки/массивы понемногу делают логичными (а по факту - сдирают из перла) они последние года четыре...
     
     
  • 3.5, burik666 (ok), 02:36, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    <sarcasm>Удивительно почему это они сдирают с Perl</sarcasm>
     
  • 3.6, rob pike (?), 07:01, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Тоже хотел это отметить.
    Причем от нормальных, спискового и скалярного контекстов, насколько я понял, это всё остается быть достаточно далеко, в PHP-шном стиле "у нас тут 100500+ частных случаев, потому что Консистентность звали собаку, которая укусила нашего главного разработчика в детстве", "[]=" это только один кейс.
     
     
  • 4.16, Аноним (-), 10:23, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И при всём этом код на PHP остаётся прекрасно читабельным, в отличие от такого обобщённого перла.
     
     
  • 5.18, angra (ok), 11:14, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Только если ты знаешь php, но не знаешь perl. Ну или если ты совсем дурачок и сравниваешь код в больших проектах на пыхе с кодом однострочников на перле.
     
  • 5.25, rshadow (ok), 12:33, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У перла идеалогия: есть множество путей сделать это. Можно писать читабельный код, даже читабельнее пхп. Напомню что язык то лингвист делал и на нем можно стихотворения писать =). А можно упражняться: кто решит задачу за меньшее количество символов. Человек пишущий плохо читабельный код на любом из языков, на перле может написать еще хуже =)
     
     
  • 6.27, Аноним (-), 12:47, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А что делать с человеком, плохо пишущим даже на русском? ИдеОлогия, блин.
     
     
  • 7.30, rshadow (ok), 13:27, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так потому и придумывали пхп и питон в которых "есть только один путь правильно сделать это". Разменяв кучу возможностей, гибкость и красоту на низкий порог вхождения.
     
     
  • 8.35, Аноним (-), 14:32, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Именно То же самое и с русским вроде способов правильно сделать много, и лек... текст свёрнут, показать
     
     
  • 9.36, Forth (ok), 14:56, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Вы откуда такие беретесь Мир говорит между собой на английском в силу историчес... текст свёрнут, показать
     
     
  • 10.37, Аноним (-), 15:08, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Эти исторические причины к нам не с Марса прилетели ... текст свёрнут, показать
     
     
  • 11.44, chinarulezzz (ok), 18:02, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Все мы разумные и практичные люди Этому есть много исторических иллюстраций ... текст свёрнут, показать
     
  • 11.48, . (?), 18:19, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    хохло-логика Сделали мол англы лаконичный езыГ и под них лег весь индокитай и ... текст свёрнут, показать
     
  • 5.43, rob pike (?), 17:41, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Перловый код действительно часто сложнее читается чем PHP, с одним важным уточнением - для человека *не знающего ни того ни другого*. В чем польза от такого странного "преимущества" - непонятно.
     
  • 3.23, Аноним (-), 12:05, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > Причём списки/массивы понемногу делают логичными (а по факту - сдирают из перла) они последние года четыре...

    Поразительно (c)

    Лет через пять глядишь и догадаются, зачем в perl'е есть И "eq"/"cmp"/"gt"/"lt" И "=="/"<=>"/">"/"<"

    Задание со звёздочкой - понять, зачем нужен "=~".

     
     
  • 4.26, rshadow (ok), 12:37, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В перле действительно самый правильный подход в операторах и в приведении типов. А потому и самый удобный: ничего нигде приводить специально не нужно.
     
     
  • 5.46, rob pike (?), 18:04, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > man perldata
    > Perl has three built-in data types: scalars, arrays of scalars, and associative arrays of scalars, known as "hashes"

    Расскажите про приведение типов, как вы приводите типа "массив" к типу "скаляр", например.

     
     
  • 6.55, Аноним (-), 20:45, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> man perldata
    >> Perl has three built-in data types: scalars, arrays of scalars, and associative arrays of scalars, known as "hashes"
    > Расскажите про приведение типов, как вы приводите типа "массив" к типу "скаляр",
    > например.

    Очень просто - в Perl все приведения типов выполняются через списки. Вы забыли упомянуть про контекст скаляров - просто скаляр или список (Ну, если еще детальнее, то "просто скаляр" - это ведь тоже список из одного элемента, ну и с упрощенным синтаксисом для удобства).

     
     
  • 7.56, rob pike (?), 21:01, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Какие интересные у вас видения. Вы мало того что изобрели несуществующий тип данных "список", но еще и столько всего считаете приведением типов, что уместно будет спросить, есть ли вообще какие-то операции, которые приведением типов в вашей вселенной не являются?

     
     
  • 8.57, rob pike (?), 21:08, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    С полным списком встроенных типов перла можно ознакомиться в документации ... текст свёрнут, показать
     
  • 6.62, rshadow (ok), 00:55, 12/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    В скалярном контексте из массива будет получена его длинна.
     
     
  • 7.63, rob pike (?), 03:51, 12/06/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    К приведению типов это имеет какое-то отношение?
     
     
  • 8.78, Аноним (-), 14:23, 15/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Прямое То что ты понимаешь под приведением my var array - даст тебе размер... текст свёрнут, показать
     
  • 2.59, Аноним (-), 23:02, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Почему сразу так не сделать?

    Потому что сразу не было свифта. А теперь есть свифт и есть откуда перенять.

     

  • 1.15, Аноним (-), 10:22, 11/06/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >>> Возможность обработки нескольких типов исключений в одном выражении catch

    Вот это добротно. Оно и до этого было возможно, через catch (Exception $e) и далее instanceof, но нововведение позволит объём кода ещё поуменьшить.

     
  • 1.19, Аноним (-), 11:27, 11/06/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Всю сознательную жизнь фачил этот пхп, щя начал изучать пайтон и прозрел, какой можно написать стройный, лаконичный и понятный код без всех этих громоздких синтаксических конструкций и альтернативных путей, усложняющих язык.
     
     
  • 2.21, тоже Аноним (ok), 11:56, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Поздравляю, первый шаг в сознательной жизни сделан. Дальше - разочарование питоном, изучение крестов... ну, а потом можно будет вернуться к пыху или питону, но уже с пониманием, как не писать говнокод.
     
     
  • 3.32, angra (ok), 14:11, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    После питона сейчас идут на Go, а не плюсы. И это правильно.
     
  • 2.28, Аноним (-), 12:48, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Особенно доставляют значащие пробелы. Хоть с линейкой вымеряй.
     
     
  • 3.34, anonimous (?), 14:25, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Логическую строку не осилил?
     
  • 3.40, анином (?), 16:32, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Точняк бро. Особенно весело, когда надо побыстрому с чужой машины на малознакомом редакторе, который вдруг меняет табы на пробелы с кастомным рамером.
     
     
  • 4.50, . (?), 18:41, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Точняк бро. Особенно весело, когда надо побыстрому с чужой машины на малознакомом
    > редакторе, который вдруг меняет табы на пробелы с кастомным рамером.

    ... не снимая лыж!
    ... стоя на голове!
    ... в гамаке!

    Барон любит чтоб потруднее! (С) БМ

     
     
  • 5.67, Аноним (-), 02:05, 13/06/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Делать невидимый глазом символ критически значимым, делать удвоение невидимого символа вдвойне более значащим, затем искать прямой способ показывать невидимые симводы в редакторах - нет пределов людской глупости, десу.
     
  • 3.61, Rodegast (??), 00:22, 12/06/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Открой для себя табы.
     
     
  • 4.70, Аноним (-), 08:13, 13/06/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Открой для себя редакторы с конверсией табов в пробелы и назад.

    Ну да, чтобы кодить на питоне - нужно специальный редактор, потом встать на голову, закинуть руку за спину, и так далее.

    Вот только узким специалистом по натягиванию яйца на глаз как-то становиться не хочется.

     
  • 3.69, анонимУася (ok), 04:33, 13/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    тыкните пальцем, плз.
     
     
  • 4.79, Аноним (-), 12:35, 17/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Куда тебе тыкнуть, в PEP8?
     
  • 2.31, angra (ok), 14:07, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты бы хоть поинтересовался значением слова "лаконичный". Это явно не про язык, на котором нет альтернативных путей.
     
     
  • 3.38, Аноним (-), 15:24, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Лаконичный - это про код в контексте конкретного языка, да, это не про пхп.
     
     
  • 4.45, angra (ok), 18:03, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    То есть код на этом вашем питоне может быть лаконичным, только если ограничится питоном? Ну тогда, представьте себе, код на пыхе тоже может быть лаконичным, если ограничится только пыхом. А вот если сравнивать код на разных ЯП, то питон совсем не чемпион по лаконичности.
     
     
  • 5.51, . (?), 18:45, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А вот если сравнивать код на разных ЯП, то питон совсем не чемпион по лаконичности.

    APL тут никто и икогда не забрет :) Но писать на нём ...
    Лучшие продукты в этом говённом мире - всегда результат разумных компромиссов. АзЪ!

     
     
  • 6.52, rob pike (?), 19:36, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вы лично пробовали писать на APL?
     
  • 6.53, angra (ok), 20:09, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    APL это очень нишевый язык и лаконичен он только в пределах своей ниши.
     
     
  • 7.54, rob pike (?), 20:30, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Очень-очень нишевый.

    > MiServer
    > A development platform for web applications written in APL. Version 3.0, due out with Dyalog 14.1, will contain wrappers for JQuery and the Syncfusion JavaScript libraries.
    > SAWS (Stand Alone Web Services framework)
    > Allows any APL application to expose functionality in the form of Web Services in minutes

     
  • 5.58, Аноним (-), 22:27, 11/06/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это все ваши полиглотопроблемы же, я тут высказал свое мнение в отношении питона и пхп
     
  • 2.73, user455 (?), 19:02, 13/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Всю сознательную жизнь фачил этот пхп, щя начал изучать пайтон и прозрел, какой можно написать стройный, лаконичный и понятный код без всех этих громоздких синтаксических конструкций и альтернативных путей, усложняющих язык.

    а я когда начал разбираться с питоном после руби, то плевался постоянно.

     

  • 1.41, Аноним (-), 16:43, 11/06/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Что же вы все холиварите, перлы, питоны, низкий порог вхождения...
    Предлагаю для прошедших порог попробовать свои силы в чем-то посложнее,
    например написать что-нибудь на малболже (https://ru.wikipedia.org/wiki/Malbolge)
    :)
     
     
  • 2.76, Аноним (-), 23:11, 14/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Жырно. Malbolge специально сделан с максимально нечитаемым синтаксисом.
     

  • 1.60, Rodegast (??), 00:20, 12/06/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > При указании смещения внутри строки теперь можно указывать отрицательные значения, позиция в строке

    Шёл 2016 год...

     
     
  • 2.66, Аноним (-), 02:00, 13/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    В с++ этого и в 3016 не будет. И чо? Си в помойку, да, десу?
     
     
  • 3.74, rob pike (?), 04:50, 14/06/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Сразу надо было.

    > By 1960, we had a long list of amazing languages: Lisp, APL, Fortran, COBOL, Algol 60. These are higher-level than C. We have seriously regressed, since C developed. C has destroyed our ability to advance the state of the art in automatic optimization, automatic parallelization, automatic mapping of a high-level language to the machine

    Fran Allen, Coders at Work, страница 501

    Полная история Си - http://pastebin.com/UAQaWuWG

     
     
  • 4.77, Аноним (-), 23:15, 14/06/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Доо, пришла кучка технарей, придумала злой си и тем похоронила все мечты теоретиков-борщехлёбов.

    И уже сорок лет те не могут оправиться от этого удара. Какая жаль.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:
    При перепечатке указание ссылки на opennet.ru обязательно



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2021 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру