Rumah > Artikel > pembangunan bahagian belakang > 函数中全局变量的问题
不用函数的时候,代码如下:
$lists = array();for( $i = 0; $i < 5 ; $i++ ){ $lists[] = $i;}echo json_encode($lists);
$lists = array();function testarray(){ for( $i = 0; $i < 5 ; $i++ ) { $lists[] = $i; }}testarray();echo json_encode($lists);
在函数中直接使用变量并不会使其自动具有全局的作用范围,相反,你需要显式的声明Global。
如下:
$lists = array();
function testarray()
{
global $lists;
for( $i = 0; $i {
$lists[] = $i;
}
}
testarray();
echo json_encode($lists);
也可以通过传递参数的方法,可以避免使用全局变量造成迷惑。
用global是可以调用全局的变量,但不建议这样。
以传递参数方式实现会较好。
<?php$lists = array();function testarray(&$lists){ for( $i = 0; $i < 5 ; $i++ ) { $lists[] = $i; }}testarray($lists);echo json_encode($lists);?>