にっき

2009/03/06 23:40:00

すま〜とかうんた〜とらっぷ


とらっぷっていっても IteratorAggregate と Countable を実装したのはいいけど
getIterator() で返す Iterator の繰り返し数と count() で返す数が異なるのが原因だから
ちゃんと動かなくってもしかたないのかなぁ?(´・ω・`;【みかん
っていうか空でも出力したいならぬるおぶじぇくとで埋めといたほうがよかったのかなぁ?
でもでも PHP の foreach ではちゃんと動くのににゃぁ・・・



そんなこんなで今回はまったとらっぷは
class おやつ implements IteratorAggregate, Countable
{
    public $mData = array(
        'ぷりん' => array(),
        'ましゅまろ' => array(),
        'け〜き' => array()
    );

    /**
     * getIterator
     * 
     * @param    void
     * 
     * @return   Iterator
    **/
    public function getIterator()
    {
        $obj = new ArrayObject($this->mData);
        return $obj->getIterator();
    }

    /**
     * count
     * 
     * @param    void
     * 
     * @return   int
    **/
    public function count()
    {
        return array_reduce($this->mData,create_function('$r,$v','return $r + count($v);'),0);
    }
}
こんなかんじで foreach で回すと空っぽのかてごりだけ出てくるけど,
count を取ってみると中身が入ってないから 0 が出てきちゃうものを
Smarty の foreach に投げて処理しようとしたらなんにも表示されなかったってことで・・・
原因はこんぱいるきゃっしゅを解析して気付いたけど Smarty の foreach には
foreachelse なんてものがあってこれの判定に count を使ってるからみたいにう...〆(´・ω・`;【みかん
getXXXCount とかめんど〜だから Countable 実装したのににゃぁ・・・
っていうか HTML 用のてぷれとして使うと繰り返せる要素がなかったときは
その前後ではさんでるたぐも出力しないようにしないと空たぐができちゃうら
foreachelse の使い道がいまいちわからないにう(´・ω・`;【みかん

それにしても PHP のまにゅあるってさんぷるまで付いてて充実してるように見えるけど
callback 系の解説が全体的に物足りない気がするにゃぁ・・・
callback を引数に取るようなものを使うときはいっつも callback 関数内で
print_r(func_get_args());
die();
みたいの入れて確認してるけどめんどうにう(´・ω・`;【みかん
っていうか create_function() 描きにくいからはやくλ使えるようにならないかにゃぁ・・・


こめんと

こめんとする?



 
投稿された内容の著作権はこめんとの投稿者に帰属するっぽいです☆
また,現在 IE6 以下で Sleipnir,Lunascape,Donut じゃないゆ〜ざえ〜じぇんとからの描き込みを制限してますです☆
該当しちゃうかたはてきとうにゆ〜ざえ〜じぇんとを偽装しちゃってくださいです(´ω`;【みかん
さぶこんてんつ
前月 2019年 6月 翌月
            1
 
2
 
3
 
4
 
5
 
6
 
7
 
8
 
9
 
10
 
11
 
12
 
13
 
14
 
15
 
16
 
17
 
18
 
19
 
20
 
21
 
22
 
23
 
24
 
25
 
26
 
27
 
28
 
29
 
30
 
           
  • あじ あじ
  • ED ED
  • えでん えでん
  • えれふぃ えれふぃ
  • ぐらぶれ ぐらぶれ
  • etc etc
  • にっき にっき

あわせて読みたい

先頭に戻る
めにう 先頭に戻る