【 PHP 】PHP8に入門してみた 146日目 PHPの基本 ( ユーザー定義関数 型を指定する)

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

ユーザー定義関数

型を指定して変な値を渡せないようにする 型宣言

私はJava言語をメインでお仕事していたので、スクリプト言語の柔軟な使用にムズムズすることがあります。

変数宣言時に型指定もその一つです。Javaでは変数宣言時に必ず変数に代入できる型を指定しなければいけません。

(varの登場で状況はちょっと違うかもしれません。)

Pythonでは型を指定できますが、あくまでも「ヒント」であり型を強制するものではありませんでした。

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 getTriangleArea(float $base, float $height): float
    {
        return $base * $height / 2;
    }

    $area = getTriangleArea(8, 'x');
    print "三角形の面積は{$area}です。";
    ?>
</body>

</html>


'x'の部分は怒られました。しかし'10'のは問題ありません。

もっと厳密に型を守る場合はdeclare(strict_types=1);というおまじないを実装するようです。

<?php

declare(strict_types=1);
?>
<!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 getTriangleArea(float $base, float $height): float
    {
        return $base * $height / 2;
    }


    $area = getTriangleArea(8, '10');
    print "三角形の面積は{$area}です。";
    ?>
</body>

</html>

 

メモ

歓喜!

たまに登場していたmixedという型は「なんでも型」のようです。

PHPPHP

Posted by raika@blog