PHP入門:関数の作り方
今夜もぼちぼち。
#15
今回は関数について。
関数を作るにはfunctionというキーワードを使い、そのあとに関数の名前を書く。
function sayHi () {
echo "hi!";
}
sayHi();
このように書くことで、sayHiという関数を作った後にそれを呼び出すという処理になる。
関数に引数を渡すこともできる。
function sayHi($name) {
echo "Hi, $name !";
}
sayHi("Tom");
sayHi("Bob");
このように、関数名の後にくるかっこに引数を設定しておけば、処理を記述する波かっこの中でその引数を利用することができる。また、引数はカンマで区切ればいくつでも渡すことができる。
また、引数に初期値を渡す場合は…
function sayHi($name = "Sam") {
echo "Hi, $name !";
}
sayHi();
sayHi("Tom");
このようにすれば、引数に値の指定がなかった時は初期値を取るようになる。
関数から返り値をもらうことも可能。
function sayHi($name="yamada") {
return "Hi , $name ";
}
$s=sayHi("Bob");
var_dump($s);
returnを使うことで、関数の処理をその場で終わらせつつ呼び出し元に値を返すようになる。上の例だと、$sにsayHiで作成した文字列「Hi , Bob」を入れるようになる。
#16
ローカル変数について。
関数で用いる変数については、「定義した関数内でのみ有効」というルールがある。
function sayHi($name = "yamada") {
$lang = "php";
echo "Hi , $name From $lang !";
}
sayHi("Tom");
var_dump($lang);
こうすると画面には「Hi , Tom From php !」と表示される。
上の例でいうと、$langは関数sayHiの中でのみ有効である。最後のvar_dumpではNULLと表示される。「そんなもん知るか!」という回答。
$lang="ruby";
function sayHi($name = "yamada") {
$lang = "php";
echo "Hi , $name From $lang !";
}
sayHi("Tom");
var_dump($lang);
このルールを頭に入れておくと、上記の例の最後のvar_dumpではrubyと表示されることが分かる。関数の中で宣言した変数と同じ名前の変数が関数の外にあっても大丈夫。あまりそういうことはしないと思うけど…。
#17
組み込み関数について。コードを一気に書いてまとめ。
// 数値に関する組み込み関数
$x=5.6;
echo ceil($x); // 小数点以下を切り上げる関数
echo floor($x); // 小数点以下を切り捨てる関数
echo round($x); // 小数点以下を四捨五入する関数
echo rand(1,10); //乱数を生成する関数(この例だと1~10の範囲で乱数生成)
// 文字列に関する組み込み関数
$s1="hello";
$s2="ねこ";
echo strlen($s1); //文字数を数える関数
echo mb_strlen($s2); //日本語の文字列(マルチバイト)に対応。文字数を数える
printf("%s - %s %.3f" , $s1 , $s2 , $x); //特定の書式で表示する
/*
%s→stringを指定
%f→floatを指定
%.3f→小数点第3位まで表示
*/
// 配列に関する組み込み関数
$colors = ["red","blue","pink"];
echo count($colors); //要素の数をカウント
echo implode("@",$colors); //配列の要素をある区切り文字で連結して文字列として返す
今夜はここまで。PHP入門編も折り返し!!