超全局变量方法这样为什么不对

来源:1-9 编程练习

qq_Jony_pqCHO2

2018-11-27 16:19:39

<?php

$imooc='imooc';

function test2(){

$GLOBALS['imooc'];

echo $imooc;

}

test2();


写回答

2回答

guly

2018-11-27

你好,

$imooc='imooc';
function test(){
    echo $GLOBALS['imooc'];
}
test();

这个是可以的,你输出的是echo $GLOBALS['imooc']。而不是echo $imooc;

$imooc='imooc';
echo $GLOBALS['imooc'];

$GLOBALS — 引用全局作用域中可用的全部变量

一个包含了全部变量的全局组合数组。变量的名字就是数组的键

所以  

$imooc='imooc';
function test(){
    echo $GLOBALS['imooc'];//是可以的
}
test();
<?php
$imooc='imooc';
function test2(){
$GLOBALS['imooc'];
echo $imooc;//是不可以的
}
test2();

如果解决您的问题请采纳,祝学习愉快!

0

guly

2018-11-27

你好,从代码中可以看出,$GLOBALS['imooc'];没有给全局变量赋值,而$imooc='imooc';不是设置的全局变量,正确代码参考如下:

$GLOBALS['imooc']='imooc';
function test(){
  echo $GLOBALS['imooc'];
}
test();

如果解决您的问题请采纳,祝学习愉快!

0
hq_Jony_pqCHO2
h $imooc='imooc'; function test(){ echo $GLOBALS['imooc']; } test(); 这样也能执行得通呢,第一行没加$GLOBALS
h018-11-27
共1条回复

0 学习 · 4928 问题

查看课程