カテゴリー

キーワード

 
> 【PHP】自作関数とは?(ユー...

【PHP】自作関数とは?(ユーザー定義関数とは?)作り方を紹介します


2015 年 9 月 2 日 投稿    view: 11074
タグ:
このエントリーをはてなブックマークに追加

西の空 海 沈む夕日

こんにちは、WEBマーケティング部の杉尾です。


今回は、PHP 自作関数(ユーザー定義関数)の簡単な作り方を紹介します

ページ下部で具体例を示していますので、参考にしてください。



ユーザー定義関数とは

PHPのプログラムを書いていると、何度も同じ処理をするということに出くわすときがあります。


同じ処理を書くのはソースの無駄、時間の無駄ですから、プログラマーとしては避けたいですよね。


そういうときに、よく出てくる処理をまとめておいて、いつでも呼び出せるようにしておくために作るのが自作関数 = ユーザー定義関数です。


ユーザー定義関数の使い方

使い方はとても簡単です。


関数を定義して、それをページ内で呼び出すだけです。

ユーザー定義関数の定義の仕方


<?PHP
function 関数名 ( 引数1, 引数2, ... ){
    処理1;
    処理2;
}
?>

当然ですが、PHPソース内で定義してください。


引数は複数指定することができます。


詳しい使い方は、後で具体例を示しますのでご覧ください。


ユーザー定義関数の呼び出し方

ページ内でPHPを書き、関数を呼び出します。


書き方はこんな感じです。


<?PHP
    関数名( 引数1, 引数2, ... );
?>

これも後で示す具体例をご覧いただくと、より理解が深まると思います。


ユーザー定義関数、戻り値とは


関数に値を渡すときは上述した引数を使いますが、その逆に、関数で処理を行った結果を呼び出し元に返すときには『戻り値』を使います。


具体的には、return文でそれを指定します。


書式は、


<?PHP
return 戻り値;
?>

です。


これは関数内で書いてください。


具体例はページ下部にあります。


戻り値の注意点

・return文が関数内で実行され、戻り値を返すと、処理はそこで終了します。


・戻り値として返すことのできる値は一つのみです。ですが、配列を指定できますので、複数の値を返すことも可能です


ユーザー定義関数の注意点

・関数は複数定義することができるので、識別するために名前をつけてください。


・関数名に仕様できる文字列は、アルファベット、もしくはアンダーバーで始め、次ににアルファベット、アンダーバー、数字を書いてください。


・関数名に大文字と小文字の区別はありません。(例えば、ANSWERとanswerは同じ関数名です)

ユーザー定義関数の具体例

基本的な使い方の具体例をいくつか挙げます。


理解の一助となれば幸いです。


最も単純な使い方

<?PHP
function morning01() {
    echo "、おはよう";
}
?>
<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="UTF-8">
        <title>自作関数テスト1</title>
    </head>
    <body>

        山田さん<?PHP morning01();?>

    </body>
</html>

関数の実行結果

山田さん、おはよう

関数に引数を渡す使い方

<?PHP
function morning02($name) {
    echo $name."、おはよう";
}
?>
<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="UTF-8">
        <title>自作関数テスト2</title>
    </head>
    <body>

        <?PHP morning02(山田さん);?>

    </body>
</html>

関数の実行結果

山田さん、おはよう

関数に引数を複数渡す使い方2

<?PHP
function morning03($name1,$name2) {
    echo $name1."、".$name2."、おはよう";
}
?>
<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="UTF-8">
        <title>自作関数テスト3</title>
    </head>
    <body>

        <?PHP morning03("山田さん","田中さん");?>

    </body>
</html>

関数の実行結果

山田さん、田中さん、おはよう

関数に引数を複数渡す使い方3(引数に変数を使う)

上記はこういう書き方もできます。


<?PHP
function morning04($name1,$name2) {
    echo $name1."、".$name2."、おはよう";
}
?>

<html lang="ja">
    <head>
        <meta charset="UTF-8">
        <title>自作関数テスト4</title>
    </head>
    <body>

        <?PHP

        $who01 = "山田さん";
        $who02 = "田中さん";

        morning04($who01,$who02);

        ?>

    </body>
</html>

関数の実行結果

山田さん、田中さん、おはよう

形としては大きく変わっていませんが、渡す値を変数にしておけば、他の処理と組み合わせて使うときに便利です。


戻り値を使う場合


<?PHP
function calculate($num01, $num02){
  $calc = $num01 + $num02;
  return $calc;
}
?>
<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="UTF-8">
        <title>自作関数テスト6</title>
    </head>
    <body>
        <?PHP
            $calc = calculate(2, 5);

            echo '計算の結果は'.$calc.'です';
            echo "<br>";
            echo '計算の結果は'.calculate(6, 5).'です';
        ?>
    </body>
</html>

関数の実行結果

計算の結果は7です。
計算の結果は11です。

関数で処理した結果を呼び出し元に返しています。


戻り値を使った場合と使っていない場合の両方を書いています。


15行目で戻り値を変数に入れ、保存しています。


その他、実践例

処理の部分に判定を入れてみます。
より実践的な形ですね。

<?PHP
function keihi($subject,$price) {
    
    if($price > 100000) {
        $kekka = "オーバー";
    } else {
        $kekka = "通り";
    }

    echo $subject."は予算".$kekka."です。";

}
?>
<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="UTF-8">
        <title>自作関数テスト5</title>
    </head>
    <body>

        <?PHP

        $kamoku = "広告宣伝費";
        $kingaku = "150000";

        keihi($kamoku,$kingaku);

        ?>

    </body>
</html>

関数の実行結果

広告宣伝費は予算オーバーです。

実際にはこんな計算を関数にすることはないでしょうが、一例としてご覧ください。


まとめ

具体例を中心にお送りしましたが、いかがでしたでしょうか?


基本的なことさえ抑えれば、あとは関数内に必要な処理を書くだけで様々な使い方ができます。


色々試してみてください。



最後までお読みいただき、ありがとうございました。

 

 

 

杉尾成行 顔写真

この記事を書いた人

杉尾成行

株式会社SceneLive Webマーケティング部長

ウェブマーケティングコンサルタントとして、クライアントのウェブ集客をサポートしている。
また、ウェブ制作、システム制作にも携わり、数々のサイトを手掛けている。
当ホームページ、ブログシステムも制作。

前職:ライター、小説家

ウェブマーケティングコンサルタントとしてのブログ
ウェブ参謀

個人ブログ(オリジナル小説他) ⇒ 35deFA

 


カテゴリー

タグ
この記事が気に入りましたら、是非、他の方にもシェアしてください。
このエントリーをはてなブックマークに追加
関連記事