それは次のように書かれるべきです...
dd($user === "Admin" || $user === "Superuser");
... 代わりは。個別に確認する必要がある 2 つの個別の条件があります。
現在の状況については、それは... おかしいです。PHPの||演算子は JavaScript のようには機能しません (truthy値に評価される場合は最初のオペランドを返すか、型を変更せずに 2 番目のオペランドを返します)。
しかし、これは PHP であり、ここでは||操作の結果は常にboolean値 ( または のいずれかtrue)falseです。PHPtrueでは 2 つの文字列値 (falsy空の文字列と'0'. の最初のオペランド'Admin' || 'Superuser'はどちらでもないため、この式は と評価されtrueます。
だからそれは...
dd($user == true);
繰り返しますが、適切な比較演算子を使用===すると、ここで違いに気付くはずです。しかし、それ==は であるため、実際に比較する前にオペランドの型を変換します。
型強制の規則 (docpage で非常にうまく説明されています) により、比較の一方の値が の場合、もう一方の値booleanも常にに変換されbooleanます。またはで$userはないので、にも変換されます。'''0'true
したがって、最終的には次のようになります。
dd(true === true);
結果はどうですか?)