composer.jsonファイルのpipeとdouoble pipeの違いは何ですか?たとえば:Composer.pharの差異| ||
"^1.0.0 || ^2.0.0"
と
'^1.0.0|^2.0.0'
composer.jsonファイルのpipeとdouoble pipeの違いは何ですか?たとえば:Composer.pharの差異| ||
"^1.0.0 || ^2.0.0"
と
'^1.0.0|^2.0.0'
違いがあるということ| (シングルパイプ)はビット単位で、またはと|| (二重管)は論理または ||論理OR演算子です。あなたは基本的にそれが何であるかを知っているように聞こえる。 if、whileなどの条件文で使用されます。
condition1 || condition2
"||"は最初から順番にチェックインします。順序どおりの条件が真であれば、||さらなるチェックを止める。条件文でより効率的です
|ビットごとのOR演算子です。それは2つの数字で動作するために使用されます。個々の数字の各ビットを個別に見て、少なくとも1つの数字のうちの1つが1である場合、結果のビットも1になります。いくつか例があります:
A = 01010101
B = 10101010
A | B = 11111111
A = 00000001
B = 00010000
A | B = 00010001
'^ 1'いいよ、素敵な説明。 –
@Shanukk私はビット演算子の仕組みを理解していますが、バージョンの制約の違いは何か分かりません。 2つの例を見てください _^1.5.0 |^2.0.0_と **^1.5.0 || 2.0.0 **。 _^1.5.0_はtrueまたはfalseのみを返します。 **^2.0.0 **もtrueまたはfalseのみを返すことができます。 だから、違いはありません: _bool | bool_ AND ** bool ||ブール**。 ? 「はい」の場合、違いは何ですか?いいえの場合、composer.pharの2つの異なる演算子の理由は何ですか? – Roman678
composer.pharのバージョン制約では、 '|'と '|| 'の間に違いはありません – Ostin
私はそれが作曲者OR論理演算子の古い構文だと思います。 私は、この参照が見つかりました:http://qpleple.com/understand-composer-versions(パイプ文字を検索)
導入では、それは言う:ここ
が に改組Composerの文書から一部を抽出し、より良い方法をパッケージのバージョンと安定の仕事
を理解しています
現在のコンポーザーのドキュメントでは参照できませんでしたが、これは旧バージョンのドキュメントからのものとみなされます
彼らは同じです。
あなたはVersionParserクラス(https://github.com/composer/semver/blob/1dd67fe56c0587d0d119947061a6bfc9863c101c/src/VersionParser.php#L237)を調べる場合は、次のコードを見ることができます:私たちは正規表現で見ることができるように
$orConstraints = preg_split('{\s*\|\|?\s*}', trim($constraints));
を、彼らがしているのですか? 2番目のパイプの後に、オプションにします。
二重管だけが文書化されているようです。 (https://getcomposer.org/doc/articles/versions.md#range)
単一のパイプは廃止予定ですが、下位互換性のために残されています。あなたのpreg_splitの参照にスポットがあります。 – Scriptonomy
私が見つけたことから、彼らは同じです。しかし、正しくないかもしれません。 – Antony
||それは論理ORとして扱われます –
@ Shanukk ok、ですから、論理パイプと単一パイプの違いは何ですか? – Roman678