Supposons que si nous déclarons une variable dans le bloc BEGIN/END, la portée de cette variable sera dans ce bloc particulier. Nous pourrions également déclarer une variable du même nom dans un autre bloc BEGIN/END, ce qui serait tout à fait légal, mais sa portée serait dans son bloc BEGIN/END. Cela peut être compris à l'aide de l'exemple suivant, dans lequel nous créons une procédure pour afficher la portée d'une variable -
mysql> Create Procedure Scope_variables() -> BEGIN -> DECLARE A Varchar(5) Default 'outer'; -> BEGIN -> DECLARE A Varchar(5) Default 'inner'; -> SELECT A; -> END; -> SELECT A; -> END; -> // Query OK, 0 rows affected (0.08 sec)
Dans la procédure ci-dessus, nous avons deux variables portant le même nom, à savoir A. Ici, tant que la variable interne est déclarée dans la portée, elle est prioritaire. Le point principal est que lorsque la première FIN est atteinte, la variable interne disparaît et est dite "hors de portée". Pour comprendre ce concept, appelez ce processus comme suit -
mysql> CALL Scope_variables(); +-------+ | A | +-------+ | inner | +-------+ 1 row in set (0.00 sec) +-------+ | A | +-------+ | outer | +-------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)
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!