Описание тега php-8
По вопросам, связанным с использованием и функциями 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