keepSmile 发表于 2011-2-26 12:29:57

关于codeigniter使用全局变量问题

本帖最后由 keepSmile 于 2011-2-26 12:34 编辑

求解为什么比如我在视图使用下面一段代码。输出是2。而正常的是3。

$a = 1;
$b = 2;

function test()
{
    global $a, $b;
    $b = $a + $b;
}

test();
echo $b;

skeay 发表于 2011-2-26 15:19:11

$a没有返回值,
$b的返回值是0

结果是直接echo 外面的$b 所以是2

skeay 发表于 2011-2-26 15:24:08

回复 1# keepSmile

global $a, $b;
   $a = 1;
   $b = 2;

    function test()
    {
      global $a, $b;
      $b = $a + $b;
      return $b;
    }
   
    echo test();
    echo $b;

能返回3 了

keepSmile 发表于 2011-2-26 15:39:24

回复 3# skeay


    但如果代码不用ci,直接在php运行的话就可以的。

skeay 发表于 2011-2-26 16:51:27

视图里面的变量要先定义才能使用吧。。
具体的我也不清楚,我都不在视图写函数的。
等官方解答吧

Hex 发表于 2011-2-26 18:12:47

不要在视图里使用全局变量,或者说,不要在 PHP 里使用全局变量。
你可以忘记 PHP 有这个功能。
所有需要全局变量的地方,都是设计问题。。。。

jeongee 发表于 2011-2-26 19:55:37

用引用传值好了

keepSmile 发表于 2011-2-26 21:13:35

ok感謝各位大俠的解答。
页: [1]
查看完整版本: 关于codeigniter使用全局变量问题