在thinkPHP3.2.3的视图里写了一个php全局变量,居然有惊人的发现。
黄舟
黄舟 2017-06-08 11:01:45
[PHP讨论组]

使用thinkPHP3.2.3的框架,在view(视图)里写了一段很简单的代码。这个视图文件的后缀是.html

<?php
    $x=10;
    $y=10;
    function add(){
        global $x,$y;
        $y=$x+$y;
    }
    add();
    echo $y;
?>

结果echo出来的10,很不理解,结果应该是20才对呀。 不相信自己就在写了一遍,还是10,想了想写到一个单独的php文件里去吧,结果就是20。这是为什么呢? thinkPHP里的视图不支持php的语法了吗? 请大神指教!

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(2)
代言

显然你这儿的$x, $y并不是global变量.
所以函数里面的global $x, $y引用的并不是上面的x,y

你看一下编译过的模板文件就会发现, 这段代码应该是在一个函数里面include的.

大家讲道理

试试

<?php
    $x=10;
    $y=10;
    function add() use(&$x, &$y){
        $y=$x+$y;
    }
    add();
    echo $y;
?>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号