Hatena::ブログ(Diary)

crazyuplog このページをアンテナに追加 RSSフィード

2009-04-21

PHP vol.11

while文

while (条件式)  {
条件がtrueになるまで繰り返し
}
//処理を終了させるためにはbreakを使用する。

例)出力を続けて100になったら止まる

<?php

$i = 1;
while (true) {
    if ($i == 100) {
        break;
    }
    $i++;
    echo $i."\n";
}

別パターン

<?php

$i = 1;
while ($i <= 100) {
     echo $i."\n";
    $i++;
}
  • breakはwhile文以外でも使える

continue

入った瞬間に繰り返し文の始めに戻す

<?php
$i = 0;
while (true) {
    $i++;
    if ($i == 100) {
        break;
    }
    if ($i%2==0) {
        continue;
    }
    echo $i."\n";
}
実行結果
$ php 042103.php 
1
3
5
(中略)
95
97
99

switch

<?php
switch (変数) {
case1:
     実行する処理1;
     break;
case2:
     実行する処理2;
     break;
default:
     実行する処理X;
}

例)

<?php
$i = 2;
switch ($i) {
case 1:
    echo "1です。\n";
    break;
case 2:
    echo "2です。\n";
    break;
case 3:
    echo "3です。\n";
    break;
default:
    echo "それ以外\n";
}
実行結果
$ php 042104.php 
2です。

ユーザー定義関数

関数は実行するプログラムをひとつにまとめたもの

function 関数名(引数) {
         実行するプログラム(処理内容)
         
         //値を返すものがある場合
         return 戻り値
}

例)

<?php

function Hello() {
echo "こんにちは!こんにちは!こんにちは!\n";
}

Hello();
Hello();
Hello();
Hello();
実行結果
$ php 042105.php 
こんにちは!こんにちは!こんにちは!
こんにちは!こんにちは!こんにちは!
こんにちは!こんにちは!こんにちは!
こんにちは!こんにちは!こんにちは!
引数
<?php

function Hello($name) {
echo $name."さん、こんにちは!\n";
}

Hello('N');
Hello('I');
Hello('T');
実行結果
$ php 042106.php 
Nさん、こんにちは!
Iさん、こんにちは!
Tさん、こんにちは!

試してみた。

<?php

function Hello($name,$mono) {
    echo $name."さん、".$mono."でこんにちは!\n";
}
function TheEnd($name,$mono) {
    echo $name."さん、".$mono."で残念。\n";
}

Hello('A','a');
TheEnd('B','b');
Hello('C','c');
TheEnd('D','d');
Hello('E','e');
TheEnd('F','f');
  • Endは予約語なので使えない。そのため、TheEndを使用した。
  • 引数は,で区切れば複数使用することができる。
実行結果
$ php 042106.php 
Aさん、aでこんにちは!
Bさん、bで残念。
Cさん、cでこんにちは!
Dさん、dで残念。
Eさん、eでこんにちは!
Fさん、fで残念。
戻り値
<?php

function test($a,$b) {
    $re = 0;
    $re = $a + $b;
    
    return $re;
}

$r = test(1,2);
echo $r."\n";
実行結果
$ php 042107.php 
3
  • 戻り値を使うと処理された結果が出る。
  • 呼んだ位置に返す
    • testの部分に処理結果が代入される
  • 変数には有効範囲があるので関数内の変数は外部から呼び出しができない。
参照渡し

今までの手法が値渡しと言われている。

今回、参照渡しを行う。

<?php

function test (&$a,&$b) {
    $a= $a + $b;
}
$s1 = 1;
$s2 = 2;
test ($s1,$s2);

echo $s1."\n";
  • 値渡しは数値のコピーである
  • 参照渡しは値を入れる箱ごと渡す
    • 外側にも影響を与えることができる。
    • 見ている値を同じにすることができる。
    • 普段は値渡しが主に使われる。
Copyright © crazyup. All rights reserved.