kotaoueはそんなかんじ

kotaoueの最新情報。

Smartyのif 絶対に中身が違うはずなのに、比較が上手くいかずに困った

XMLから取得したデータをSmartyで表示しようとしたんや。
で、料金とかを表示するときに、
最低料金と最高料金が違ってたら、○○円~○○円
一緒だったら、○○円って表示しようとしたんや。

で、下みたいなコード書いてみたのさ

{if $val.pricefrom == $val.priceto }
  {$val.pricefrom}円
{else}
  {$val.pricefrom}~{$val.priceto}円
{/if}
でもさ、pricefromが10000 pricetoが50000とか
明らかに、pricefromとpricetoが別じゃないの?
って時に、10000~50000円じゃなくて、
10000円って表示されたの・・・

(゚Д゚≡゚Д゚)エッナニナニ?

で、一応チェックってことで、
  {$val.pricefrom}円
  {$val.priceto}円
ってコード書いてテストしてみたら、
10000円
50000円
          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ   <Smarty バグってんじゃね?
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)   
| / / /     |r┬-|    | (⌒)/ / / //       
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/      
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー’´      ヽ /    /
 |    |   l||l 从人 l||l      l||l 从人 l||l  バンバン
 ヽ    -一””””~~``’ー–、   -一”””’ー-、
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

ってオモタモノの

  {$val.pricefrom|@debug_print_var}
  {$val.priceto|@debug_print_var}

って書いたら、
SimpleXMLElement Object (0)
SimpleXMLElement Object (0)
って表示された。

      / ̄ ̄ ̄\
    / ─    ─ \
   /  (●)  (●)  \.   XMLからデータもって来てたのわすれてたお
   |    (__人__)    |
   \    ` ⌒´    /
   /              \

なので、==やなくて===使えばよいだけだった・・・orz

{if $val.pricefrom === $val.priceto }
  {$val.pricefrom}円
{else}
  {$val.pricefrom}~{$val.priceto}円
{/if}

コメントはまだありません

コメントを残す

メールアドレスが公開されることはありません。