加算子/減算子PHP は 加算子/減算子(前置・後置ともに)をサポートします。 これらの単項演算子は、値をインクリメント(ひとつ増や)したり、デクリメント(ひとつ減ら)したりできます。
以下に簡単なスクリプトの例を示します:
上の例の出力は以下となります。 後置加算: int(5) int(6) 前置加算: int(6) int(6) 後置減算: int(5) int(4) 前置減算: int(4) int(4) 警告
bool 型の値に、加算子や減算子を適用しても何も起こりません。
PHP 8.3.0 以降では、この操作に対して
null 型の値に、減算子を適用しても何も起こりません。
PHP 8.3.0 以降では、この操作に対して
数値形式の文字列 でない文字列に対して、減算子を適用しても何も起こりません。
PHP 8.3.0 以降では、この操作に対して
Perl 風の、文字列をインクリメントする機能警告
この機能は、PHP 8.3.0 以降は soft-deprecated 扱い
(
PHP では、数値形式の文字列 でない文字列をインクリメントすることも可能です。この場合、文字列は英数字からなる、ASCII 文字列である必要があり、文字を次の文字に変更します。文字が 例1 Perl 風に、文字列をインクリメントする例
上の例の出力は以下となります。 == アルファベットからなる文字列 == X Y Z AA AB AC == 英数字からなる文字列 == A9 B0 B1 B2 B3 B4 A09 A10 A11 A12 A13 A14 警告
英数字からなる文字列が、数値形式の文字列 として解釈できる場合、その値は int または float にキャストされます。この挙動は、文字列が科学的記法で書かれた浮動小数点数の場合に特に問題になります。str_increment を使えば、こうした暗黙の型変換の影響を受けません。 例2 英数字が浮動小数点数にキャストされる挙動
上の例の出力は以下となります。 string(3) "5e0" float(6)
上記の出力になる理由は、 |