第11章 便利な関数を使おう

11.2 組み込み関数の使い方

PHPに初めから用意されている、組み込み関数を利用することで、わざわざ自分でプログラミングしなくても簡単に結果を得ることができるようになります。プログラムを作成する上で、大変便利な組み込み関数の使い方を本節で学習していきましょう。

11.2.1 関数リファレンスを知っておこう

PHPの組み込み関数はたくさんの種類がありますが、その中からどれを使ったら良いのか、またそれぞれの関数はどのように利用すれば良いのか初めは分かりません。その時に利用するのが、PHP公式ページに用意されている「関数リファレンス」です。
関数リファレンスでは、関数の構文や使い方が説明されています。関数リファレンスを上手に利用することは、プログラミングを上達させる1つのポイントでもあります。
初めての場合難しいかもしれませんが、まずプログラムを行う前や必要な時に
関数リファレンスを見る → 読んで理解する → 実際のプログラムで利用する
を行えるようになることが大切になります。

関数リファレンスは、PHPマニュアルのメインページから「関数リファンレス」というリンクを辿ることで見ることができます。

●PHPマニュアルのURL

http://jp2.php.net/manual/ja/index.php

図 11.2.1:PHPマニュアルの関数リファレンス

11.2.2 関数リファレンスの見かた

関数リファレンスの見かたについて簡単に説明しておきます。まず関数の見かたで覚えておかないといけないキーワードがあり、それは「引数(ひきすう)」「戻り値(もどりち)」です。
引数とは「関数に渡す入力情報」のことを指し、戻り値とは「関数から戻ってくる出力情報」のことを指しています。※PHPマニュアルでは戻り値を「返り値」という言葉で表していますが、戻り値と同じ意味です。
それを踏まえて5章で利用した「var_dump関数」を例に説明を行います。

URL:http://jp2.php.net/manual/ja/function.var-dump.php


図 11.2.2:var_dump関数の説明

5章で使ったvar_dump関数では、引数として変数を1つ与え、内部の処理で変数の情報について画面へ出力してくれます。結果を画面に出力するので戻り値は設定されていません。
関数を利用する場合には、必ずその関数の目的を考え、引数に情報を与え、戻り値がある場合とない場合もきちんと考える必要があります。

関数リファレンスの簡単な使い方

使う関数名が分かっている場合に、Webブラウザから以下のようなアクセスをすると、調べたい関数のページに直ぐにアクセスできます。
http://jp2.php.net/関数名

例えばvar_dump関数について調べたい場合は、以下のURLになります。
http://jp2.php.net/var_dump
こうすると、var_dump関数を説明するページが表示されます。

11.2.3 主な組み込み関数の紹介

関数リファレンスをみてもらえば分かりますが、PHPには多くの組み込み関数が用意されています。全て覚えるのはとても大変なので、基本的に良く使われる主なカテゴリーの各組み込み関数を紹介していきます。

紹介する主な関数カテゴリーの一覧
  • 変数操作関数
  • 配列関数
  • Math関数(数学)
  • String関数(文字列)
  • ファイルシステム関数
  • 日付・時刻関数
  • セッション関数
変数操作関数

変数操作関数は主に変数の状態を調べたい場合に利用します。戻り値に真偽値が多いので条件分岐文と組み合わせて利用することが多くなります。

表 11.2.1:主な変数操作関数の一覧

配列関数

配列関数は主に配列の初期作成や、作成後の並び替えなどの操作を行いたい場合に利用します。

表 11.2.2:主な配列関数の一覧

Math関数(数学)

ランダム数値の取得や数学的な処理を行いたい場合に利用します。

表 11.2.3:主なMath関数の一覧

String関数(文字列)

文字列の置換や切り出しなどの文字列操作の処理を行いたい場合に利用します。

表 11.2.4:主なString関数の一覧

日付・時刻関数

現在の日付や時刻を取得したり、その値を使って処理を行いたい場合に利用します。

ファイルシステム関数

外部のファイルデータを取り込んだり、逆にデータを書き出す処理を行いたい場合に利用します。
※ファイルシステム関数はPHP基礎で学習しますので、その時に詳しく紹介します。

セッション関数

セッションを利用したい場合や、その他セッションに関する操作を行いたい場合に利用します。
※セッション関数はPHP基礎で学習しますので、その時に詳しく紹介します。

本節で紹介した以外にも、まだまだたくさん便利な関数が用意されています。自分でプログラムを作成する前に、まずは関数リファレンスを見てみることをお薦めします。

では、組み込み関数を使ったプログラムを見ていきましょう。

配列とMathの関数を使って動作するプログラム

Math関数のmt_randでランダムな数値を配列に格納し、さらに配列関数rsortを使って配列データ降順に並び替えます。Webブラウザからその配列の結果を、配列関数のcountを使って全て表示して確認してみましょう。

ソース・フォルダー: myproj_intro/ch11
パッケージ: useFunction.php
アクセスURL:http://localhost/myproj_intro/ch11/useFunction.php

useFunction.php

実行結果

解説

今回のプログラムはMathの組み込み関数を1つ、配列の組み込み関数を2つ使って、配列に格納するランダムなデータ作成、並び替え、全ての要素数で繰り返す処理を行っています。

■mt_rand関数:ランダムな数値を取得する

関数名:mt_rand(最小値、最大値)
第1引数:ランダムで発生させる数値の範囲の最小値
第2引数:ランダムで発生させる数値の範囲の最大値
戻り値:第1引数から第2引数の範囲の数値を1つ整数型で返す。

■rsort関数:配列のデータを降順(大きい順)に並び替える

関数名:rsort($配列変数)
引数:配列変数
戻り値:なし(引数で渡した配列の中身が並び変わる)

■count関数:配列の要素の総数を得る

関数名:count($配列変数)
引数:配列変数
戻り値:引数の配列の要素の総数を整数型で返す。

3~5行目で繰り返し文で4回繰り返し、配列の各要素にmt_rand関数を使って「0~6」の数値の内1つをランダムに取得して代入しています。結果4つのランダム数値を、配列変数$data1に代入しています。

6行目は配列変数$data1を、変数$data2にコピーを行っています。

8行目でrsort関数を使って配列変数$data2を、中身のデータの降順(大きい順)に並び替えを行っています。

最後に17~19行目では繰り返し文を配列の要素の総数分だけ、繰り返せるようにcount関数を利用して行っています。配列変数$data1は要素を4つ持っているので、count($data1)=4が取得でき、条件式2は「$i<4」となり$iの値が0~3の間繰り返すことができます。
今回の配列データを順次取り出すような処理はforeachと同じですが、foreachだと1つの配列データしか扱えません。今回のように複数の配列データを同時に扱いたい場合は、for文とcount関数を組み合わせることで行えます。

ポイント
  • PHPには様々な用途の組み込み関数が用意されている。
  • 組み込み関数は関数リファレンスを利用することで、仕組みや使用方法などを調べることができる。

NEXT>> 11.3 本章のまとめ