定義済関数
PHPには、あらかじめ定義されている便利な関数(function)がたくさんあります。
では、関数とは一体何なのでしょうか?関数(function)には、『機能』という意味があります。
前ページでは、var_dump()関数を使用してみました。var_dump()関数は、変数の情報を出力する『機能』を持っています。また、これまでに何度もechoを使って文字列を出力してきました。echoは、実際には関数ではありませんが、文字列などの値を出力する『機能』を持っているため、関数のようなものとも言えます。
このようなある特定の『機能』を持ったものが関数です。PHPには、あらかじめ用意されている関数が多くあります。特に、ウェブやメール等に関する関数が充実しているのはPHPならではといえるでしょう。
これらの関数をすべて覚えていくのはあまりに非効率的ですので、知らない、あるいは、あやしい関数に出会ったら本家(php.net)のマニュアルを参照してください。今後、このサイトでも定義済みの関数を使用していく予定です。できる限り、使用している関数については説明しようと思いますが、不明な点はマニュアルを参照してください。
定義済み関数を使ってみる
ともかく、何かの定義済み関数を使ってみましょう。本家のマニュアルを参照しながら、関数の使い方とマニュアルの見方を説明します。
まずは、strlen()関数を使ってみましょう。php.netのサイトで検索して該当するページに移動するか、関数リファレンスからstrlen()のページを開いて、参照しながら見てください。(http://www.php.net/manual/ja/function.strlen.php)
strlen()は、文字列の数をカウントします。以下は使用例です。
strlen_example.php
<?php
// 変数に値(文字列)を代入
$word = "Hello World\n";
// strlen()で文字列をカウントし、$lengthに代入
$length = strlen($word);
// $length(文字の数)を出力
echo $length;
strlen_example.phpの実行結果
12
『Hello World\n』の文字数12が表示されます(スペースも改行もカウントされます)。
マニュアルには、以下のような説明があります。
int strlen ( string $string )
まず、最初のintですが、これは『何の型が得られるのか』という意味で、関数としての処理で得られる値の型です。strlen()は文字数をカウントするのでint型(整数型)となります。このように関数で得られた値を『戻り値』と呼びます。また、値が得られることを『返す』という表現で表すこともあります。例えば、『strlen()関数はint型を返す』といった風にです。
PHPのマニュアルには、『mixed』という型が出現することがあります。これは、説明のために便宜的に使用されている型で、どのような型が返されるのか決まっていないことを表しています。例えば、戻り値はint型かもしれないし、float型かもしれないということです。
次に関数名『strlen』が続き、『()』内に処理すべき値を指定するようになっています。
『()』内の最初のstringは、指定する値の型を表しています。strlen()は文字の数をカウントする関数ですから、string型(文字列型)を指定するわけです。続く$stringが実際に指定する値になります。例では、$wordを指定しました。この指定する値のことを『引数』あるいは、『パラメータ』と呼びます。尚、引数には、直接値を指定しても構いません。
<?php
// strlen()で文字列をカウントし、$lengthに代入
$length = strlen("Hello World\n");
// $length(文字の数)を出力
echo $length;
また、次のようにechoに続けての記述も可能です。
<?php
// strlen()で文字列をカウントして出力
echo strlen("Hello World\n");
もうひとつ、定義済み関数を使ってみましょう。使うのはstr_repeat()関数です。str_repeat()関数は、指定した文字列を指定した回数繰り返した値を返します。
str_repeat_example.php
<?php
// 変数に値(文字列)を代入
$word = '-';
// 10回繰り返した文字列を$stringに代入
$string = str_repeat($word, 10);
// $stringを出力
echo $string;
str_repeat_example.phpの実行結果
----------
PHPマニュアルには、次のように説明があります。
string str_repeat ( string $input, int $multiplier )
まず、str_repeat()は文字列型を返すことが分かります。そして引数は2つ指定し、最初の引数が文字列型で、繰り返す文字を指定します。2番目の引数は整数型で繰り返す回数を指定することになります。
PHPマニュアルの関数の見方については、PHPマニュアルの『関数の定義(プロトタイプ)を読むには』(http://jp2.php.net/manual/ja/about.prototypes.php)も参考にしてみてください。
PHPのマニュアルには、定義済みの関数が網羅されており、使用例が掲載されているものも多数あります。関数で遊んでみるのも楽しいと思います。