Maison > Questions et réponses > le corps du texte
Je suis (encore) nouveau sur PHP et j'apprends au fur et à mesure.
J'ai souvent besoin de récupérer une certaine variable et d'accéder à ses propriétés.
<?php $id = $_REQUEST['id']; $user_info = get_userdata($id); echo('Username: ' . $user_info->user_login . "<br>"); echo('User level: ' . $user_info->user_level . "<br>"); echo('User ID: ' . $user_info->ID . "<br>"); echo('First Name: ' . $user_info->user_firstname . "<br>"); echo('Family Name: ' . $user_info->user_lastname . "<br>"); echo('user_registered: ' . $user_info->user_registered . "<br>"); ?>
Je préfère récupérer $user_info = get_userdata($id);
une fois puis l'utiliser en cas de besoin
Dans le même fichier, mais dans des <?php?>
blocs
<?php $id = $_REQUEST['id']; $user_info = get_userdata($id); ?> <some HTML> <?php echo $user_info->user_login; ?> <some HTML> <?php echo $user_info->user_login; ?>
Mais je soupçonne que $user_info
ne peut pas être partagé entre les blocs car ce n'est pas global.
Quelle est l’approche habituelle ?
P粉7138468792023-10-23 13:15:37
Vous pouvez l'utiliser à l'intérieur de blocs (boucles, instructions if) mais pas à l'intérieur de fonctions. Pour le faire fonctionner à l'intérieur d'une fonction vous devez utiliser le mot-clé global
:
$user_info ....... //declared outside function foo(){ global $user_info // now available here too // more code }
Vous pouvez en savoir plus sur la portée des variables PHP dans la documentation officielle :)< /a>
P粉2629261952023-10-23 09:09:44
Vous donnez trop de sens dans votre bloc de code php.
Ce n’est pas une chose mondiale.
Ces blocs appartiennent au même script PHP. C'est juste une manière intelligente de générer du HTML, rien de plus. Vous pouvez le remplacer par echo HTML sans aucune différence.
L'intégralité du script PHP est exécuté en une seule fois, plutôt que de manière itérative, comme vous pouvez l'imaginer, pensez au morceau PHP exécuté côté serveur, puis au morceau HTML exécuté côté client, puis revenez au morceau PHP côté serveur. etc. C'est faux.
L'intégralité du script PHP est exécuté côté serveur, génère du HTML brut dans le navigateur, puis disparaît.
C'est pourquoi vous ne pouvez pas programmer à la fois un formulaire HTML et son gestionnaire dans le même script PHP, il suffit de mettre ce dernier après le premier. Vous devez appeler à nouveau le serveur pour que le gestionnaire fonctionne correctement. Ce sera un tout autre appel, une autre instance du même script, ne sachant rien de l'appel précédent, qui est mort depuis longtemps. Voici une autre chose que vous devez savoir sur PHP :
L'exécution du script PHP est atomique. Ce n'est pas comme une application de bureau qui s'exécute en permanence dans le navigateur, ni même un démon qui est constamment connecté à l'application de bureau. Cela ressemble plus à un utilitaire de ligne de commande : il fait son travail et se ferme. Il fonctionne de manière indépendante :