Discussion:
Tester l'existence et la valuer d'un champ d'un tableau
(trop ancien pour répondre)
mpg
2009-04-08 07:14:11 UTC
Permalink
Bonjour,

Je viens de constater qu'en activant le raport des erreur E_NOTICE, on
se fait engueuler en essayant de faire des tests comme

if ($fou['barre'] === 1)

où $fou est un tableau qui n'a pas d'indice 'barre'. Pourtant, je trouve
ça vachement pratique pour tester d'un coup si certaines paramètres (de
$_REQUEST ou $_SESSION par exemple) sont positionnés et ont un certaine
valeur.

Je trouve fastidieux (et source potentielle d'erreurs) d'écrire

if (isset($fou['barre']) and $fou['barre'] === 1)

Il n'y a pas une façon propre et pas lourde à écrire de faire ce test ?

Merci,
--
Manuel Pégourié-Gonnard Institut de mathématiques de Jussieu
http://weblog.elzevir.fr/ http://people.math.jussieu.fr/~mpg/
Teufel
2009-04-08 09:03:25 UTC
Permalink
Post by mpg
if (isset($fou['barre']) and $fou['barre'] === 1)
Il n'y a pas une façon propre et pas lourde à écrire de faire ce test ?
Si : http://fr.php.net/array_key_exists
CrazyCat
2009-04-08 15:54:30 UTC
Permalink
Post by Teufel
Post by mpg
if (isset($fou['barre']) and $fou['barre'] === 1)
Il n'y a pas une façon propre et pas lourde à écrire de faire ce test ?
Si : http://fr.php.net/array_key_exists
Je ne vois pas bien la différence entre:
if (isset($foo['bar']) && $foo['bar']===1)
et
if (array_key_exists('bar', $foo) && $foo['bar']===1)

Pour répondre à mpg, il n'y a pas moins "lourd", et c'est la manière
propre de tester.
--
Réseau IRC Francophone: http://www.zeolia.net
Aide et astuces : http://www.g33k-zone.org
Communauté Francophone sur les Eggdrops: http://www.eggdrop.fr
mpg
2009-04-08 21:43:54 UTC
Permalink
Post by CrazyCat
Post by Teufel
Post by mpg
if (isset($fou['barre']) and $fou['barre'] === 1)
Il n'y a pas une façon propre et pas lourde à écrire de faire ce test ?
Si : http://fr.php.net/array_key_exists
if (isset($foo['bar']) && $foo['bar']===1)
et
if (array_key_exists('bar', $foo) && $foo['bar']===1)
Moi non plus, après avoir lu attentivement la page citée (y compris la
section expliquant la différence entre array_key_exists() et isset(), je
précise).
Post by CrazyCat
Pour répondre à mpg, il n'y a pas moins "lourd", et c'est la manière
propre de tester.
Ok.
--
Manuel Pégourié-Gonnard Institut de mathématiques de Jussieu
http://weblog.elzevir.fr/ http://people.math.jussieu.fr/~mpg/
Teufel
2009-04-14 17:24:18 UTC
Permalink
Post by mpg
Post by CrazyCat
Post by Teufel
Post by mpg
if (isset($fou['barre']) and $fou['barre'] === 1)
Il n'y a pas une façon propre et pas lourde à écrire de faire ce test ?
Si : http://fr.php.net/array_key_exists
if (isset($foo['bar']) && $foo['bar']===1)
et
if (array_key_exists('bar', $foo) && $foo['bar']===1)
Moi non plus, après avoir lu attentivement la page citée (y compris la
section expliquant la différence entre array_key_exists() et isset(), je
précise).
Il y en une petite mais dans ton cas, c'est pareil en fait.

En fait, je pensais que quand le rapport d'erreur affichait les notice,
il informait que la clé n'existait en faisant un isset($foo['bar']), ou
cela devait le faire avec les anciennes version de PHP.

J'ai lu un peu trop vite ton post :/
Post by mpg
Post by CrazyCat
Pour répondre à mpg, il n'y a pas moins "lourd", et c'est la manière
propre de tester.
Ok.
Loading...