DESIGNMAP

関数 - WordPressのためのPHP入門

記事公開日:2015年12月01日

WordPressのためのPHP入門

WordPressのテンプレートをつくるWeb制作者向けのPHP入門講座です。 テンプレート制作に必要なところだけにしぼって、最小限の内容で学んでいきます。

今回学ぶ内容

  • 学習環境の準備
  • 関数の定義、呼び出し、戻り値
  • 引数を関数定義より多くとっての関数呼び出し
  • 引数を関数定義より少なくとっての関数呼び出し(Warningエラー、Noticesエラー)
  • デフォルト引数

学習環境の準備

OSの拡張子を表示する

まずOSの拡張子が表示される設定にします。

次に、Google Chrome、XAMPP、Bracketsのインストールをおこないます。

Google Chromeのインストール

XAMPPのインストール

XAMPPのバージョンは5.6.14(執筆時点での最新バージョン)を使います。

Bracketsのインストール

テキストエディタはBracketsを使っていきます。他のテキストエディタを使う場合、保存する場合文字コードは「BOMなしのutf8」形式で保存してください。

関数を定義して、呼び出してみよう

PHPの入門を関数から始めます。WordPressのテンプレートをつくる作業の大半がWordPressで定義された関数をHTMLに埋め込んでいく作業だからです。

実際に関数を自分で定義して理解していきましょう。

  1. 「xampp」フォルダ内の「htdocs」内に、「php_for_wordpress」というフォルダを新規につくります。その中に「vol1」というフォルダを新規につくります。
  2. Bracketsを起動します。Bracketsで、[ファイル]メニュー→[新規作成]をクリックします。[ファイル]メニュー→[保存]をクリックします。「vol1」フィルダ内に、「sample.php」というファイル名で保存します。
  3. 「sample.php」を以下のようにコードを記述します。保存します。
    <?php
    
    function sum($x, $y) {
        return $x + $y;
    }
    
    ?>
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>関数 - WordPressのためのPHP速習入門</title>
    </head>
    <body>
    <p>
    <?php
    $num = sum(1, 2);
    echo $num;
    ?>
    </p>
    </body>
    </html>
  4. XAMPPのApacheを起動します。今後PHPのコードを実行する場合は、WebサーバーのApacheが起動した状態にする必要があります。PHPはApacheの中で動作するからです。
  5. Google Chromeを起動して、アドレスバーに「http://localhost/php_for_wordpress/vol1/sample.php」と入力してEnterキーを押します。「3」が表示されれば成功です。
  6. コードの一部を変えてみましょう。sample.phpを上書き保存します。
    <p>
    <?php
    $num = sum(2, 3);
    echo $num;
    ?>
  7. Google Chromeのアドレスバーをクリックして、Enterキーを押します。今度は「5」が表示されれば成功です。
  8. コードの一部を変えてみましょう。sample.phpを上書き保存します。
    <p>
    <?php
    $num = sum(2, 3, 4);
    echo $num;
    ?>
  9. Google Chromeのアドレスバーをクリックして、Enterキーを押します。結果はかわらず「5」が表示されます。
  10. コードの一部を変えてみましょう。sample.phpを上書き保存します。
    <p>
    <?php
    $num = sum(2);
    echo $num;
    ?>
  11. Google Chromeのアドレスバーをクリックして、Enterキーを押します。WaringとNoticeの2つのエラーが表示されます。

コードの解説

PHPはHTMLと同じファイルに書くことが可能です。PHPは<?php ?>の間に記述します。文の終わりに;をつけます。

関数とは

関数は再利用できるコードをまとめて名前をつけたものです。function 関数名(引数) {}という形で定義ができます。関数は呼び出す場合は、関数名()という形です。呼び出さないと実行されません。

sum(2, 3)で関数を呼び出すときに、引数をわたしています。2と3が関数の定義側の引数にコピーされます。function sum($x, $y) {2が$xに、3が$yにコピーされて処理されます。

$xは変数とよばれます。値を一時的に保存するものです。PHPでは変数には$マークをつけます。

2と3を実引数、$xと$yを仮引数といいます。

今回のコードを図解で整理しましょう。

関数の戻り値の考え方

理解の鍵は呼び出しているところが、戻り値に置き換わっているところです。function内にはreturnがあります。このreturnの右側が戻り値です。この戻り値は関数を呼び出しているところと置き換わります。

$num = sum(1, 2);は、$num = 3;となるのです。

3は$num変数にコピーされます。=は変数への値のコピーです。=は代入演算子といいます。

echo $num;

echo文は変数の値や値を文字列に変換して、出力する言語要素です。

ここは、

echo sum(1, 2);

と短く書くことも可能です。余計な変数を使う手間が省けます。

引数の数が多い場合はエラーを表示せず無視する

$num = sum(2, 3, 4);

関数に渡している引数の数が多いです。言語によってはエラーになるのですが、PHPの場合はエラーを出さずに余計な引数は無視されます。今回は3番目の引数の4が無視されます。

引数の数が足らない場合はエラーが表示される

sum(2);

この場合は、Warning: Missing argument 2 for sum()Notice: Undefined variable: y

というエラーがでます。エラーは英語なのですが、やさしい英語ですので必ず目を通す習慣をつけてください。2つめの引数が見つかりません、4行目で未定義の変数yがつかわれているという意味です。

エラーはメッセージと原因の行数が表示されます。

WarningとNoticeはエラーを出すもののプログラムを止めない

エラーメッセージをよく見ると、最後に2が表示されています。

WarningとNoticeはエラーを出すもののプログラムを止めません。今回は2が表示されているので、関数内では$yは未定義のまま処理して、処理を継続しているのです。詳しくかくと、$yにはNULLという値が代入されたまま、処理が継続されます。

引数が足らなくてもエラーがでない関数を定義しよう

  1. 「sample.php」を以下のようにコードを修正します。保存します。
    function sum($x, $y = 3) {
        return $x + $y;
    }
  2. 関数を呼び出すコードは、以下のままにしておきます。
    <p>
    <?php
    $num = sum(2);
    echo $num;
    ?>
  3. Google Chromeのアドレスバーをクリックして、Enterキーを押します。「5」が表示されれば成功です。
  4. 「sample.php」を以下のようにコードを修正します。保存します。
    <p>
    <?php
    $num = sum(2, 4);
    echo $num;
    ?>
  5. Google Chromeのアドレスバーをクリックして、Enterキーを押します。「6」が表示されれば成功です。

コードの解説

デフォルト引数という仕組みをつかった関数です。

function sum($x, $y = 3) {と定義することで、引数が1つしか渡されない場合は、$yに3が代入されます。引数が2つ渡された場合は、3は無視されます。

デフォルト引数があると、関数を呼ぶ側は引数を省略して呼び出すことができます。

今回はここまでです。次回に続きます。

↑このページの上に戻る