2017-07-06 23 views
-1

ちょっと私はPHPを学んでいますが、私は完全な悪夢になるためにジャグリングを探しています。 私はイテラブルで遊んでいましたが、その代わりにTRUEまたはFALSEが得られました。10を得ました。PHPでブール型のジャグリングをintに防ぐ方法

小さな例:コードの大きな配列または塊で

<?php 
class MyIterator implements Iterator 
{ 
    private $var = array(); 

    public function __construct($array) 
    { 
     if (is_array($array)) { 
      $this->var = $array; 
     } 
    } 

     public function valid() 
    { 
     $key = key($this->var); 
     $var = ($key !== NULL && $key !== FALSE); 
     print_r("valid: ". $var ."\n<br />"); 
     return $var; 
    } 

} 

$values = array(1,2,3); 
$it = new MyIterator($values); 

foreach ($it as $a => $b) { 
    print "$a: $b\n<br />"; 
} 

出力のこの種のは本当に混乱になり代わり10TRUEまたはFALSEをダンプするためにPHPを強制する方法はありますか?

+0

この表記がどのように混乱しているか説明できますか? phpはこれらの異なる型の比較を可能にします。リテラルが必要な場合は、単純な3つのステートメントでそれを実現できます。 – yanman1234

+0

私を混乱させるのは表記ではなくジャグリングです。 –

答えて

1

(bool)または(boolean)演算子を使用してキャストすることはできますが、ブール値を必要とする操作が検出された場合、PHPが自動的にキャストするため、これを行う必要はほとんどありません。

あなたechoprintもしそれがintと表示1または0に変換されますFALSEそれはTRUE出力または決してブール値。ただし、bool(false)またはbool(true)を出力するvar_dump((bool)$val)を使用すると、ブール値の変換方法がわかりやすくなります。

+0

これをプリントやエコーに強制することはありますか? –

+0

@MiguelM 'var_dump'はそれを出力します – Tony

関連する問題