J'ai rencontré un problème lors de l'écriture de l'imbrication de boucles dans les commentaires :
Avertissement : argument non valide fourni pour foreach() dans /home/yiliaoba/domains/chaochaoblog.com/public_html/ wp-content/ theme/chaochao/comments.php à la ligne 49
D'accord, un argument invalide est apparu, c'est-à-dire un paramètre indisponible.
Comment ce problème est-il survenu ? Revenez en arrière et trouvez le code comme suit :
foreach ($comments as $comment) :
Vous pouvez maintenant voir que $comments est variable en dehors de la fonction , et nous l'utilisons dans la fonction. Selon les idées générales de programmation, les variables en dehors de la fonction doivent être considérées comme des variables globales. S'il s'agit de variables globales, il n'y a aucun problème à les appeler dans la fonction.
Il semble qu'il y ait quelque chose qui ne va pas avec PHP et notre pensée traditionnelle. Alors, quelles sont les variables globales en PHP, j'ai spécialement écrit le code pour l'essayer ?
1. Utilisez la définition globale pour afficher directement en externe :
global $mytext; $mytext=”nihao”; function chao_echo(){ echo $mytext; } chao_echo();
Résultat : aucune sortie
2. Utilisez le tableau GLOBALS pour afficher :
global $mytext; $mytext=”nihao”; function chao_echo(){ echo $GLOBALS['mytext']; } chao_echo();
Résultat : La sortie est normale
3. Déclarez globalement les variables en dehors de la fonction au sein de la fonction :
$mytext=”nihao”; function chao_echo(){ global $mytext; echo $mytext; echo $GLOBALS['mytext']; } chao_echo();
4. Passez les variables externes de la fonction dans les paramètres :
$mytext=”nihao”; function chao_echo($mytext){ echo $mytext; } chao_echo($mytext);
référencer des variables en dehors de la fonction :
1 Déclaration globale en dehors de la fonction, et utiliser la référence de tableau $_GLOBALS. à l'intérieur de la fonction. 2. Déclaration globale dans la fonction, tableau $_GLOBALS dans la fonction ou référence directe. 3. Passez un paramètre lors de l'appel de la fonction.Ensuite, notre version modifiée de la fonction de boucle imbriquée est la suivante
<?php function chao_comment_circle($chao_id,$comments){ ?> <?php foreach ($comments as $comment) > <?php if($comment->comment_parent==$chao_id) > <!-- 子评论 b --> <div class="comment_one_sub"> <?php if (function_exists('get_avatar')) { ?> <div class="gravatar_sub"><?php echo get_avatar($comment->comment_author_email,'32'); ?></div> <?php } ?> <div class="comment_frame_sub"> <div class="comment_author_sub"><a href="<?php echo $comment->comment_author_url; ?>"><?php echo $comment->comment_author; ?></a></div> <div class="comment_reply_sub" onclick="chao_reply('<?php echo $comment->comment_ID; ?>','<?php echo $comment->comment_author; ?>')"><a href="#respond">【回复】</a></div> <div class="comment_date_sub"><?php echo $comment->comment_date; ?> <?php echo $comment->comment_time; ?></div> </div> <div class="comment_text_sub"><?php echo $comment->comment_content; ?></div> <?php chao_comment_circle($comment->comment_ID,$comments); ?> </div> <!-- 子评论 e --> <?php endif ?> <?php endforeach ?> <?php } ?>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!