vous voulez t o avoid the global
keyword. Si vous devez insérer des données dans une fonction, c'est un signe certain que votre design est cassé (et Wordpress est cassé). Utilisez Dependency Injection et passer $ post et pod $ à la fonction (qui empêchera également spooky action at a distance):
function pod($post, $pod)
{
$id = get_the_ID();
$pod = new WP_POD($id);
return $pod;
}
Toutefois, cela ne marche pas encore beaucoup de sens. Vous n'utilisez pas $ post dans la fonction, alors pourquoi le transmettre? Au lieu de cela, vous atteignez à nouveau la portée de la fonction pour récupérer une sorte d'identifiant. Et vous l'utilisez pour instancier une instance de WP_POD et l'assigner à la portée globale.
Pourquoi assignez pas seulement faire
function createPod($id)
{
return new WP_POD($id);
}
puis appelez avec
$pod = createPod(get_the_ID());
ou tout simplement supprimer la fonction tout à fait et il suffit de faire
$pod = new WP_POD(get_the_ID());
Oui, ce wont le $ pod instance à la portée mondiale, mais je doute que vous en avez vraiment besoin là de toute façon. En ce qui concerne les performances: vous ne devriez pas vous soucier des performances, sauf si vous avez profilé votre application et constaté qu'elle est lente et que ce code particulier est en effet la raison de sa lenteur.
Merci beaucoup pour l'explication détaillée! Je pensais que le global est une chose convinienc, maintenant je vois qu'il pourrait ne pas. Il n'y a pas de ralentissement sur mon site, je pense juste qu'il est agréable d'utiliser moins de codes, ne semble pas nécessaire :-) – Jenny