Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tester l'existence et la valuer d'un champ d'un tableau

4 réponses
Avatar
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/

4 réponses

Avatar
Teufel
mpg avait soumis l'idée :

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
Avatar
CrazyCat
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)

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
Avatar
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/
Avatar
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.