「PHP/入門/関数とは」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
→‎関数の引数と戻値: PHPの関数は、0個以上の引数を渡し1つの戻値を返すことができます。 可変長引数や引数のディフォルト値、またキーワード引数もサポートしています。
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
→‎ユーザー定義関数: PHPでは、ひとまとまりの処理に名前をつけ、あとから何度も呼出せるようにする仕組みがあります。 これを関数(かんすう;【英】Function)といいます。 関数を作ることを、「関数定義」関数を使うことを「関数呼出し」といいます。 PHPには、すでに有用な関数が多数用意されており、これらを「組込み関数」と呼びます。 プログラマーは、組込み関数・文・式を組合わせて新しい関数を定義することができます。 新しく定義された関数を「ユーザー定義関数」と呼びます。
タグ: 2017年版ソースエディター
1 行
== 基本 ==
=== PHPにおけるユーザー定義関数 ===
PHPにかぎらずプログラミング言語全般において一般に「関数」(かんすう)とは、行いたい処理をひとまとまりの処理して名前をつけ、あとでそれを簡単に実行できから何度も呼出せるようにするためのもので仕組みがります
これを'''関数'''(かんすう;【英】Function)といいます。
関数を作ることを、「関数定義」関数を使うことを「関数呼出し」といいます。
 
PHPには、あらかじめ、よく使われるすでに有用な関数がいくつか多数用意されており、これらを「込まれているが、それとは別に、ユーザーが独自の関数を定義」と呼びまることもできる
 
本ペプログラマジで以降特にこと組込み関数・文・式を組合らなせて新しかぎり、「関数」と言った場合は、ユーザー定義関数のすることあるときま
新しく定義された関数を「ユーザー定義関数」と呼びます。
 
;ユーザー定義関数の例(1):<syntaxhighlight lang=php>
 
;ユーザー定義関数の例:<syntaxhighlight lang=php>
<?php
function f() {
echo "abc", PHP_EOL;
echo "123", PHP_EOL;
 
f();
f();
f();
 
function f(){
print "a<br>";
print "b<br>";
?>
</syntaxhighlight>
:書式;実行結果:<syntaxhighlight lang=phptext>
 
abc
ユーザー定義関数は、上記のように使われる。
123
 
abc
 
123
上記コードを実行すると、
abc
 
123
a
</syntaxhighlight>
b
: ユーザー定義関数 <code>f()</code>を定義し、3回呼出しています。
 
:関数定義の書式:<syntaxhighlight lang=php>
のように表示される。
function 関数名(引数リスト) {
 
// 処理
;関数の使用法
関数をユーザーが定義するには、function 宣言を使い、波カッコ { } の中に処理をかく。
 
:書式:<syntaxhighlight lang=php>
function 関数名(引数) {
// させたい処理をカッコ内に書く
}
</syntaxhighlight>
 
上のプログラムは、次のようにもかけます。
PHPで関数を実行させたい場合には、phpタグ内で関数の名前(上記コードでは「f」が名前)を書くだけで、{ }カッコ内の処理を行ってくれる。
;ユーザー定義関数の例(2):<syntaxhighlight lang=php>
<?php
f();
f();
f();
 
function f() {
「引数」(ひきすう)とは、関数が呼び出されたときに、呼び出し元から受け取る情報のことです。
echo "abc", PHP_EOL;
echo "123", PHP_EOL;
}
 
?>
(ちなみに、PHPはコードをすべてメモリに読み込んでから実行するため、関数をプログラムのどこに書いても
</syntaxhighlight>
関数を使うことができる。)
: 関数の定義の前に、関数を呼出しを行っていますが、PHPの場合は「関数の前方参照」は処理系が自動的に解決するので、前方参照のための関数宣言は必要ありません(逆にできません)。
:: 前方参照は処理系が解決してくれますが、'''人間が'''読むときには前方参照が多いと(定義を見て)引数/戻値やざっくりした処理を理解する前に関数呼出しが来てしまうと読解しづらいので、なるべく定義→呼出しの順になるようにすると良いでしょう。
:: 正しく動くこと、、だけでなく読みやすさも大切です。
 
=== 値を返す関数 ===