PHP 関数


PHPの真の力はその関数に由来します。

PHPには、1000以上の組み込み関数が用意されています。


PHP組み込み関数

すべての配列関数の完全なリファレンスマニュアルと例を確認するには、当サイトのPHPリファレンスマニュアル。


PHP関数

この章では、独自の関数を作成する方法について説明します。

ページの読み込み時にスクリプトを実行するには、それを関数内に配置できます。

関数は、関数を呼び出すことによって実行されます。

関数はページの任意の場所で呼び出すことができます。


PHP関数の作成

関数は、関数を呼び出すことによって実行されます。

構文

<?php function functionName() { //実行するコード } ?>

PHP関数のガイドライン:

  • 関数名はその機能を示すものにする必要があります
  • 関数名は文字またはアンダースコアで始まります(数字で始めることはできません)

例

呼び出されると私の名前を出力する簡単な関数:

例

<?php function writeName() { echo "Kai Jim Refsnes"; } echo "My name is "; writeName(); ?>

出力:

My name is Kai Jim Refsnes


PHP関数 - パラメータの追加

関数により多くの機能を追加するために、パラメータを追加できます。パラメータは変数のようなものです。

パラメータは関数名の後の括弧内に指定します。

例1

次の例では、異なる名前を出力しますが、姓は同じです:

例

<?php function writeName($fname) { echo $fname . " Refsnes.<br>"; } echo "My name is "; writeName("Kai Jim"); echo "My sister's name is "; writeName("Hege"); echo "My brother's name is "; writeName("Stale"); ?>

出力:

My name is Kai Jim Refsnes.
My sister's name is Hege Refsnes.
My brother's name is Stale Refsnes.

例2

次の関数には2つのパラメータがあります:

例

<?php function writeName($fname,$punctuation) { echo $fname . " Refsnes" . $punctuation . "<br>"; } echo "My name is "; writeName("Kai Jim","."); echo "My sister's name is "; writeName("Hege","!"); echo "My brother's name is "; writeName("Ståle","?"); ?>

出力:

My name is Kai Jim Refsnes.
My sister's name is Hege Refsnes!
My brother's name is Ståle Refsnes?

PHP関数 - 戻り値

関数に値を返させるには、return文を使用します。

例

<?php function add($x,$y) { $total=$x+$y; return $total; } echo "1 + 16 = " . add(1,16); ?>

出力:

1 + 16 = 17

PHP変数関数

変数関数とは、PHPにおいて、変数を関数名として呼び出す関数のことです。

変数関数を使用すると、実行時にどの関数を呼び出すかを動的に決定できます。

例

<?php
function foo() {
    echo "In foo()<br />\n";
}

function bar($arg = '')
{
    echo "In bar(); argument was '$arg'.<br />\n";
}

// echoを使用したラッパー関数
function echoit($string)
{
    echo $string;
}

$func = 'foo';
$func();        // foo() を呼び出す

$func = 'bar';
$func('test');  // bar() を呼び出す

$func = 'echoit';
$func('test');  // echoit() を呼び出す
?>

変数関数の構文を使用して、オブジェクトのメソッドを呼び出すこともできます。

例

<?php
class Foo
{
    function Variable()
    {
        $name = 'Bar';
        $this->$name(); // Bar() メソッドを呼び出す
    }

    function Bar()
    {
        echo "This is Bar";
    }
}

$foo = new Foo();
$funcname = "Variable";
$foo->$funcname();  // $foo->Variable() を呼び出す

?>
その他の拡張