Neo Inspiration

  • Search

    • About Me

      • inspi 改め
        jakk@webアーキテクト(自称)
        php,javascript,seoなど
        得意技は extract();

  • Categories

  • Ranking

  • Comments

  • Others


  • 便利なphp foreach のオプション?

    答えだけ言うと単に型キャストですがw

    foreachをまわす時

    引数が配列じゃないとこんなメッセージが

    Warning: Invalid argument supplied for foreach() in ******** on line 10

    がでるかと思うんですが、これを出さないための対応方法。

    今までこんな感じに処理してました。

    if(is_array($def)){
    foreach( $def as $k=>$v){
    print $v;
    }
    }

    が、実はこんな foreach の書き方がありました。。

    foreach( (array) $def as $k=>$v){
    print $v;
    }

    なるほど。。こういう型キャストの使い方があったのか。。

    動作の説明

    (array)$def

    で $def を array に変換してるんですね。(ちなみにこれを type casting といいます。)
    なので foreach のエラー(これは array じゃねーよ!)というエラーがでなくなると。

    これでソースが2行も減りました。

    ちなみに、 array だけじゃなく object や int もあります。
    型の相互変換

    でもさすがにこれはひどいな。。

    $binary = b”binary string”;

    最後

    こんな芸当が可能に。

    var_dump((object)(int)(string)true);
    //string(1) “1″ が表示

    必殺 チェインタイプキャスティングw


    Leave a Reply

    2008/10/13 06:17:49