搜尋

首頁  >  問答  >  主體

在thinkPHP3.2.3的視圖裡寫了一個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的語法了嗎?請大神指教!

黄舟黄舟2784 天前618

全部回覆(2)我來回復

  • 代言

    代言2017-06-08 11:03:45

    顯然你這兒的$x, $y並不是global變數.
    所以函數裡面的global $x, $y引用的並不是上面的x,y

    你看一下編譯過的模板檔就會發現, 這段程式碼應該是在一個函數裡面include的.

    回覆
    0
  • 大家讲道理

    大家讲道理2017-06-08 11:03:45

    試試

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

    回覆
    0
  • 取消回覆