用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4368|回复: 7
收起左侧

[已解决] 关于codeigniter使用全局变量问题

[复制链接]
发表于 2011-2-26 12:29:57 | 显示全部楼层 |阅读模式
本帖最后由 keepSmile 于 2011-2-26 12:34 编辑

求解为什么比如我在视图使用下面一段代码。输出是2。而正常的是3。
PHP复制代码
 
$a = 1;
$b = 2;
 
function test()
{
    global $a, $b;
    $b = $a + $b;
}
 
test();
echo $b;
 
复制代码
发表于 2011-2-26 15:19:11 | 显示全部楼层
$a没有返回值,
$b的返回值是0

结果是直接echo 外面的$b 所以是2
发表于 2011-2-26 15:24:08 | 显示全部楼层
回复 1# keepSmile

PHP复制代码
global $a, $b;
     $a = 1;
     $b = 2;
 
    function test()
    {
        global $a, $b;
        $b = $a + $b;
        return $b;
    }
     
    echo test();
    echo $b;
复制代码


能返回3 了
 楼主| 发表于 2011-2-26 15:39:24 | 显示全部楼层
回复 3# skeay


    但如果代码不用ci,直接在php运行的话就可以的。
发表于 2011-2-26 16:51:27 | 显示全部楼层
视图里面的变量要先定义才能使用吧。。
具体的我也不清楚,我都不在视图写函数的。
等官方解答吧
发表于 2011-2-26 18:12:47 | 显示全部楼层
不要在视图里使用全局变量,或者说,不要在 PHP 里使用全局变量。
你可以忘记 PHP 有这个功能。
所有需要全局变量的地方,都是设计问题。。。。
发表于 2011-2-26 19:55:37 | 显示全部楼层
用引用传值好了
 楼主| 发表于 2011-2-26 21:13:35 | 显示全部楼层
ok  感謝各位大俠的解答。

本版积分规则