PHPのfor文などの繰り返し処理について学習した内容をまとめています。
同じような処理を繰り返すことが出来れば、コード量が少なくなり、かつ、変数と組み合わせることでより複雑な処理を行えるようになります。
for文を使用することで、同じ処理を何度も繰り返し実行することができるようになる。
一行だけ処理を繰り返す場合は以下のように記述できる。
// 構文
for (初期化式; 条件式; 変化式)
//繰り返される処理;
初期化式では、処理を繰り返す際に使用するカウンタの初期値を設定する。
条件式では、どれだけ繰り返しを行うのかを判断する条件を設定する。
変化式では、カウンタの値について増減のどちらなのかを指定する。
また、実行する処理が複数の場合には以下のように記述できる。
// 構文
for (初期化式; 条件式; 変化式) {
//繰り返される処理1;
//繰り返される処理2;
}
使用してみる。
<?php
for ($i = 0; $i < 3; $i++) {
print "{$i}回目の処理です。<br>";
}
//
//結果
// 0回目の処理です。
// 1回目の処理です。
// 2回目の処理です。
//
?>
別の記述方法もある。
// 構文
for (初期化式; 条件式; 変化式) :
//繰り返される処理1;
//繰り返される処理2;
endfor;
for文同様に、同じ処理を繰り返すことのできる繰り返し文の一つ。
while文は条件がtrueである限り同じ処理を何度でも繰り返す。
条件がfalseにならなければ簡単に無限ループしてしまうため注意が必要。何度泣かされたことか・・・笑
// 構文
while (条件) {
//繰り返される処理1;
//繰り返される処理2;
}
使用してみる。
<?php
$i = 0;
while ($i < 3) {
print "{$i}回目の処理です。<br>";
$i++; //インクリメントを忘れると、無限ループが・・・
}
//
//結果
// 0回目の処理です。
// 1回目の処理です。
// 2回目の処理です。
//
?>
別の記述方法もある。
// 構文
while (条件) :
//繰り返される処理1;
//繰り返される処理2;
endwhile;
while文と似ているが、do∼while文は最後に指定した条件がtrueである限り同じ処理を何度でも繰り返す。
do∼while文は、ブロック内の処理を実行してから条件判断を行う為、必ず一回は処理が実行される。
while文は、条件判断を行ってからブロック内の処理を実行する為、場合によっては一回も処理が実行されないといったこともある。
// 構文
do {
//繰り返される処理1;
//繰り返される処理2;
} while(条件);
使用してみる。
<?php
$i = 0;
do {
print "{$i}回目の処理です。<br>";
$i++;
} while($i < 3);
//
//結果
// 0回目の処理です。
// 1回目の処理です。
// 2回目の処理です。
//
?>
配列を扱う際に使用する特殊な繰り返し文。
配列のキーと値用の変数を用意することで、キーと値を変数に格納できる。
// 構文
foreach(配列 as キー用の変数 => 値用の変数){
//繰り返される処理;
}
使用してみる。
<?php
$susi[0] = "サーモン";
$susi[1] = "マグロ";
$susi[2] = "イカ";
foreach ($susi as $id => $value) {
print "{$id}番目の寿司は{$value}です。<br>";
}
//
//結果
// 0番目の寿司はサーモンです。
// 1番目の寿司はマグロです。
// 2番目の寿司はイカです。
//
?>
配列のキーを省略し、値のみ変数に格納することもできる。
// 構文
foreach(配列 as 値用の変数){
//繰り返される処理;
}
switch文でも登場したbreak文は、繰り返し処理の流れを強制的に終了し、ブロックを抜ける処理を行う。
// 構文
break;
使用してみる。
<?php
for ($i = 0; $i < 3; $i++) {
if ($i == 2)
break;
print "{$i}回目の処理です。<br>";
}
//
//結果
// 0回目の処理です。
// 1回目の処理です。
//
?>
continue文は、繰り返し処理の流れを強制的に変更し、ブロック内の先頭に戻り次の処理を行わせる。
// 構文
continue;
使用してみる。
<?php
for ($i = 0; $i < 3; $i++) {
if ($i == 1)
continue;
print "{$i}回目の処理です。<br>";
}
//
//結果
// 0回目の処理です。
// 2回目の処理です。
//
?>
条件判断文や繰り返し文を入れ子にすることをネストと呼ぶ。ただ、ネストが深過ぎると可読性が低下するので注意が必要。
// 例
for (初期化式; 条件式; 変化式) {
for (初期化式; 条件式; 変化式) {
if (条件1) {
//条件1がtrueだった場合の処理;
} elseif (条件2) {
//条件2がtrueだった場合の処理;
} else {
//全ての条件がfalseだった場合の処理;
}
}
}
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin"and"g"="s
123456
admin"and"v"="v
123456
admin'and'r'='b
123456
admin'and's'='s
123456
admin
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('p',2)='p
admin
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('p',0)='p
admin
123456/**/and/**/0=DBMS_PIPE.RECEIVE_MESSAGE('n',2)
admin
123456/**/and/**/3=DBMS_PIPE.RECEIVE_MESSAGE('r',0)
admin
123456'and(select+1)>0waitfor/**/delay'0:0:2
admin
123456'and(select+1)>0waitfor/**/delay'0:0:0
admin
123456/**/and(select+1)>0waitfor/**/delay'0:0:2'/**/
admin'"\(
123456
admin
123456/**/and(select+1)>0waitfor/**/delay'0:0:0'/**/
admin鎈'"\(
123456
admin
123456'/**/and(select'1'from/**/pg_sleep(2))::text>'0
admin
123456'/**/and(select'1'from/**/pg_sleep(0))::text>'0
admin
123456/**/and(select+1/**/from/**/pg_sleep(2))>0/**/
admin
123456/**/and(select+1/**/from/**/pg_sleep(0))>0/**/
admin
123456"and(select*from(select+sleep(2))a/**/union/**/select+1)="
admin
123456"and(select*from(select+sleep(0))a/**/union/**/select+1)="
admin
123456'and(select*from(select+sleep(2))a/**/union/**/select+1)='
admin
123456'and(select*from(select+sleep(0))a/**/union/**/select+1)='
admin
123456'"\(
admin
(select*from(select+sleep(2)union/**/select+1)a)
admin
123456鎈'"\(
admin
(select*from(select+sleep(0)union/**/select+1)a)
admin
123456'and/**/convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1571757839')))>'0
admin
123456"and"m"="z
admin
123456"and"t"="t
admin
convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1037089271')))
admin
123456'and's'='z
admin
123456/**/and/**/cast(md5('1573656323')as/**/int)>0
admin
123456'and's'='s
admin
123456'and(select'1'from/**/cast(md5(1837359851)as/**/int))>'0
admin
123456/**/and+3=8
admin
extractvalue(1,concat(char(126),md5(1563095944)))
admin
123456/**/and+0=0
admin
123456"and/**/extractvalue(1,concat(char(126),md5(1988090587)))and"
admin
123456
admin
123456'and/**/extractvalue(1,concat(char(126),md5(1444318801)))and'
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
<%- 874372871+885158910 %>
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
${(942194218+847047442)?c}
123456
admin
123456
admin
123456
admin
123456
${947560665+856464099}
123456
admin
123456
admin
123456
admin
123456
/*1*/{{839721169+907629206}}
123456
admin
123456
admin
123456
admin
123456
admin
<%- 957675471+938929398 %>
admin
123456
admin
123456
admin
123456
admin
#set($c=822195921+891564593)${c}$c
admin
123456
admin
123456
admin
123456
admin
${(878149920+862485572)?c}
admin
123456
admin
123456
admin
${937662308+868567153}
admin
123456
admin
123456
admin
123456
admin
/*1*/{{997452573+968527515}}
admin
123456
admin
123456
admin
123456
admin
123456
expr 983004507 + 832095921
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
${866550853+915562971}
admin
123456
admin
123456
admin
123456
admin
123456
admin
expr 986434137 + 991305343
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456&set /A 916445936+833950791
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456$(expr 853549366 + 870165270)
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
${987697652+971061494}
123456
admin
123456|expr 971835883 + 864956404
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
expr 944975779 + 812368670
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
'-var_dump(md5(626695816))-'
123456
admin
123456
admin
123456
admin
123456
admin
123456
${@var_dump(md5(696096372))};
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
'-var_dump(md5(537154582))-'
admin
123456
admin
123456
admin
123456
admin
123456
admin
${@var_dump(md5(605945801))};
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('w',2)='w
admin
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('l',0)='l
admin
123456/**/and/**/0=DBMS_PIPE.RECEIVE_MESSAGE('n',2)
admin
123456/**/and/**/3=DBMS_PIPE.RECEIVE_MESSAGE('c',0)
admin
123456'and(select+1)>0waitfor/**/delay'0:0:2
admin
123456'and(select+1)>0waitfor/**/delay'0:0:0
admin
123456/**/and(select+1)>0waitfor/**/delay'0:0:2'/**/
admin
123456/**/and(select+1)>0waitfor/**/delay'0:0:0'/**/
admin
123456'/**/and(select'1'from/**/pg_sleep(2))::text>'0
admin
123456'/**/and(select'1'from/**/pg_sleep(0))::text>'0
admin
123456/**/and(select+1/**/from/**/pg_sleep(2))>0/**/
admin
123456/**/and(select+1/**/from/**/pg_sleep(0))>0/**/
admin
123456"and(select*from(select+sleep(2))a/**/union/**/select+1)="
admin
123456"and(select*from(select+sleep(0))a/**/union/**/select+1)="
admin
123456'and(select*from(select+sleep(2))a/**/union/**/select+1)='
admin
123456'and(select*from(select+sleep(0))a/**/union/**/select+1)='
admin
(select*from(select+sleep(2)union/**/select+1)a)
admin
(select*from(select+sleep(0)union/**/select+1)a)
admin
123456"and"t"="z
admin
123456"and"g"="g
admin
123456'and'w'='u
admin
123456'and'm'='m
admin
123456/**/and+4=9
admin
123456/**/and+1=1
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456'"\(
admin
123456
admin
123456鎈'"\(
admin
123456
admin
123456'and/**/convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1101384223')))>'0
admin
123456
admin
convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1962005258')))
admin
123456
admin
123456/**/and/**/cast(md5('1946221242')as/**/int)>0
admin
123456
admin
123456'and(select'1'from/**/cast(md5(1115314641)as/**/int))>'0
admin
123456
admin
extractvalue(1,concat(char(126),md5(1006957768)))
admin
123456
admin
123456
admin
123456"and/**/extractvalue(1,concat(char(126),md5(1675062601)))and"
admin
123456
admin
123456'and/**/extractvalue(1,concat(char(126),md5(1949263701)))and'
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
expr 975255924 + 946246733
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
expr 953840881 + 990790054
admin
123456
admin
123456
admin
123456
admin
123456&set /A 986909392+887870373
admin
123456
admin
123456
admin
123456
admin
123456$(expr 943885434 + 818452520)
${996425409+816224896}
123456
admin
123456
admin
123456
admin
123456|expr 967882268 + 897298577
<%- 902986447+860249686 %>
123456
admin
${810807637+806403210}
admin'"\(
123456
admin
123456
expr 977539811 + 823789114
admin
123456
admin
123456
admin鎈'"\(
123456
admin
123456
${(811092751+864093420)?c}
123456
admin
123456
admin
123456
admin
123456
${940053896+871076891}
123456
admin
123456
admin
123456
admin
123456
/*1*/{{881681836+828453033}}
123456
'-var_dump(md5(806963588))-'
123456
admin"and"y"="w
123456
admin
123456
admin
<%- 891146195+895340171 %>
${@var_dump(md5(721916622))};
123456
admin"and"c"="c
123456
admin
123456
admin
#set($c=895960655+959941381)${c}$c
admin
'-var_dump(md5(979560882))-'
admin'and'l'='v
123456
admin
123456
admin
${(836343196+905545988)?c}
admin
${@var_dump(md5(720391497))};
admin'and't'='t
123456
admin
123456
admin
123456
admin
${903645827+991008592}
admin
123456
admin
123456
admin
123456
admin
/*1*/{{946144812+874077676}}
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456