ugrás a tartalomhoz

Archívum - Ápr 10, 2009 - Fórum téma

isset() is_null()

szabo.b.gabor · 2009. Ápr. 10. (P), 16.23
Sziasztok!

csak egy érdekességet szeretnék megosztani. esetleg ha valaki tudna rá valami megoldást, akkor mondja meg nekem.

tehát van egy php által összerakott sql lekérdezésem aminek sorait fetch_object()-tel kérem vissza. az sql változik, néha úgy ad vissza hogy

$row->idcolor
$row->elek


néha meg úgy hogy

$row->color
$row->elek


mindez annyival megbolondítva, hogy az idcolor és a color értéke lehet NULL is

kiírásnál meg attól függően, hogy idcolor vagy color szerepel az adott objektumban, másként kellene megjeleníteni.

valahogy így

<? if(isset($row->idcolor)): ?>
	kiírom így <?= $row->idcolor ?>
<? else: ?>
	kiírom úgy <?= $row->color ?>
<? endif; ?>
De! ha éppenséggel épp volna idcolor, de az NULL értékű, akkor az isset() false-t fog visszaadni, az else ágon pedig egy szépséges notice fog megjelenni. ha is_null()-t is bevetek a vizsgálódásba, akkor ha épp nincs is idcolor az is_null akkor is true-t fog visszaadni, vagy valami ilyesmi (ilyen fényes lakkcipő szerű:D).

végülis a megoldás annyi, hogy

<? if(isset($row->idcolor)): ?>
	kiírom így <?= $row->idcolor ?>
<? elseif(isset($row->color): ?>
	kiírom úgy <?= $row->color ?>
<? endif; ?>
legalábbis nálam, mert a 'kíirom így' és a 'kiírom úgy' üres téma esetén nálam ugyanazt adja vissza, nevezetesen semmit :), de mi van ha valaki tényleg ki akar írni valamit és az más.

szóval ha sikerült érthetően leírnom a dolgot és tud rá valaki megoldást, akkor ossza már meg.