PHPの真の力は、その機能にあります。
PHPには1000を超える組み込み関数があり、さらに独自のカスタム関数を作成できます。
PHP組み込み関数
PHPには、特定のタスクを実行するためにスクリプト内から直接呼び出すことができる1000を超える組み込み関数があります。
PHP 組み込み関数 の完全な概要については、PHPリファレンスをご覧ください。
PHP ユーザー定義関数
組み込みのPHP関数に加えて、独自の関数を作成することができます。
関数は、プログラム内で繰り返し使用できるステートメントのブロックです。
ページの読み込み時に関数が自動的に実行されることはありません。
関数は、関数の呼び出しによって実行されます。
PHPでユーザー定義関数を作成する
ユーザー定義関数宣言は単語で始まりますfunction:
構文
<div> function <i>functionName</i>() {
<i> code to be executed</i>;
}</div>
注: 関数名は文字またはアンダースコアで始まる必要があります。関数名は大文字と小文字を区別しません。
ヒント: 関数の機能を反映した名前を関数に付けてください。
以下の例では、「writeMsg()」という名前の関数を作成します。左中括弧 ( { ) は関数コードの開始を示し、右中括弧 ( } ) は関数の終わりを示します。関数は「Hello world!」を出力します。関数を呼び出すには、その名前に続けて括弧 () を記述します。
例
<?php
function writeMsg() {
echo "Hello world!";
}
writeMsg(); // call the function
?>
自分で試してみる »
PHP関数の引数
情報は、引数を介して関数に渡すことができます。引数は変数と同じです。
引数は、関数名の後の括弧内に指定します。コンマで区切るだけで、必要な数の引数を追加できます。
次の例には、1つの引数($fname)を持つ関数があります。familyName() 関数が呼び出されると、名前 (Janiなど)も渡されます。この名前は関数内で使用され、いくつかの異なる名を出力しますが、姓は同じです。
例
<?php
function familyName($fname) {
echo "$fname Refsnes.<br>";
}
familyName("Jani");
familyName("Hege");
familyName("Stale");
familyName("Kai Jim");
familyName("Borge");
?>
自分で試してみる »
次の例には、2つの引数($fnameと$year)を持つ関数があります。
例
<?php
function familyName($fname, $year) {
echo "$fname Refsnes. Born in $year <br>";
}
familyName("Hege", "1975");
familyName("Stale", "1978");
familyName("Kai Jim", "1983");
?>
自分で試してみる »
PHPは緩やかに型付けされた言語です。
上記の例では、変数のデータ型をPHPに伝える必要がないことに注意してください。
PHPは、その値に応じて、データ型を変数に自動的に関連付けます。データ型は厳密には設定されていないため、整数に文字列を追加するなどの操作をエラーなしで行うことができます。
PHP7では、型宣言が追加されました。これにより、関数を宣言するときに期待されるデータ型を指定するオプションが提供され、strictデータ型が一致しない場合、「致命的なエラー」がスローされます。
次の例では、strict使用せずに数値と文字列の両方を関数に送信しようとしています。:
例
<?php
function addNumbers(int $a, int $b) {
return $a + $b;
}
echo addNumbers(5, "5 days");
// since strict is NOT enabled "5 days" is changed to int(5), and it will return 10
?>
自分で試してみる »
strictを指定するにはdeclare(strict_types=1);とします。これは、PHPファイルの最初の行にある必要があります。
次の例では、数値と文字列の両方を関数に送信しようとしていますが、ここではstrict宣言を追加します。:
例
<?php declare(strict_types=1); // strict requirement
function addNumbers(int $a, int $b) {
return $a + $b;
}
echo addNumbers(5, "5 days");
// since strict is enabled and "5 days" is not an integer, an error will be thrown
?>
自分で試してみる »
strict宣言は、物事を意図した方法で使用することを強制します。
PHPデフォルトの引数値
次の例は、デフォルトパラメータの使用方法を示しています。関数setHeight()を引数なしで呼び出すと、デフォルト値が引数として取られます。
例
<?php declare(strict_types=1); // strict requirement
function setHeight(int $minheight = 50) {
echo "The height is : $minheight <br>";
}
setHeight(350);
setHeight(); // will use the default value of 50
setHeight(135);
setHeight(80);
?>
自分で試してみる »
PHP関数 - 戻り値
関数が値を返せるようにするには、return文を使用します。:
例
<?php declare(strict_types=1); // strict requirement
function sum(int $x, int $y) {
$z = $x + $y;
return $z;
}
echo "5 + 10 = " . sum(5, 10) . "<br>";
echo "7 + 13 = " . sum(7, 13) . "<br>";
echo "2 + 4 = " . sum(2, 4);
?>
自分で試してみる »
PHP戻り型宣言
PHP7は、return文の型宣言もサポートしています。関数引数の型宣言と同様に、厳密な要件を有効にすることで、型の不一致で「致命的なエラー」がスローされます。
関数returnの型を宣言するには、関数を宣言するときに、コロン (:) とその型を開始波括弧 ({)の直前に追加する。
次の例では、関数returnの型を指定しています。
例
<?php declare(strict_types=1); // strict requirement
function addNumbers(float $a, float $b) : float {
return $a + $b;
}
echo addNumbers(1.2, 5.2);
?>
自分で試してみる »
引数の型とは異なる戻り値の型を指定できますが、戻り値が正しい型であることを確認してください。
例
<?php declare(strict_types=1); // strict requirement
function addNumbers(float $a, float $b) : int {
return (int)($a + $b);
}
echo addNumbers(1.2, 5.2);
?>
自分で試してみる »
参照による引数の受け渡し
PHPでは、通常、引数は値で渡されます。つまり、値のコピーが関数で使用され、関数に渡された変数は変更できません。
関数の引数が参照によって渡される場合、引数を変更すると、渡された変数も変更されます。関数の引数を参照にするには、&演算子が使用されます:
例
変数を更新するには、参照渡し引数を使用します。
<?php
function add_five(&$value) {
$value += 5;
}
$num = 2;
add_five($num);
echo $num;
?>
自分で試してみる »