9
votes

Chaque extrait de code PHP à l'intérieur de la balise a-t-elle sa propre portée variable?

Si oui, y a-t-il un moyen d'accéder à un VaR défini dans une autre étiquette d'extrait de code PHP?


0 commentaires

5 Réponses :


11
votes

Non, ils ne le font pas. Séparer Php?> Code> Tags Partager la même portée de variable. Vous pouvez accéder à toute variable déclarée à partir de n'importe quelle portée:

<?php $foo = 4; ?>
<?php echo $foo; /* will echo 4 */ ?>


1 commentaires

Re: "La seule notion de scopage dans PHP existe pour des fonctions ou des méthodes", PHP 5.3 et espaces de noms Tour de cette déclaration sur son oreille.



1
votes

Non, par défaut, tous les fichiers partagent la même portée de PHP. Le seul scopage que vous obtenez est d'utiliser des classes ou des fonctions.


0 commentaires

0
votes

Si vous avez

<php
echo $a
?>


0 commentaires

1
votes

La portée variable dans PHP ne fonctionne pas comme ça.

Le score variable fonctionne dans des classes et des fonctions. Par exemple: p> xxx pré>

ceci fonctionnera. P>

Toutefois: p>

<?php
$a = 10;

function get_a(){
  echo $a;
}
?>


0 commentaires

1
votes

Vous pouvez penser aux parties du script qui ne sont pas à l'intérieur PHP?> code> équivalent à une instruction ECHO, sauf sans aucune interpolation de variables, citations, etc. - seulement php?> code>. Donc, par exemple, vous pouvez même faire quelque chose comme ceci:

<?php
if (42)
{
?>
    This will only be output if 42 is true.
<?php
}
?>


3 commentaires

NOTE: Je ne dis pas que c'est une bonne idée de le faire, il illustre simplement mon point de vue.


Cette fonctionnalité est extrêmement utile pour le code généré automatiquement, mais je préfère ne pas lire ni écrire cela moi-même.


Tellement dégueulasse. Mais hey php était devant JSX: D