【 PHP 】PHP8に入門してみた 44日目 PHPの基本 ( 数値リテラルに区切り文字 !? )

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

データ型

数値セパレータ

PHPではバージョン 7.4以降に数値セパレータと呼ばれる数値区切り文字が使用可能になりました。

数値の区切り文字、日本ではよく\10,000,000で使われる,(カンマ)のことです。
PHPでもカンマを区切りで使用したいとことなのですが、残念ながらカンマはすでに別の意味で使用しているようなので(なんだろう?)使用できません。

代わりに_(アンダースコア)を数値の区切り文字として使用できます。

<!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 />';

    $v = 12_34_56;
    print '2桁ごとに区切っても大丈夫!' . $v . '<br />';

    $v = 1_2_3_4;
    print '1桁ごとに区切っても大丈夫!' . $v . '<br />';

    $v = 0b01_11_11;
    print '2進数でも大丈夫!' . $v . '<br />';

    $v = 07_4_0_777;
    print '8進数でも大丈夫!' . $v . '<br />';

    $v = 0xe_888_999;
    print '16進数でも大丈夫!' . $v . '<br />';

    $v = 1.1_5_6;
    print '浮動小数点数でも大丈夫!' . $v . '<br />';

    // 数値セパレータは数値と数値の間にだけ挿入できる特殊な記号です。
    $v = _123_456; // 数値の先頭はダメ
    $v = 123_456_; // 数値の末尾はダメ
    $v = 1._234;   // 小数点の隣とか・・・ダメ
    $v = 0_x99;    // 数値プレフィックスの途中もダメ
    ?>
</body>

</html>

VS Codeでは一度に全部が構文エラー表示になるのではないようです。

最後に構文エラーをすべて削除してブラウザで確認します。

メモ

Java言語に携わった期間が長いのでJavaの話を・・・。

Java言語においてもJava7に数値セパレータが導入されました。

そもそも日本の金額表示で使用される3桁区切り自体、私はうまく読めないので可読性が上がったかどうかわかりません😅

そんなに大きな数値を扱うこともないですし・・・

PHPPHP

Posted by raika@blog