Bonjour à tous !
Je souhaite résoudre mes problèmes d'optimisations suite à un parse d'analyse de mon code via un PHP CodeSniffer qui indique si votre code respecte les "standards" de php.
Il apparaît une proposition d'optimisation assez agaçante. Je vous place le contexte :
Ceci me permet de parcourir rapidement un tableau multidimensionnel, et d'accéder en direct au contenu souhaité grâce à $value .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 $variable = array( 'truc' => array( 'otherkey1' => 'value a', 'otherkey2' => 'value b', ), 'machin' => array( 'otherkey1' => 'value c', 'otherkey2' => 'value d', ), ); foreach ($variable as $key => $value) { echo $value['otherkey1']; }
Hors, l'optimisation m'indique une 'erreur' :
Ce qui est effectivement vrai.Unused variable $key.
Alors je me suis penché pour savoir comment résoudre cette optimisation, tout en sachant que je ne comprends pas pourquoi PHP propose cette possibilité d'accès direct au contenu, et vous le reprocher après.
Je me suis dit alors de revoir chacun de mes foreach :
soit : qui me ferait faire trop de modification dans mes foreach complexes
soit : que je trouve pas très 'intelligent'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 foreach (array_keys($variable) as $key) { echo $variable[$key]['otherkey1']; }
soit : que je ne trouve pas très 'intelligent' et qui devra m'imposera encore plus de modifications
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 foreach ($variable as $key => $value) { $key=$key; echo $value['otherkey1']; }
ou soit : qui me fera le moins de changements compte tenu de la complexité réelle de certain foreach :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 foreach ($variable as $key => $value) { $value=$value; echo $variable[$key]['otherkey1']; }
Certains m'ont aussi émit l'hypothèse suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 foreach (array_keys($variable) as $key) { $value=$variable[$key]; echo $value['otherkey1']; }
Je ne sais pas si certains ont été confronté à ça, mais en gros, le php codesniffer m'invite à améliorer un code qui me semble déjà plus logique que les solutions alternatives conventionnelles.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 foreach (array_keys($variable) as $key) { foreach (array_keys($variable[$key]) as $value) { echo $value['otherkey1']; } }
Est-ce que quelqu'un a un avis pour avoir une meilleure solution ?
Merci
Cordialement
Partager