Portée des variables dans php 5+

Bonjour,

J'ai lu quelques articles à ce sujet :
    {
      $x = 1;
      // seul x est accessible à cet endroit
      {
        // x est accessible à cet endroit,

        // y n'est pas accessible puisque la 

        // variable n'est pas encore déclarée
        $y = 2;
        // x et y sont accessibles
      }
      // y n'est pas accessible,

      // x est accessible à cet endroit
    }

et lorsque je tape :
<?php
	if ( true )
		$i = 1;

	echo $i;
?>
ça m'affiche 1, étrange.

En fait je me demandais si c'était du à une configuration de mon serveur (easyphp 2.0) ou si c'était normal :/
Configuration: Windows XP
Firefox 2.0.0.16

3 réponses

  1. Slt,

    moi je trouve ça normal que ça affiche 1 c'est meme normal ^^
    1. Sauf que dans les bases de l'algorithme, en théorie une variable a une durée de vie limitée au bloc dans lequel elle est déclarée.
      1. Contributeur
        Que ça soit en php4 ou 5

        if (true)
        {
        $i = 1;
        }
        echo $i;

        ça affichera toujours 1.
        Sinon bonjour ^^