php不支持块级作用域会引发的问题和规避问题

Original 2019-02-22 16:40:15 262
abstract:因为php只有全局作用域和函数作用域,不支持块级作用域时,循环和判断语句中的声明变量自由权就很大,即使在循环和判断结束后,变量仍能在外部的环境中执行。例如会出现:<?php for($i=0;$i<10;$i++){ ; } var_dump($i);//输出int(10)为了避免此种情况发生。可以1、不要使用重名的变量;2、只在函数中声明变量,通过闭包的方式访问。

因为php只有全局作用域和函数作用域,不支持块级作用域时,循环和判断语句中的声明变量自由权就很大,即使在循环和判断结束后,变量仍能在外部的环境中执行。例如会出现:

<?php
for($i=0;$i<10;$i++){
	;
}
var_dump($i);//输出int(10)

为了避免此种情况发生。可以1、不要使用重名的变量;

2、只在函数中声明变量,通过闭包的方式访问。

Correcting teacher:天蓬老师Correction time:2019-02-22 16:50:19
Teacher's summary:不过,将块代码,放在一个自执行函数中, 也可以模拟出一个块级使用域

Release Notes

Popular Entries