Composer.phar разница между | и ||

В чем разница между pipe и douoble pipe в файле composer.json? Например:

"^1.0.0 || ^2.0.0"

а также

'^1.0.0|^2.0.0'

7

Решение

Они одинаковые.

Если вы посмотрите на класс VersionParser (https://github.com/composer/semver/blob/1dd67fe56c0587d0d119947061a6bfc9863c101c/src/VersionParser.php#L237) вы можете увидеть следующий код:

$orConstraints = preg_split('{\s*\|\|?\s*}', trim($constraints));

Как мы видим в регулярном выражении, они? после второй трубы, что делает его необязательным.

Кажется, что документирована только двойная труба.
(https://getcomposer.org/doc/articles/versions.md#range)

10

Другие решения

Разница в том, что | (одна труба) поразрядно или и || (двойная труба) логический или
|| логический оператор ИЛИ Похоже, вы в основном знаете, что это такое. Используется в условных выражениях, таких как if, while и т. Д.

condition1 || condition2

«||» проверит последовательность, начиная с первого. Если какое-либо условие в последовательности окажется истинным, то || прекращает дальнейшую проверку .so || более эффективен в условных выражениях

| является побитовым оператором ИЛИ. Он используется для работы на двух номерах. Вы смотрите на каждый бит каждого числа в отдельности и, если один из битов равен 1 хотя бы в одном из чисел, то результирующий бит также будет равен 1. Вот несколько примеров:

A = 01010101
B = 10101010
A | B = 11111111

A = 00000001
B = 00010000
A | B = 00010001
1

Я думаю, что это старый синтаксис логического оператора ИЛИ композитора.
Я нашел эту ссылку: http://qpleple.com/understand-composer-versions (поиск символа трубы)

Во введении говорится:

Вот некоторые выдержки из документации Composer, реорганизованной в
лучше понять, как работают версии пакетов и стабильность

но я не смог найти никаких ссылок в текущей документации композитора, тогда я предполагаю, что это из старой версии документации

1
По вопросам рекламы [email protected]