Tester l'existence et la valuer d'un champ d'un tableau
4 réponses
mpg
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/
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
CrazyCat scripsit:
Teufel wrote:
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)
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).
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/
CrazyCat scripsit:
Teufel wrote:
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)
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).
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/
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)
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).
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
mpg a présenté l'énoncé suivant :
CrazyCat scripsit:
Teufel wrote:
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)
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 :/
Pour répondre à mpg, il n'y a pas moins "lourd", et c'est la manière propre de tester.
Ok.
mpg a présenté l'énoncé suivant :
CrazyCat scripsit:
Teufel wrote:
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)
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 :/
Pour répondre à mpg, il n'y a pas moins "lourd", et c'est la manière
propre de tester.
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)
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 :/
Pour répondre à mpg, il n'y a pas moins "lourd", et c'est la manière propre de tester.