【 PHP 】PHP8に入門してみた 60日目 PHPの基本 ( 演算子 加算子と減算子 )

2022年10月16日

PHP8技術者認定初級試験 が始まるようなので 試験に向けて (できるだけ)勉強しようと思います! 使用する書籍は独習PHP 第4版(山田 祥寛)|翔泳社の本 (shoeisha.co.jp) となります。

演算子

インクリメントとデクリメント

加算子減算子インクリメントデクリメントでよく知られていると思います。

この演算子は、指定したオペランドに対し+1(もしくは)-1を加算する特殊な演算子です。
1を加算・減算するというだけでも特殊なのですが、この演算子の「置き場所」によって計算のタイミングが異なるという点も特殊である点だと思います。

<!DOCTYPE html>
<html lang="ja">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PHPの基本</title>
</head>

<body>
    <?php
    // print命令は指定された文字列を表示するための命令です。
    $msg = 'こんにちは、変数の世界! <br />';

    print $msg;
    print 'こんにちは、皆さん! ';

    print '<br />';

    $x = 1;
    $y = $x++;      // 後置(こうち?)
    print $x;
    print '<br />';
    print $y;
    print '<br />';
    $x = 1;
    $y = ++$x;      // 前置(ぜんち?)
    print $x;
    print '<br />';
    print $y;
    print '<br />';
    ?>
</body>

</html>

以下のように加算のタイミングが異なります。

マジカル(!?)インクリメント

加算子にはさらに特殊な使い方があります。
マジカルインクリメントというそうです。

  • 1桁目が数字ならば、その数字に対して+1を行う
  • 1桁目がアルファベットなら、そのアルファベット文字の次の文字に「送る」
  • 1桁目が数字・アルファベットの最後の値(9, z)ならば桁上がりを行う!
<!DOCTYPE html>
<html lang="ja">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PHPの基本</title>
</head>

<body>
    <?php
    // print命令は指定された文字列を表示するための命令です。
    $msg = 'こんにちは、変数の世界! <br />';

    print $msg;
    print 'こんにちは、皆さん! ';

    print '<br />';

    $x = 'X';
    print $x++;
    print '<br />';
    print $x++;
    print '<br />';

    $x = 'AZZZ8';
    print $x++;
    print '<br />';
    print $x++;
    print '<br />';
    ?>
</body>

</html>

まさにマジカル😅
連番処理を行うときに威力を発揮しそうですね。

 

メモ

マジカル!それは魔法の世界。

ログファイルを生成するさいにマジカルインクリメントが便利そうですが知らない人が実装を見ると「???」になりそうです。

PHPPHP

Posted by raika@blog