Как обеспечить сосуществование разных версий синтаксиса PHP?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как обеспечить сосуществование разных версий синтаксиса PHP?

Сообщение Anonymous »

В моем PHP-файле эта строка кода:

Код: Выделить всё

private const string NS_HTML = 'http://www.w3.org/1999/xhtml';
работает только для PHP 8.3 или более поздних версий.
Если я хочу сделать свою библиотеку совместимой с версией 8.2, это единственный способ понизить синтаксис как поступить? т.е.

Код: Выделить всё

private const NS_HTML = 'http://www.w3.org/1999/xhtml';
Чего я действительно хочу добиться, так это какого-то волшебства, например:

Код: Выделить всё

if (PHP_VERSION >= '8.3') {
private const string NS_HTML = 'http://www.w3.org/1999/xhtml';
} else {
private const NS_HTML = 'http://www.w3.org/1999/xhtml';
}
Вы можете возразить, что удаление ограничения типа из константы не имеет большого значения, но я просто привожу простой пример. Еще одна функция версии 8.3, которую я использую, — это атрибут #[Override], и мне бы хотелось сохранить его.
Обновление: на основе ответа из раздела «Как я могу написать код для нескольких версий PHP». в том же файле без ошибок?:
Это будет работать:

Код: Выделить всё

if (\PHP_VERSION_ID >= 803000) {
require_once __DIR__ . '/class-a-php8.3.php';
} else {
require_once __DIR__ . '/class-a-php8.2.php';
}
Пока этого не произойдет:

Код: Выделить всё

if (\PHP_VERSION_ID >= 803000) :
class A {
private const string NS_HTML = 'http://www.w3.org/1999/xhtml';
...
}
else:
class A {
private const NS_HTML = 'http://www.w3.org/1999/xhtml';
...
}
endif;
т.е. разные версии синтаксиса должны находиться в отдельных файлах.


Подробнее здесь: https://stackoverflow.com/questions/791 ... ax-coexist
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»