PHP require()

//test.inc的內容

<?

function sum($a,$b=8) {

$c=$a+$b;

return $c;

}

?>

<?

$a=5;

require ("test.inc") ;

echo $c;

?>

如上,但畫面顯示不出任何數值

是哪裡出錯了嗎?

可以的話請說明詳細一點

謝謝

Update:

補充一下, 主要的疑問點

<?

$a=5;

require ("test.inc") ;

echo $c;

?>

這一段中引入test.inc檔

test.inc檔內預設$b是8

但為什麼引用到主程式

有了$a的值與$b的值

$c沒辦法顯示成test.inc內預設的$a+$b呢?

新手的怪問題...麻煩了

1 Answer

Rating
  • 1 decade ago
    Favorite Answer

    function sum($a,$b=8) {

    $c=$a+$b;

    return $c;

    }

    注意 他是一個函式(function)

    你沒有呼叫他是不會有動作的

    裡面的"變數和外面的變數是隔離的",儘管變數名稱一樣 實際上是不一樣的記憶體

    解釋:

    你定義 sum 這個函式 必須丟入2個參數 即 $a 和 $b

    但是你可以隨意丟資料進去 不一定要叫做 $a 和 $b

    例如 sum(5,10)

    實際計算過程 $c = 5 + 10 再回傳 $c

    最後回傳結果 15

    $b=8 是說預設是 8 你可以不丟這個參數進去

    例如 sum (10)

    實際計算過程 $c = 10 + 8 再回傳 $c

    最後回傳結果 18

    而在程式這邊我們通常會用一個變數來迎接回傳值

    如 $result = sum(10,5);

    結果$result就會變成15

    在你的程式裡,把最後一行

    echo $c;

    改成

    echo sum($a);

    即可做出你要的結果

    祝您學習愉快~

    2007-05-22 04:29:58 補充:

    另一個角度看

    你也可以把 test.inc 的內容改成

    <?

    $b=8;

    $c=$a+$b;

    ?>

    這樣子的話應該比較接近你原先的想法

    但這樣同樣的變數分散在不同的檔案是相當不好的!

    初學者該多避免^^

    2007-05-23 00:47:52 補充:

    因為你的

    test.inc 裡面是 function 函式

    而不是一般的程式碼

    函式是要呼叫 他才會去執行裡面的動作

    require並不是真正去執行它 而只是把它裝進你的頁面而已

    實際的動作還是要你自己去操作

    <?

    $a=5;

    require ("test.inc") ;

    $c = sum($a);

    echo $c;

    ?>

    這樣不知道有沒有了解 加油^^

    2007-05-23 00:51:10 補充:

    除非你把

    test.inc 改寫成這樣

    <?

    $b=8;

    $c=$a+$b;

    ?>

    這樣程式就會直接把這兩行當你程式中的一段執行

    Source(s): 自己, 自己, 自己
Still have questions? Get your answers by asking now.