Maison > Questions et réponses > le corps du texte
P粉4492810682023-08-16 17:52:28
La définition de la fonction
implode
est très grossièrement équivalente au code suivant (ceci n'est qu'un exemple, non testé) :
function not_really_implode($glue, $pieces) { $result = ''; $first = true; foreach ( $pieces as $piece ) { if ( ! $first ) { $result .= $glue; } $pieceAsString = (string)$piece; $result .= $pieceAsString; $first = false; } return $result; }Le point clé est cette ligne de code :
$pieceAsString = (string)$piece;
- Afin de combiner les éléments du tableau, chaque élément doit être converti en chaîne un par un. $pieceAsString = (string)$piece;
- 为了组合数组的元素,implode
Maintenant, réfléchissez-y si ressemblait à ceci :
$pieces = [ 'one', ['two-a', 'two-b'], 'three', ];
À un moment donné de notre boucle, nous aurons $pieces
et essaierons de le convertir en chaîne - oups !
La raison pour laquelle l'avertissement apparaît est qu'à l'intérieur de $piece = ['two-a', 'two-b']
votre
matrice, il y a d'autres matrices. Cela pourrait se produire de plusieurs manières :
$_REQUEST
$_REQUEST['example'] = ['a', 'b'];
$_REQUEST
可以直接写入。例如,有人可以写入$_REQUEST['example'] = ['a', 'b'];
reconnaîtra certaines notations /your-page.php?example[]=a&example[]=b
et ['a', 'b']
.
/your-page.php?example[]=a&example[]=b
,$_REQUEST
将自动填充为['a', 'b']
Cela nous rappelle un rappel très important : des hypothèses sur le contenu de , car $_REQUEST
la saisie est sous le contrôle de l'utilisateur, et celui-ci n'est peut-être pas votre ami.