Рассказываю про крипту и инвестиции на понятном языке.
Сотрудничество — @TGowner999
Больше информации о нашей сети: https://t.me/TGownerTOP
Last updated 1 month, 3 weeks ago
Утро начинается не с кофе.
Сотрудничество: @evoanna (по всем вопросам, только мне писать)
Канал в реестре: https://clck.ru/3FCQfU
Last updated 1 week ago
Самые любимые рецепты для Вас!
Контакт: @khaitbayev
Доверенные менеджеры тут:
https://t.me/+reWsclRikXIxOTcy
Ссылка для приглашения: https://t.me/+wsrt9bX3G1U3Zjg6
Last updated 1 month ago
1 Место:
Fireship – «пятиминутка здорового человека»! Короткие видео длительностью примерно 5 минут. Это либо пересказ новостей за последнее время, либо краткий обзор какой-то технологии (языка программирования, СУБД, ОС…). Особый почерк канала – великоллепное сочетание мемов и технической информации. Автор виртуозно вплетает отсылки к событиям из мира IT и поп-культуры. Единственный YouTube канал, на котором я нажал кнопку «колокльчик».
3.5М подписчиков.
Top 3 англоязычных YouTube канала, которые я регулярно смотрю.
Опубликую отдельными постами, чтобы можно было отдельно лайкать, репостить и чтобы к каждому каналу был свой preview 👇
Добавлены новые функции mb_trim(), mb_ltrim(), mb_rtrim(), mb_ucfirst(), mb_lcfirst(), bcceil(), bcdivmod(), bcfloor() и bcround(), pcntl_getcpu(), pcntl_getcpuaffinity(), pcntl_getqos_class(), pcntl_setns(), pcntl_waitid(), http_get_last_response_headers(), http_clear_last_response_headers(), fpow()
Операции exit и die теперь можно вызывать в форме полноценных функций, которые допускается передавать в качестве аргумента в другие функции. Ранее возможности функций exit() и die() были сильно ограничены, так как они представляли собой обвязки над ключевыми словами exit и die.
Добавлены изменения, усложняющие эксплуатацию уязвимостей, вызванных выходом за границы буфера, а также усиливающие рандомизацию имён файлов, создаваемых через функцию tempnam().
Объявлено устаревшим поведение, при котором для параметров функций с присвоенным по умолчанию значением null автоматически разрешалось присвоение значений null. Для того, чтобы подобные параметры могли принимать значения null теперь требуется явное указание префикса "?". Например, вместо "function save(Book $book = null) {}" следует указывать "function save(?Book $book = null) {}".
Объявлены устаревшими константы E_STRICT, MYSQLI_REFRESH_*, функции mysqli_ping(), mysqli_kill(), mysqli_refresh(), методы mysqli::ping(), mysqli::kill(), mysqli::refresh(), возможность использования "_" в качестве имени класса, некоторые свойства DOMDocument и DOMEntity. Запрещено переопределение констант класса GMP, для которого теперь выставлено ключевое слово "final".
Источник: https://www.opennet.ru/opennews/art.shtml?num=62269
PHP 8.4.1 Released!
Предложена новая реализация JIT-компилятора, построенная на базе IR Framework. Ключевое отличие в том, что старый JIT напрямую генерировал машинные инструкции на основе байткода и с использованием разных бэкендов для архитектур x86_64 и AArch64, а новый JIT использует единый для всех архитектур бэкенд и генерирует промежуточное представление (IR), которое затем дополнительно оптимизируется и преобразуется в машинные инструкции для нужной целевой платформы.
Добавлена поддержка прикрепления обработчиков свойств (property hook), позволяющих добавить дополнительную логику, выполняемую при изменении или доступе к свойствам объекта, реализуемую без перехвата операций чтения и записи при помощи общих функций __get и __set, и без создания дополнительных методов-обвязок. Применение обработчиков свойств даёт возможность существенно сократить объём кода и упростить переопределение поведения работы со свойствами, благодаря привязке собственного обработчика к каждому свойству.
`class User
{
public string $name {
set {
if (strlen($value) === 0) {
throw new ValueError("Name must be non-empty");
}
$this->name = $value;
}
}
public function __construct(string $name) {
$this->name = $name;
}
}`
Разрешено указание ссылок на методы в конструкции "new" без отделяющих скобок, т.е. вместо "$name = (new MyClass())->method()" теперь можно указывать "$name = new MyClass()->method()".
Добавлена возможность асимметричного управления видимостью свойств объектов (public, private, protected), отдельно для операций записи (set) и чтения (get). Например:
`class PhpVersion
{
public private(set) string $version = '8.4';
}
$phpVersion = new PhpVersion();
var_dump($phpVersion->version); // string(3) "8.4"
$phpVersion->version = 'PHP 8.3'; // error`
Предоставлена штатная поддержка "ленивых" объектов (lazy), инициализация которых производится в момент первого использования.
Вместо общего параметра "opcache.jit_buffer_size" для управления JIT-компилятором и настройки размера буфера JIT предложены параметры "opcache.jit" и "opcache.jit_buffer_size". Для отключения JIT теперь можно указывать "opcache.jit=disable" вместо "opcache.jit_buffer_size=0". Внесены изменения, снижающие потребление памяти и повышающие производительность JIT в некоторых ситуациях.
Добавлен атрибут "#[\Deprecated]", предназначенный для пометки устаревших функций, классов и методов.
\#[\Deprecated("use newFunction() instead", since: "1.1")]
function oldFunction() {
// …
}
Реализован класс \Dom\HTMLDocument, поддерживающий корректный разбор разметки HTML5.
Добавлена функция request_parse_body() для разбора HTTP-запросов с типом контента multipart/form-data (RFC1867).
Добавлены функции array_find(), array_find_key(), array_any() и array_all(). Функции array_find() и array_find_key() возвращают первый элемент или ключ в массиве, для которых сработала проверка, заданная через указанную пользователем callback-функцию. В свою очередь функции array_any() и array_all() возвращают любой совпавший элемент и все совпавшие элементы. Например, для вывода первого элемента, размер поля title в котором больше 5 символов, можно указать:
$firstMatch = array_find(
$posts,
function (Post $post) {
return strlen($post\->title) > 5;
}
);
Добавлены методы DateTime::getMicrosecond() и DateTimeImmutable::setMicrosecond($microsecond) для получения и установки времени с микросекундной точностью, а также метод DateTime::createFromTimestamp().
В PDO (PHP Data Objects), абстрактный интерфейс для работы с базами данных, добавлена возможность создания парсеров SQL и субклассов, специфичных для определённых драйверов СУБД. Добавлены новые субклассы Pdo\Dblib, Pdo\Firebird, Pdo\MySql, Pdo\Odbc и Pdo\Sqlite.
ХВАТИТ смеяться над языками
программирования
Java - популярный
JavaScript - удобный
Python - прекрасный
PHP
Ruby - интересный
пятничный мем
Рассказываю про крипту и инвестиции на понятном языке.
Сотрудничество — @TGowner999
Больше информации о нашей сети: https://t.me/TGownerTOP
Last updated 1 month, 3 weeks ago
Утро начинается не с кофе.
Сотрудничество: @evoanna (по всем вопросам, только мне писать)
Канал в реестре: https://clck.ru/3FCQfU
Last updated 1 week ago
Самые любимые рецепты для Вас!
Контакт: @khaitbayev
Доверенные менеджеры тут:
https://t.me/+reWsclRikXIxOTcy
Ссылка для приглашения: https://t.me/+wsrt9bX3G1U3Zjg6
Last updated 1 month ago