Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SMARTY] Dziwne zachowanie if'a
Forum PHP.pl > Forum > PHP
NickOver
Cześć.
Mam dziwny problem ze smartami. Mam taki kod:
  1. {foreach $dataForModule.search.data as $element}
  2. {if $element != NULL}
  3. {if $element@key != 'tip'}
  4. <li class="tip text-center"><b>{$element}</b></li>
  5. {/if}
  6. {/if}
  7. {/foreach}


Struktura tablicy jest taka:
[0] => 'dane',
[1] => 'dane',
...
[tip] => '1',

Niestety nie chce mi wyświetlić [0] elementu tablicy. Cokolwiek by w nim nie było, za cholere nie chce go pokazać. Do pierwszego ifa na pewno wchodzi.
Problem jest tylko z
  1. {if $element@key != 'tip'}


Jesli usune ten warunek pokazuje tak jak powinno, ale niestety z elementem tip czego byc nie może.
Macie jakies pomysły czemu tak się dzieje i jak to naprawić?
nospor
Kod
{foreach $dataForModule.search.data as $key => $element}

    {if $element != NULL}

        {if $key != 'tip'}

            <li class="tip text-center"><b>{$element}</b></li>

        {/if}

    {/if}

{/foreach}
NickOver
smarty manual
drugi przykład w punkcie 7.31.

To co podałeś i tak nie działa tongue.gif.

Problem rozwiązałem. Wystarczyło dać "!==" zamiast "!=" w 2 ifie.
Co nie zmienia faktu że strasznie mnie ciekawi czemu tak jest. No bo za nic int(0) != string(tip)
nospor
Cytat
No bo za nic int(0) != string(tip)
No wlasnie nie....
gdy porownujesz int z tekstem to tekst jest rzutowany na int, czyli tip zamienia sie na 0 a 0 != 0 nie jest spelnione tongue.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.