在thinkPHP3.2.3的視圖裡寫了一個php全域變量,居然有驚人的發現。
黄舟
黄舟 2017-06-08 11:01:45
0
2
600

使用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;
?>
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板