【 PHP 】PHP8に入門してみた 149日目 PHPの基本 ( ユーザー定義関数 別のファイルのスクリプトを読み込む)

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

ユーザー定義関数

別のファイルに定義された関数を使う 外部化

自身で作成した関数は別のファイルにまとめておき、いつでも使えるようにしておきたいものです。

別のファイル(A.php)に定義された関数を呼び出すにはまずA.phpを読み込むことから始まります。

PHPで別のファイルを読み込むには、require, include, require_once, include_once命令があります。

require(とrequire_once)命令はA.phpが見つからなかった場合にエラーとなります。

一方、include(とinclude_once)命令は警告だけで処理は継続されます。

xxxx_once命令は「1度だけ」読み込みます。

たとえばinclude_once A.phpが100回実装されていても読み込むは1回だけです。

included.php

<?php
function getTriangleArea(float $base, float $height)
{
    return $base * $height / 2;
}

hello.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
    require_once 'included.php';

    $area = getTriangleArea(8, 10);
    print "三角形の面積は{$area}です";

    ?>
</body>

</html>

 

メモ

できるだけxxxx_onceを使用して循環呼び出しを防ぐ。

 

大事なこと

相対パスは起動スクリプトが基点!!!

なので、require_once __DIR__.'/func2.php';のように記述するそうです。

これが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
    require_once __DIR__ . '/included.php';

    $area = getTriangleArea(8, 10);
    print "三角形の面積は{$area}です";

    ?>
</body>

</html>

PHPPHP

Posted by raika@blog