こんな機能は、知らなかったなぁ
例えば、
$test = "ABCDEFG";
こんな変数を定義したとして、
echo ($test{0});
とすると、Aだけが出力される。
$変数名{順番}
こんな感じで、文字列の任意の順番の文字を取得できるらしい。
ちなみに、実際に格納されている文字列の数より多い数字を出力しようとすると、
エラーにはならなかったけど、何も出力されなかった。(そりゃそうだ…)
こんな機能は、知らなかったなぁ
例えば、
$test = "ABCDEFG";
こんな変数を定義したとして、
echo ($test{0});
とすると、Aだけが出力される。
$変数名{順番}
こんな感じで、文字列の任意の順番の文字を取得できるらしい。
ちなみに、実際に格納されている文字列の数より多い数字を出力しようとすると、
エラーにはならなかったけど、何も出力されなかった。(そりゃそうだ…)
phpで、「HELLO WORLD」を「hello world」に変換したいときは、strtolower関数を使う。
echo (strtolower("HELLO WORLD"));
とすると、
hello world
が出力される。
同様に、「hoge」を「HOGE」に変換したいときは、strtoupper関数を使う。
echo (strtoupper("hoge"));
とすると、
HOGE
が出力される。
どちらの関数も、パラメーターを端折る事は出来ないっぽく、無記入だとエラーになった。
break文は、for文で繰り返し処理をしている途中で、指定した終了条件意外で、例外的に処理を終了させたい時に使う。
<?php
$counter = -3;
for(;$counter < 10; $counter++){
//「ゼロ割り」でないかチェックする
if($counter == 0){
echo "Stopping to avoid division by zero.";
break;
}
echo "100/$counter<br />";
}
?>
上記の様に、割る数が0にならない様に、$counterが0になったら処理を終了させる。
だったら最初から、for文の終了条件を考え直せばいいのだが、サンプルって事で。
青文字のif文の中のbreak文が実行されると、for文のループが終了する。
ブラウザで表示させると、
100/-3 100/-2 100/-1 Stopping to avoid division by zero.
こんな感じになる。
$counterが0になったら、青文字のif文の処理を実行して、繰り返し処理が終了している。
一方、continue文は、一回だけ処理をスキップする時に使う。
<?php
$counter = -3;
for(;$counter < 10; $counter++){
//「ゼロ割り」でないかチェックする
if($counter == 0){
echo "Skipping to avoid division by zero.";
continue;
}
echo "100/$counter",100/$counter,"<br />";
}
?>
こちらも、同じ様に、$counterが0の時だけ、continue文が実行されて、0の時だけスキップされて次のカウントの処理に移る。
ブラウザで出力すると、
100/-3-33.333333333333 100/-2-50 100/-1-100 Skipping to avoid division by zero.100/1100 100/250 100/333.333333333333 100/425 100/520 100/616.666666666667 100/714.285714285714 100/812.5 100/911.111111111111
こんな感じになる。
0の時だけ、処理をスキップして、赤文字のif文の処理をして、次のカウントに移っているのが、ポイント。
こちらも、一つ前の記事のwhile文と同じ様に、コードが読める様にメモ。
<?php
$num = 1;
do{
echo "Number is ".$num."<br />";
$num++;
}while ($num <= 10);
echo "Done.";
?>
上記のコードを記述したファイルを、ブラウザで見ると、
Number is 1 Number is 2 Number is 3 Number is 4 Number is 5 Number is 6 Number is 7 Number is 8 Number is 9 Number is 10 Done.
上記の様に出力される。
while文との違いは、繰り返しの処理を継続するか終了するかの条件が、処理の後の書かれている点。(while($num <= 10)の所)
結果、$numにどんな初期値が格納されていようと、必ず一回は処理を実行する。
例えば、$numに100を代入したら、
Number is 100 Done.
と出力される。
doの中の処理を一回実行して、whileの条件に一致しないので、そのまま繰り返し処理を終える。様は、一回実行する。
まぁまぁ、メモって事で。
繰り返しは、for文を使う事が圧倒的に多いのだけど、他の人が書いたコードを読める様に一応メモ。
簡単に、数字の1から10までを出力する方法。
<?php $num = 1; while($num <= 10){ print "数字:$num"; $num++; } print "ループ終了"; ?>
上記のコードを記述したファイルをブラウザで見ると、
数字:1 数字:2 数字:3 数字:4 数字:5 数字:6 数字:7 数字:8 数字:9 数字:10 ループ終了
こんな感じで出力される。
青文字の$num=1で、初期値をセット。赤文字の、$num++を忘れると、無限ループになるので注意。まあ、簡単なメモって事で。