目次
キーポイント
配列オペレーター
配列ユニオン
配列の平等
アレイを文字列
無効
結論
PHPのさまざまな種類の配列演算子は何ですか?
PHPは、ユニオン()、平等(==)、アイデンティティ(===)、不平等(!=または<>)、および非対照的な平等(!==)を含むいくつかのタイプの配列演算子をサポートします。これらの各演算子は、異なる機能を実行します。たとえば、Union Operator()は配列を組み合わせ、等式オペレーター(==)は2つの配列が等しいかどうかをチェックし、IDオペレーター(===)は2つの配列が同じかどうかを確認します。
平等(==)とID(===)演算子の違いは何ですか?
PHPの不平等(!=または<>)オペレーターはどのように機能しますか?
PHPにおける非同一性(!==)演算子の役割は何ですか?
配列演算子はPHPで結合できますか?
配列に配列オペレーターを使用して特定の値が含まれているかどうかを確認する方法は?
PHPアレイから特定の値を削除する方法は?
PHPで配列をソートする方法は?
PHPの配列の順序を逆転させる方法は?
ホームページ バックエンド開発 PHPチュートリアル PHPマスター| PHPのアレイオペレーター:興味深いが話されていない

PHPマスター| PHPのアレイオペレーター:興味深いが話されていない

Feb 23, 2025 am 09:04 AM

PHPアレイ演算子の詳細な説明:あまり知られていないヒント

PHP Master | Array Operators in PHP: Interesting but Less Spoken

PHP演算子は、算術、割り当て、ビット操作、比較、エラー制御、実行、増分/減少、ロジック、文字列、配列、タイプ演算子の7つのカテゴリに分けることができます。この記事では、配列演算子に焦点を当て、配列と組み合わせて使用​​する場合の他の演算子の動作をカバーします。

キーポイント

  • PHPアレイ演算子には、ユニオン、平等、不平等、および非同一性が含まれます。 -同一。
  • ユニオンオペレーター()は、キーに従って2つの配列をマージし、2番目の配列の最初の配列に既に存在するキーを無視します。ただし、組合が配列値に基づいていることはしばしば誤解されていますが、実際には配列キーに基づいています。
  • ID操作者(===)は、対応するすべての値の要素、キー値のペア、要素順序、およびデータ型の数で2つの配列が同じかどうかを確認します。しかし、配列キーの場合、キーが整数であり、別の配列のキーと同様の整数文字列表現がある場合、それはゆるい一致をします。
  • アレイオペレーター以外のオペレーターをアレイに適用すると、
  • PHPの動作が異なります。たとえば、算術演算子をアレイに適用すると、致命的なエラーが発生します。増分/減少演算子は、配列に影響を与えません。

配列オペレーター

公式ドキュメントでは、各配列オペレーターについて簡単に説明します。これにより、各オペレーターの予想される結果を理解することが困難な場合があります。各配列オペレーターを詳しく見て、機能をより明確に理解しましょう。これらの演算子はすべてバイナリです。つまり、各演算子は2つの配列に正確に作用します。

配列ユニオン

最初はユニオンオペレーター()です。これは、アレイのキーに従って2つの配列のユニオンを提供します。ゆるいキーマッチングを実行し、2番目の配列の同等のキーが最初の配列に既に存在する場合、2番目の配列のすべてのキーは無視されます。 2番目の配列の残りのキー(および対応する値)は、最初の配列に追加されます。

<?php
$array1 = array('a', 'b', 'c');
$array2 = array('d', 'e', 'f', 'g', 'h', 'i');
print_r($array1 + $array2);
print_r($array2 + $array1);
?>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
<code>Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => g
    [4] => h
    [5] => i
)
Array
(
    [0] => d
    [1] => e
    [2] => f
    [3] => g
    [4] => h
    [5] => i
)</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
最初のprint_r()の場合、$ array2の最初の3つの要素には$ array1に既に存在するキーがあるため、結果配列では 'd'、 'e'、 'f'は無視されます。 2番目のprint_r()の場合、$ array1のすべてのキーが$ array2に既に存在するため、すべての要素は無視されます。一致する動作がゆるくなると、まったく予想外の結果が得られるかもしれませんが、最適化とゆるいコーディングのエキサイティングな機会も提供します。

<?php
$array1 = array('0' => 'a', '1' => 'b', '2' => 'c', '3' => 'd');
$array2 = array(false => 'e', 1 => 'f', 2 => 'g', 3 => 'h', 4 => 'i');
print_r($array1 + $array2);
?>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
<code>Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => i
)</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
人々はしばしば、組合が配列の値に基づいていることを誤解していますが、実際にはこのオペレーターはアレイキーの組合を実装しています。価値ベースのユニオンの場合、array_merge()とarray_unique()を組み合わせて使用​​できます。
<?php
$array1 = array('a', 'b', 'c');
$array2 = array('d', 'e', 'f', 'g', 'h', 'i');
print_r($array1 + $array2);
print_r($array2 + $array1);
?>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
<code>Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => g
    [4] => h
    [5] => i
)
Array
(
    [0] => d
    [1] => e
    [2] => f
    [3] => g
    [4] => h
    [5] => i
)</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

配列の平等

equalityオペレーター(==)は、2つの配列が類似しているかどうかを確認します。最初の配列のすべてのキー値ペアが2番目の配列に同等のキー値ペアがある場合、演算子はtrueを返します。値とキーにゆるく一致し、要素の順序を無視します。

<?php
$array1 = array('0' => 'a', '1' => 'b', '2' => 'c', '3' => 'd');
$array2 = array(false => 'e', 1 => 'f', 2 => 'g', 3 => 'h', 4 => 'i');
print_r($array1 + $array2);
?>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
<code>Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => i
)</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

両方の配列の要素は異なる順序でありますが、同じ値は各配列の同様のキーに結合します。ただし、両方の配列には異なるキー価値ペアがあるため、次の2つは等しくありません。

<?php
$union = array_unique(array_merge($array1, $array2));
print_r($union);
?>
ログイン後にコピー
<code>Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
    [6] => g
    [7] => h
    [8] => i
)</code>
ログイン後にコピー
不均等な演算子(!=または&lt;&gt;)は、2つの配列が類似しておらず、等しい演算子にとって完全な反意語であるかどうかをチェックします。平等オペレーターは虚偽を返します。この演算子は真実であり、その逆もまた返します。

<?php
$array1 = array('1' => 1, '2' => 2, '3' => 3, '0' => 0);
$array2 = array(false => '0', 1 => '1', 2 => '2', 3 => '3');
var_dump($array1 == $array2);
?>
ログイン後にコピー
<code>bool(true)</code>
ログイン後にコピー
ログイン後にコピー
配列のID

ID操作者(===)は、2つの配列が同じかどうかを確認します。 2つの配列は、次の条件を満たしている場合と同じです。

同じ数の要素があります
  • は同じキー値のペア
  • を持っています
  • 同じ要素順序
  • を持っています
  • 対応するすべての値のデータ型は同じです
  • ただし、配列キーの場合、キーが整数であり、別の配列のキーと同様の整数文字列表現がある場合、ID演算子はゆるい一致を行います。この演算子は、フローティングポイント番号を文字列キーに厳密に一致させます。 PHPマニュアルはこの違いを述べていません。

<?php
$array1 = array(1, 2);
$array2 = array(2, 1);
var_dump($array1 == $array2);
?>
ログイン後にコピー
<code>bool(false)</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
<?php
$array1 = array('1' => 1, '2' => 2, '3' => 3, '0' => 0);
$array2 = array(false => '0', 1 => '1', 2 => '2', 3 => '3');
var_dump($array1 != $array2);
?>
ログイン後にコピー
<code>bool(false)</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
非同一性演算子(!==)は、2つの配列が異なるかどうかを確認します。繰り返しますが、この演算子はID演算子の正反対です。つまり、2つの配列が同じ場合、この演算子はFalseを返します。
<?php
// 数组几乎相同,但键的类型不同
$array1 = array('0' => '0', '1' => '1', '2' => '2', '3' => '3');
$array2 = array(0 => '0', 1 => '1', 2 => '2', 3 => '3');
var_dump($array1 === $array2);
?>
ログイン後にコピー
<code>bool(true)</code>
ログイン後にコピー
ログイン後にコピー

他の演算子と配列を使用します
<?php
// 两个数组中的元素顺序不同
$array1 = array('0' => '0', '1' => '1', '2' => '2', '3' => '3');
$array2 = array(1 => '1', 2 => '2', 3 => '3', 0 => '0');
var_dump($array1 === $array2);
?>
ログイン後にコピー
上記のオペレーター以外のオペレーターを配列に適用すると、
<code>bool(false)</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
PHPの動作は異なります。これらの演算子のリストと、配列に適用したときの動作のリストを次に示します。

致命的なエラー:予期しないオペランドタイプ

PHPは、次の演算子が配列に適用されると致命的なエラーを発行します。

ビット操作非オペレーター(〜)

算術ネガティブ演算子( - )
  • 算術減算演算子( - )
  • 算術乗算演算子(*)
  • 算術師団演算子(/)
  • アレイを整数として扱います
  • 次の演算子とともに使用すると、配列は整数として扱われます。空の配列(要素なし)はint(0)と見なされ、空でない配列はint(1)と見なされます。
  • 論理非(!)は空の配列にtrueを返し、オペランド配列に1つ以上の要素がある場合にfalseを返します。
  • ビットと(&&)1つのオペランドが空でない場合は、0を返します。
  • ビットまたは(|)は、両方のオペランドが空である場合に0を返します。
  • ビット排他的(^)両方の配列が空または空でない場合は0を返します。配列の1つが空の場合は、1を返します。
  • 左シフト演算子(&lt;&lt;)を使用して、配列を左nステップに移動します。
  • 右シフト演算子(&gt;&gt;)は、右に移動することを除いて、左シフトと同様に動作します。
  • モジュール(%)は、両方の配列が空でない場合にtrueを返します。 2番目の配列が空の場合、「ゼロで分割された」エラーが発現されます。最初の配列が空の場合、0(0%1の結果)が返されます。
  • ロジスティックvs(&&およびおよび)は、配列が空である場合にfalseを返します。両方の配列が空でない場合はtrueを返します。
  • 論理的または(||およびまたは)オペランドアレイが空でない場合はtrueを返します。両方の配列が空の場合、falseが返されます。
  • 両方の配列が空または空でない場合、論理XOR(XOR)がfalseを返します。それ以外の場合、配列の1つが空の場合、trueを返します。
  • captアレイをブールにして、配列が空の場合はfalseを返し、それ以外の場合はtrueを返します。

アレイを文字列

として扱います

2つの配列を連結すると、文字列連結演算子(。)は各配列を文字列「配列」として扱い、これらの文字列を連結します。

<?php
$array1 = array('a', 'b', 'c');
$array2 = array('d', 'e', 'f', 'g', 'h', 'i');
print_r($array1 + $array2);
print_r($array2 + $array1);
?>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
<code>Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => g
    [4] => h
    [5] => i
)
Array
(
    [0] => d
    [1] => e
    [2] => f
    [3] => g
    [4] => h
    [5] => i
)</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

無効

増分/減少演算子(および - )は、配列に影響を与えません。

<?php
$array1 = array('0' => 'a', '1' => 'b', '2' => 'c', '3' => 'd');
$array2 = array(false => 'e', 1 => 'f', 2 => 'g', 3 => 'h', 4 => 'i');
print_r($array1 + $array2);
?>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
<code>Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => i
)</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

結論

配列で使用した場合、PHP演算子に関する実際のドキュメントはほとんどありませんが、詳細を確認するには、配列オペレーターのページにユーザーがサビされたコメントを表示できます。あなたの質問とコメントはここで大歓迎です。さらに説明していただければ幸いです。

Fotoliaの写真

PHPアレイオペレーターFAQ(FAQ)

PHPのさまざまな種類の配列演算子は何ですか?

PHPは、ユニオン()、平等(==)、アイデンティティ(===)、不平等(!=または&lt;&gt;)、および非対照的な平等(!==)を含むいくつかのタイプの配列演算子をサポートします。これらの各演算子は、異なる機能を実行します。たとえば、Union Operator()は配列を組み合わせ、等式オペレーター(==)は2つの配列が等しいかどうかをチェックし、IDオペレーター(===)は2つの配列が同じかどうかを確認します。

ユニオン()オペレーターはどのようにPHPで機能しますか?

PHPのUnion()オペレーターは、2つの数値を1つに組み合わせています。アレイの結合が必要です。つまり、2つの配列にすべての要素を含む配列を返します。配列に同じ文字列キーがある場合、最初の配列の値が使用され、2番目の配列の一致キーの値は無視されます。

平等(==)とID(===)演算子の違いは何ですか?

equality(==)演算子は、注文やデータ型に関係なく、2つの配列が同じキー/値のペアを持っているかどうかをチェックします。一方、ID(===)演算子は、2つの配列が同じ順序と同じデータ型のキー/値のペアが同じかどうかを確認します。

PHPの不平等(!=または&lt;&gt;)オペレーターはどのように機能しますか?

PHPの不均等な演算子は、!=または&lt;&gt;で表されます。配列が等しくない場合はtrueを返し、配列が等しい場合はfalseを返します。

PHPにおける非同一性(!==)演算子の役割は何ですか?

PHPの非同一性(!==)演算子は、2つの配列が異なるかどうかをチェックします。配列が同じではない場合はtrueを返します。

配列演算子はPHPで結合できますか?

はい、ArrayオペレーターをPHPで組み合わせて、より複雑な操作を実行できます。ただし、これを行う場合は、予期しない結果を避けるように注意してください。コンテキストのコンテキストで、複合演算子が論理的に重要であることを常に確認してください。

配列に配列オペレーターを使用して特定の値が含まれているかどうかを確認する方法は?

PHPでIN_ARRAY()関数を使用して、配列に特定の値が含まれているかどうかを確認できます。値が配列で見つかった場合、この関数はtrueを返します。

PHPアレイから特定の値を削除する方法は?

phpでarray_diff()関数を使用して、配列から特定の値を削除できます。この関数は、配列の値を別の配列の値と比較し、差を返します。

PHPで配列をソートする方法は?

PHPは、sort()、asort()、ksort()、およびusort()を含む配列をソートするための複数の関数を提供します。これらの各機能は、アレイを別の方法でソートするため、ニーズに最適なものを選択する必要があります。

PHPの配列の順序を逆転させる方法は?

phpでarray_reverse()関数を使用して、配列の順序を反転させることができます。この関数は、新しい一連の要素を逆の順序で返します。

以上がPHPマスター| PHPのアレイオペレーター:興味深いが話されていないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

セッションのハイジャックはどのように機能し、どのようにPHPでそれを軽減できますか? セッションのハイジャックはどのように機能し、どのようにPHPでそれを軽減できますか? Apr 06, 2025 am 12:02 AM

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 Apr 03, 2025 am 12:04 AM

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

phpstormでCLIモードをデバッグする方法は? phpstormでCLIモードをデバッグする方法は? Apr 01, 2025 pm 02:57 PM

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

システムの再起動後にUnixSocketの権限を自動的に設定する方法は? システムの再起動後にUnixSocketの権限を自動的に設定する方法は? Mar 31, 2025 pm 11:54 PM

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

フレームワークセキュリティ機能:脆弱性から保護します。 フレームワークセキュリティ機能:脆弱性から保護します。 Mar 28, 2025 pm 05:11 PM

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

See all articles