<rmcreative>

RSS

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

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

  1. 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 комментария
  2. Как узнать, равны ли два 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.

    7 комментариев
  3. PHP 7.4

    28 ноября 2019

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

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

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

    7 июня 2019

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

    30 мая 2019

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

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

    Читаем

    Комментировать
  6. 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 комментариев
  7. Неделя backendsecret, часть 2

    5 апреля 2019

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

    Читаем

    Комментировать
  8. Про PHP Russia на хабре

    28 марта 2019

    Опубликовали рассказ про PHP Russia на хабре.

    Собрать масштабную крепкую конференцию не так просто, но у нас всё получается. Одобренные доклады сильные. Те, что пока ожидают одобрения — тоже. Не так просто выбрать.

    Сильно удивили англоязычные докладчики, которые подали 83 заявки. В России для таких цифр ещё нужно дорасти...

    2 комментария
  9. cURL error 60

    7 марта 2019

    В PHP ошибка "cURL error 60: SSL certificate problem: unable to get local issuer certificate" лечится очень просто.

    1. Сливаем https://curl.haxx.se/ca/cacert.pem.
    2. В php.ini добавляем curl.cainfo="/путь/до/cacert.pem".
    6 комментариев
  10. PHP Russia 2019, начат приём заявок

    23 февраля 2019

    Итак, мы разобрались с сайтом, доформировали программный комитет. На данный момент активно приглашаем звёзд PHP мира. Уже есть в этом плане успехи, но об этом немного позже. А пока рады сообщить, что официально открыт приём заявок на доклады.

    Основные темы — это экосистема PHP (фреймворки, инструменты, стандарты и всё такое) и опыт реальных проектов. Если вдруг вам есть что рассказать и оно не вписывается — подавайтесь всё равно.

    https://phprussia.ru/2019

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