<rmcreative>

RSS

Все заметки с тегом «PHP»

Можно уточнить:

  1. Короткие теги в PHP

    10 июня

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

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

    Их осталось на данный момент в PHP 7.4 два вида:

    • <? - короткая форма <?php. Включается через short_open_tag в php.ini.
    • <?= - короткая форма <?php echo. Доступна всегда.

    Если с <?= всё ясно, тег доступен всегда и удобен при использовании в шаблонах, то с <? не всё так просто.

    В PHP 7.4 его хотели убрать и почти убрали после положительного голосования за RFC. Но в итоге сначала предложили сделать это по-другому, а потом и вовсе не делать.

    В результате в PHP 7.4 теги работают как и ранее. В PHP 8 тоже (но не факт, что так будет в релизе).

    Стоит ли использовать <? - вопрос неоднозначный. Если у вас проект, который разворачивается только на ваши сервера, вы контролируете php.ini и никогда не забываете short_open_tag = On, то технически ничего ужасного в использовании коротких тегов нет. Если же вы делаете продукт, который можно поставить на свой сервер, такой как CMS или фреймворк, то использовать <? - плохая идея. Часть пользователей обязательно попробует развернуть ваш продукт в окружении, где у них нет возможности поправить php.ini.

    7 комментариев
  2. 25 лет PHP

    8 июня

    8 июня 1995 года, программист родом из Гренландии Расмус Лердорф публикует в usenet анонс набора CGI-скриптов, который он назвал PHP Tools.

    Иногда говорят, что первые версии PHP были написаны на Perl. Это, конечно же, неправда.

    Главные факты и события из 25 лет истории PHP смотрите в таймлайне.

    Заревьювить и дополнить его помогли непосредственные участники событий: Andi Gutmans, Derick Rethans, Peter Kokot, Александр Макаров, Дмитрий Стогов и другие.

    Еще 27 мая исполнилось 10 лет PhpStorm. Чтоб отметить сразу два дня рождения делаем скидку 50% на персональную годовую подписку.

    С днем рождения PHP!

    Комментировать
  3. PHP Mentors

    20 апреля

    В ноябре 2018-го года мне написал Flávio Silveira. У него была идея собрать книгу с ответами на одни и те же вопросы от видных в сообществе PHP людей. В итоге всё получилось: 55 человек, 17 вопросов.

    Сайт книги

    Комментировать
  4. PHP: return в finally

    4 марта

    function test()
    {
        try {
            throw new \RuntimeException('try');
        } catch (\RuntimeException $e) {
            throw new \RuntimeException('catch');
        }
        finally {
            return 'finally';
        }
    }
     
    echo test();

    return в finally - штука опасная. Он тихо проигнорирует все исключения.

    3 комментария
  5. Как узнать, равны ли два float в PHP

    6 декабря 2019

    Тип float не отличается точностью, страдают от ошибок округления и сравнивать как обычно их нельзя. Почему так отлично написано на специальном сайте floating-point-gui.de.

    В PHP узнать, равны ли два float и не нарваться на ошибки можно так:

    $equal = \abs($a - $b) < PHP_FLOAT_EPSILON;

    PHP_FLOAT_EPSILONмашинный ноль для PHP.

    Для PHP < 7.2 можно в качестве epsilon использовать 0.0001.

    8 комментариев
  6. PHP 7.4

    28 ноября 2019

    Увидела свет новая версия PHP.

    Самое важное для меня:

    • Производительность увеличилась.
    • Типизация свойств. Потенциально хорошая штука для простых DTO.
    • Ковариантность возвращаемого типа и типа аргументов. Очень полезно для типизированных коллекций и реализации PSR с добавлением дополнительной типизации.
    • Возможность бросать исключения в __toString(). Точно упростит обработчик ошибок в Yii 3 и очень важно для реализации виджетов.
    • preload. Потенциально интересно.
    3 комментария
  7. Немного видео с PHP Russia

    7 июня 2019

    Комментировать
  8. PHP Russia, отчёт

    30 мая 2019

    В Москве 17 мая прошла конференция PHP Russia.

    Организовываю конференции я не в первый раз, до этого были две YiiConf, техническая секция РИФ-а и участие в программных комитетах РИТ и Highload.

    Читаем

    Комментировать
  9. switch(true)

    5 апреля 2019

    Не так часто встречаю использование switch(true) в коде:

    switch(true)
    {
      case $this->isExpired($product):
        // ...
        break;
      case $this->isFinal($product):
        // ...
        break;
      default:
        // ...
        break;
    }

    Это эквивалент следующего:

    if ($this->isExpired($product)) {
        // ...
    } elseif ($this->isFinal($product)) {
        // ...
    } else {
        // ...
    }

    Какой из вариантов вам приятней читать?

    14 комментариев
  10. Неделя backendsecret, часть 2

    5 апреля 2019

    Продолжаю публиковать интересное из недели backendsecret.

    Читаем

    Комментировать