デジキャットのライフログぶろぐ -10ページ目

デジキャットのライフログぶろぐ

アメブロアクセスアップ、ワードプレス、プログラミング等、ウェブ系の情報を配信しています。

phpプログラミング
$アメブロカスタマイズ徹底攻略請負人
PHPには定義されている関数がありその数は1000にも及びます。今まで見てきたのはこのあらかじめ定義されている関数で、内部関数(ビルトイン関数)といいます。

ユーザー定義関数とは


関数は内部関数だけでなく、独自に作ることもできます。それがユーザー定義関数と呼ばれるものです。
ユーザー定義関数の名前は自由に決めることができますが、例えばsayHello()など、ある動詞や名詞を組み合わせる場合、2番目の名詞の頭文字を大文字にするのが通例となっています。

ユーザー定義関数の書式


function【関数名】(引数){処理させたい内容を記述;}

この型で関数を定義し、{}の外で定義した関数を利用したりします。

サンプルスクリプトA


< ?php
//関数sayHelloに引数($a)を与えて、echoで出力するという独自関数。
function sayHello($a){
echo $a;
}
//↑の式で関数を定義し、下の式で実際に出力。
$b = 'Hello!World!';
sayHello($b);
?>

ブラウザで実行するとHello!World!と表示されます。

引数の値渡しと参照渡し


引数には値渡しと参照渡しの2種類があります。
引数の値渡し
通常、関数に対する引数は値(型)を定義しているのであって呼び出し先の変数はその変数の値がそのまま出力されます。

引数の参照渡し
関数に対する引数の前に&をつけるとその定義した関数の引数が参照され、定義した呼び出し元の変数が呼び出し先の変数に代入されます。

なんか説明がヘタクソなので実際にプログラムを見て雰囲気をつかんでみてください。
値渡しの場合。
< ?php
function getDrink($c){
$c = 'beer';
}
$d = 'water';
echo $d.':';
//引数を値渡し。
getDrink($d);
echo $d;
?>

表示結果はwater:water:です。

参照渡しの場合。
< ?php
//引数$cの前に&を記述。
function getDrink(&$c){
$c = 'beer';
}
$d = 'water';
echo $d.':';
//引数を参照渡し
getDrink($d);
echo $d;
?>

表示結果はwater:beerです。
phpプログラミング
$アメブロカスタマイズ徹底攻略請負人
foreach文はif文、while文とは違って条件式を指定するのではなく配列を使ったループ処理です。
配列の全要素に対して繰り返し処理を実行します。

ループ処理-foreach文-


foreach文の書式。
foreach (配列 as 変数){ここに繰り返したい処理を記述。;}

この型で配列の全要素に処理を実行できます。
asの後の変数の部分には配列の各要素が格納されます。

foreach文サンプルA


< ?php
//変数$fruitに配列を代入する。
$fruit = array('みかん','バナナ','りんご','ぶどう','いちご','キウィ','メロン');
//$valに各要素(みかん、バナナ・・・)を格納する。
foreach($fruit as $val){
echo '本日'.$val.'は2割引です。';
}
?>

array関数を使って初期化した値を変数$fruitに格納しています。配列$fruitの各要素(みかん、バナナ、りんご、ぶどう、いちご、キウィ、メロン)すべてが無くなるまでecho命令が実行されます。

foreach文-キーを使った例-


foreach(配列 as キー=>値)

上記の例の応用でキーと値、それぞれを変数に代入してechoで出力しています。
以下、記述例。
< ?php
//各値にキーを指定
$fruit_key = array('1_a'=>'みかん','1_b'=>'バナナ','1_c'=>'りんご','1_d'=>'ぶどう',
'1_e'=>'いちご','1_f'=>'キウィ','1_g'=>'メロン');
//各$keyにキーを格納、$valに値を格納
foreach($fruit_key as $key=>$val){
echo '商品番号'.$key.':'.$val;
}
?>

以上、配列の場合のループ処理。(※foreachは配列のみ使用可能なループ処理)
phpプログラミング
$アメブロカスタマイズ徹底攻略請負人
while文と同じくループ処理でよく使われるのがfor文です。

ループ処理-if文-


for文の書式。
for([初期化];[条件式];[条件更新式];){ここに繰り返したい処理を記述;}

for文では初期化式、条件式、条件更新式の3つの要素をforの後の()にまとめて記述します。
while文と似たような感じですがfor文の方がすっきりとシンプルに書くことができます。

for文サンプル


< ?php
//$iに変数を代入し、条件式が成立するまで繰り返し処理。

for($i=0;$i<20;$i++){
echo $i.'回繰り返します。';}?>

前回みたwhile文ではこんな感じ。
< ?php
$i=0;
while($i<20){
echo $i.'回繰り返します。';
$i++;
}
?>

実行結果はまったく一緒になります。