По вопросам, связанным с использованием и функциями PHP 8. При использовании этого тега также включайте более общий тег [php].
4 ответа

Подсказка типа php Могу ли я разрешить два типа?

Могу ли я разрешить два разных типа, используя тип подсказки? Например, параметр 1 может быть одним из двух классов function log (User|File $requester) { }
16 окт '17 в 17:04
8 ответов

Поймай исключение, ничего не делая в улове

В PHP я иногда ловлю некоторые исключения с помощью try/catch: try { ... } catch (Exception $e) { // Nothing, this is normal } С таким кодом я получаю переменную $e, которая создается даром (много ресурсов), а PHP_MD (PHP Mess Detector) создает пред…
27 янв '11 в 18:18
2 ответа

Что такое JIT-компилятор PHP8

Что такое PHP8 JIT? и какие преимущества он может дать миру PHP? Насколько я понимаю, он используется для повышения производительности.
07 мар '20 в 21:49
1 ответ

В чем разница между будущим оператором распространения PHP8 и его уже существующей компактной функцией?

В чем разница между будущим оператором распространения PHP8 и уже существующей функцией compact()? https://stitcher.io/blog/php-8-named-arguments $data = new CustomerData(...$input);
24 июл '20 в 14:38
1 ответ

Как указать тип возвращаемого значения void для конструктора

Для единообразия я указываю типы возвращаемых значений, начиная с PHP 7.1, для всех методов, включая магические, такие как __toString , и даже если неявный возвращаемый тип void как с __unserialize() : class a { function __toString() : string {} fun…
23 май '20 в 12:20
5 ответов

Как сделать str_contains без учета регистра?

У меня много if(mb_stripos($hay, $needle) !== false)в моем коде. Как мне заменить его на str_contains() ? Например, у меня в коде есть вспомогательная функция: <?php $str1 = 'Hello world!'; //coming from the database $str2 = 'hello'; // coming fr…
27 июл '20 в 21:54
1 ответ

Что означает этот символ "?->" в php, внутри объекта или нулевого значения

Не могли бы вы объяснить, что делает оператор ?-> сделать на PHP, так как у меня есть этот фрагмент кода: $drive = $objDrive?->func?->getDriver()?->value;
03 июн '20 в 19:54
1 ответ

Как использовать выражение соответствия вместо выражения переключения

Мы можем использовать выражение соответствия вместо case в PHP 8. Как правильно написать выражение соответствия для следующего случая переключения? switch($statusCode) { case 200: case 300: $message = null; break; case 400: $message = 'not found'; b…
19 июл '20 в 20:35
3 ответа

Laravel в PHP 8 dev

У меня есть докер-контейнер с php 8.0.0-dev и композитором. Я хочу создать приложение Laravel для тестирования нового PHP, но у меня есть некоторые ошибки. Когда я пытаюсь создать новый проект laravel с помощью команды: composer create-project larav…
16 авг '20 в 12:07
3 ответа

Как определить, включен ли PHP JIT

Каков самый простой способ определить, скомпилирован ли PHP с JIT и включен ли JIT из запущенного скрипта?
30 июн '20 в 12:32
2 ответа

Предупреждение: смещению строки будет присвоен только первый байт.

Следующий код отлично работал в PHP 7, так почему я вижу это предупреждение в PHP 8? $str = 'xy'; $str[0] = 'bc';
05 окт '20 в 13:08
2 ответа

Ошибка, вызванная именованными аргументами и распаковкой аргументов при вызове функции, не вызывающей ErrorException в PHP-8

Следующий код работает должным образом: выдает исключение ErrorException и вызывает функцию выключения для фатальной ошибки, сгенерированной require register_shutdown_function(function() { echo "anyway, hello world\n"; }); set_error_handle…
20 окт '20 в 06:34
1 ответ

Использование ZipArchive с PHP 8 и временными файлами

PHP 8 меняет принцип работы "открытия" ZIP-архива и отмечает, что: Использование пустого файла в качестве ZipArchive устарело. Libzip 1.6.0 больше не принимает пустые файлы как действительные zip-архивы. В тестовом коде ниже открытие ZIP-файла с име…
05 ноя '20 в 17:10
1 ответ

Невозможно настроить обработчик ошибок для выдачи исключения ErrorException в PHP-8

В моем скрипте есть следующий код: set_error_handler(function(int $severity, string $message, string $filename, int $lineNumber) : void { throw new ErrorException($message, 0, $severity, $filename, $lineNumber); }); function test() : string { return…
07 окт '20 в 18:30
2 ответа

Неустранимая ошибка: объявление Foo::__toString(): void должно быть совместимо с Stringable::__toString(): string

После обновления до PHP 8 я теперь вижу это Fatal errorчто не так с моим кодом? И что это Stringable?
22 окт '20 в 11:18
2 ответа

Невозможно использовать null в качестве значения по умолчанию для параметра в PHP-8

В версиях php-8 и более старых работает следующий код class Foo { public function __construct(string $string = null) {} } Но в php-8 вместе с продвижением собственности выдает ошибку class Foo { public function __construct(private string $string = n…
22 окт '20 в 07:51
1 ответ

Соединение не установлено Xdebug 3 с PhpStorm

Добрый день. Когда делается попытка отладки скрипта на PHP 8, PhpStorm сообщает, что нет связи с xdebug версии 3. Работает со всеми версиями ниже 3. Я попытался изменить параметры xdebug.remote_{host, port} на xdebug.client_{host, port}, но тоже не …
13 ноя '20 в 13:29
0 ответов

Как установить PHP различных версий 7.4 - 7.3 - 7.2 и 7.1 и их расширения в CentOS 8

Мне нужно установить несколько версий PHP на каждый момент, чтобы выбрать для каждого проекта. как это сделать правильно? Моя система для $ uname -a Linux ns1 4.18.0-193.28.1.el8_2.x86_64 #1 SMP Thu Oct 22 00:20:22 UTC 2020 x86_64 x86_64 x86_64 GNU/…
18 ноя '20 в 22:39
0 ответов

Почему они добавили новую функцию str_starts_with в PHP 8, но не сделали ее независимой от регистра?

https://www.php.net/str_starts_with Нет параметра, который нужно изменить, чтобы сделать регистр нечувствительным. Также нет stri_starts_with или похожие. Какой смысл добавлять такую ​​функцию, если они делают "половину работы"? Разве не так часто х…
27 ноя '20 в 15:04
0 ответов

Установка Symfony Composer FIrst: ваши требования не могут быть решены в устанавливаемом наборе пакетов

Я здесь совершенно потерялся. Я настроил свой wampserver на использование php 8.0.0, создал новую папку и использовал первую команду symfony в их документации: composer create-project symfony/website-skeleton:"5.2.x@dev" my_project_name И …
04 дек '20 в 06:08