読者です 読者をやめる 読者になる 読者になる

ITは遊び

毎日パソコンのことばかり考えてる

PHPのきもいと感じるかもしれないコード

php
<?php
//for( $i=9 ; $i>=0 ; $i-- ){
for( $i=10 ; $i-- ; ){
   var_dump($i);
}


結果

int(9)
int(8)
int(7)
int(6)
int(5)
int(4)
int(3)
int(2)
int(1)
int(0)


つまり、

<?php
for( $i=0 ; $i<=10 ; $i++ ){
   var_dump( $i==True );
}

の結果が

bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)

ということなのだ

追記

当然

<?php
$i=10
for( $i-- ){
   var_dump( $i );
}

でも一緒。

注意

時々、

<?php
$global=10;
//適当な数値を返す関数
function minus(){
    global $global;
    if( $global-- > -5 ){
            return $global;
    }
}

//falseが帰ってきたら(関数内でreturnが無かったら)止める
while( $a = minus() ){
    var_dump($a);
}

とか作ったときに、偶然にも、「0」が返ってきたりすると、止まってしまう。

結果

int(4)
int(3)
int(2)
int(1)