【 PHP 】PHP8に入門してみた 168日目 PHPの基本 ( ユーザー定義関数 アロー関数)

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

ユーザー定義関数

親スコープの変数を自動引継ぎ アロー関数

PHPの7.4から無名関数の新しい仕掛け!アロー関数というものが登場しました。

fn(仮引数、 ...) => 関数の実装みたいな感じで変えるそうです。

最大の特徴は親スコープの変数を暗黙的に利用できること!

言い換えるとuse使わなくても親スコープの変数を使えるということです。

<!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
    $keys = [
        '十', '百', '千', '万', '億', '兆', '京', '垓', '秭', '穣', '溝', '澗',
        '正', '載', '極', '恒河沙', '阿僧祇', '那由他', '不可思議', '無量大数'
    ];

    $data = ['那由他', '京', '垓', '億'];

    usort($data, fn ($a, $b) => array_search($a, $keys) <=> array_search($b, $keys));

    print_r($data);
    ?>
</body>

</html>

メモ

アロー関数しか使わないですよね😊

ただし、アロー関数だと単一の式しか実装できないという弱点があります。

さらに親スコープの変数は「参照オンリー」のようです。

PHPPHP

Posted by raika@blog