【 PHP 】PHP8に入門してみた 155日目 PHPの基本 ( ユーザー定義関数 PHP流の静的変数)

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

ユーザー定義関数

Javaユーザから見るとちょっと面白い 静的変数

Javaでもおなじみの静的変数。クラス定義の直下に実装してみんなで使いましょ!という感じでした。

PHPでは静的変数は「関数で値を保持するための変数」となるようです。

実装はstatic命令を使います。関数内でstatic命令を使って変数宣言すれば

関数の処理が終わっても値は保持され、次の呼び出し時に参照・更新可能です。

コルーチンみたいな考え方でいいのかな?

<!DOCTYPE html>

<html>

<head>
    <meta charset="UTF-8" />
    <title>こんにちは!</title>
    <!-- Bootstrapを有効化 -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" />
</head>

<body>
    <?php
    function checkStatic(): int
    {
        static $x = 0;
        return ++$x;
    }

    print checkStatic() . "<br />";
    print checkStatic() . "<br />";
    print $x; // でも関数外では使えないという・・・。
    ?>
</body>

</html>

 

メモ

かなり画期的!

でもそれってオブジェクトのインスタンスでよいのでは・・・。

そういえばPHPはもともとクラスの概念が無かったのでしたかね。その名残でしょうか。

PHPPHP

Posted by raika@blog