リファレンス - この記号は、PHPではどのような意味ですか?

これは何ですか?

このリストは、PHP の構文について時々出てくる質問を集めたものです。これはコミュニティWikiでもありますので、誰でもこのリストの管理に参加することができます。

なぜこれを使うのですか?

以前は、演算子やその他の構文トークンに関する質問を探すのが大変でした。 主なアイデアは、Stack Overflowの既存の質問へのリンクを用意することで、PHPマニュアルから内容をコピーするのではなく、私たちが参照しやすくすることです。 注: 2013年1月以降、Stack Overflowは特殊文字をサポートしています。検索語を引用符で囲むだけで、例えば [php] "==" vs "===" のようになります。

**ここで何をすればいいのでしょうか?

もし、あなたがこのような質問をしたために誰かにここを指摘されたのであれば、以下に特定の構文を見つけてください。PHPマニュアル](http://php.net/manual/en/index.php)のリンク先のページと、リンク先の質問を見れば、おそらくその質問に答えてくれるでしょう。もしそうであれば、その答えをupvoteすることをお勧めします。このリストは、他の人が提供するヘルプの代わりになるものではありません

リスト

もし特定のトークンが以下に記載されていない場合は、List of Parser Tokensに記載されているかもしれません。

& ビット演算子または参考文献を参照してください。

ソリューション

インクリメント/デクリメント演算子

++ インクリメント演算子

--` デクリメント演算子

Example    Name              Effect
---------------------------------------------------------------------
++$a       Pre-increment     Increments $a by one, then returns $a.
$a++       Post-increment    Returns $a, then increments $a by one.
--$a       Pre-decrement     Decrements $a by one, then returns $a.
$a--       Post-decrement    Returns $a, then decrements $a by one.

これらは、変数の前でも後でも構いません。

変数の前に置かれた場合、インクリメント/デクリメントの操作は変数に対して 最初に 行われ、その後結果が返されます。変数の後に置かれた場合は、変数が 先に 返されてから、インクリメント/デクリメントの操作が行われます。

例えば、以下のようになります。

$apples = 10;
for ($i = 0; $i < 10; ++$i) {
    echo 'I have ' . $apples-- . " apples. I just ate one.\n";
}

実例

上のケースでは ++$i を使っていますが、これは高速だからです。i++` でも結果は同じです。

プリインクリメントは、実際に変数をインクリメントして、その後に結果を「返す」ので、少しだけ速いです。ポストインクリメントでは、特別な変数を作成し、そこに最初の変数の値をコピーし、最初の変数が使用された後にのみ、その値を2番目の変数に置き換えます。

しかし、$apples--を使用しなければなりません。なぜなら、まず、現在のリンゴの数を表示し、その後、そこから1を引きたいからです。

PHPでは文字を増やすこともできます。

$i = "a";
while ($i < "c") {
    echo $i++;
}

zに到達すると、次はaa` となり、以下同様です。

文字変数はインクリメントはできてもデクリメントはできませんし、プレーンなASCII文字(a-zとA-Z)しかサポートしていないことに注意してください。


スタックオーバーフローの投稿:

解説 (12)

ビットワイズ演算子

ビットとは?ビットとは、1か0かを表すもので、基本的にはOFF(0)とON(1)を表します。

1バイトとは何ですか?バイトは8ビットで構成されており、バイトの最大値は255で、これはすべてのビットが設定されていることを意味します。なぜバイトの最大値が255なのかを見てみましょう。

-------------------------------------------
|      1 Byte ( 8 bits )                  |
-------------------------------------------
|Place Value | 128| 64| 32| 16| 8| 4| 2| 1|     
-------------------------------------------

この1バイトの表現

1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255 (1バイト)

理解を深めるためにいくつかの例を挙げます

「AND」演算子です。&

$a =  9;
$b = 10;
echo $a & $b;

これは、数字の8を出力します。なぜでしょう?先ほどの表の例で見てみましょう。

-------------------------------------------
|      1 Byte ( 8 bits )                  |
-------------------------------------------
|Place Value | 128| 64| 32| 16| 8| 4| 2| 1|     
-------------------------------------------
|      $a    |   0|  0|  0|  0| 1| 0| 0| 1|    
-------------------------------------------
|      $b    |   0|  0|  0|  0| 1| 0| 1| 0|
------------------------------------------- 
|      &     |   0|  0|  0|  0| 1| 0| 0| 0|
------------------------------------------- 

この表から、両者が共有するビットは8ビットだけであることがわかります。

**2つ目の例

$a =  36;
$b = 103;
echo $a & $b; // This would output the number 36.
$a = 00100100
$b = 01100111

共有されている2つのビットは32と4で、これらを足すと36になります。

「Or」演算子です。|

となります。
$a =  9;
$b = 10;
echo $a | $b;

これは、数字の11を出力します。なぜですか?

-------------------------------------------
|      1 Byte ( 8 bits )                  |
-------------------------------------------
|Place Value | 128| 64| 32| 16| 8| 4| 2| 1|     
-------------------------------------------
|      $a    |   0|  0|  0|  0| 1| 0| 0| 1|    
-------------------------------------------
|      $b    |   0|  0|  0|  0| 1| 0| 1| 0|
------------------------------------------- 
|      |     |   0|  0|  0|  0| 1| 0| 1| 1|
-------------------------------------------

8、2、1の列に3つのビットが設定されていることに気づくでしょう。それらを足すと8+2+1=11.

解説 (4)
Syntax    Name             Description

x == y    Equality         True if x and y have the same key/value pairs
x != y    Inequality       True if x is not equal to y
x === y   Identity         True if x and y have the same key/value pairs
                            in the same order and of the same types
x !== y   Non-identity     True if x is not identical to y
++ x      Pre-increment    Increments x by one, then returns x
x ++      Post-increment   Returns x, then increments x by one
-- x      Pre-decrement    Decrements x by one, then returns x
x --      Post-decrement   Returns x, then decrements x by one
x and y   And              True if both x and y are true x=6 y=3
                           (x < 10 and y > 1) returns true 
x && y    And              True if both x and y are true x=6 y=3
                           (x < 10 && y > 1) returns true
a . b     Concatenation    Concatenate two strings: "Hi" . "Ha"
解説 (0)