Qu'est-ce que extract (shortcode_atts (array (do?
1 réponses
- votes
-
- 2013-05-15
shortcode_atts()
fonctionne commearray_merge()
: Ilfusionne la deuxième liste d'arguments dans lapremière. La différenceest: Ilne fusionne que les clésprésentes dans lepremier argument ($default
).extract()
puisprend les clés dutableau,définit ceux-ci commenoms de variableset leurs valeurs comme valeurs de variables.'w' => '500'
dans votreexemple devient$w = '500'
.N'utilisezpas
extract()
. Ce style de codetrèsmauvais. Son utilisation était obsolètemême dans lenoyau ,et cela signifie quelque chose… :)Votreexemple doit être écrit comme suit:
$args = shortcode_atts( array( 'w' => '500', 'h' => '330', 'q' => '', 'geo' => 'US', ), $atts ); $w = (int) $args['w']; $h = (int) $args['h']; $q = esc_attr( $args['q'] );
shortcode_atts()
works likearray_merge()
: It merges the second list of arguments into the first one. The difference is: It merges only keys present in the first argument ($default
).extract()
then takes the array keys, sets these as variable names and their values as variable values.'w' => '500'
in your example becomes$w = '500'
.Do not use
extract()
. This very bad code style. Its usage was deprecated even in core, and that means something … :)Your example should be written as:
$args = shortcode_atts( array( 'w' => '500', 'h' => '330', 'q' => '', 'geo' => 'US', ), $atts ); $w = (int) $args['w']; $h = (int) $args['h']; $q = esc_attr( $args['q'] );
-
Je vous remercie.Jene connaissaispas l'extrait,alorsmercipour ça aussi!Thank-you. I didn't know about the `extract`, so thanks for that too!
- 1
- 2013-05-15
- mattnewbie
-
`extract ()`est également découragépar lesnormes de codage WP.Voir https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/#dont-extract`extract()` is also discouraged by WP coding standards. See https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/#dont-extract
- 6
- 2016-02-17
- alexg
-
Attention!N'utilisezpasextract () sur des donnéesnonfiables,comme l'entrée utilisateur.N'estpas sécuriséet vouspouvez créerbeaucoup de conflitset également écraser certains codes que vous aviez auparavant.Celane peut être utilisé que dans unepartie de code vraiment,vraiment,vraimentprotégée où vous saurez ce que vous attendezet ce dont vous avezbesoin.Warning! Do not use extract() on untrusted data, like user input. Is unsecure and you can made a lot of conflicts and also overwritte some codes what you have before. That only can be used in some realy, realy, realy protected part of code where you will know what expected and what you need.
- 0
- 2017-04-13
- Ivijan Stefan Stipić
Le codex dit
Celan'apasbeaucoup de senspourmoi (je suis un débutant).
Voici unexemple:
Pouvez-vousexpliquer?