【 PHP 】PHP8に入門してみた 159日目 PHPの基本 ( ユーザー定義関数 参照渡し)

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

ユーザー定義関数

「参照」を渡す!

PHPのプログラムが実行されるとき、変数の値はメモリ上で管理されます。

メモリは値を箱にしまって管理しています。

箱には番号が振ってあり、これを「アドレス」と呼んでいます。

いままでは「箱の中身」をコピーして関数に渡していました。

「参照を渡す」というのは「箱の中身」をコピーして渡すのではなく、「アドレス」をコピーして関数に渡す行為を言います。

何がすごいのか?

参照を渡すと なんと呼び出し元の変数に影響を与えるのです!

参照を渡す方法は、仮引数に&を付けるだけというお手軽記述となっています。

 

<!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 increment(int $num): int
    {
        $num++;
        return $num;
    }

    $value = 10;
    print increment($value) . "<br />";
    print $value . "<br />";


    // 参照を渡しています。
    function increment2(int &$num): int
    {
        $num++;
        return $num;
    }

    $value2 = 100;
    print increment2($value2) . "<br />";
    print $value2 . "!!!!" . "<br />";   // この値に注目!
    ?>
</body>

</html>

メモ

インスタンスとか、デフォルト参照私ですかね?

 

PHPPHP

Posted by raika@blog