iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 9
1

回顧 Day8

  • 函式(function)
  • 呼叫函式

進入主題

Call By Value 、 Call By Reference

Call By Value

參數使用變數名稱與程式使用名稱雖然相同,但是會被視爲不同的資料,不會互相影響,這種做法叫做 Call By Value。

例子
<?php
    $x = 2;
    function showX($x)
    {
        $x = $x * 2;
        echo $x . "\n";
    }
    
    showX($x);
    echo $x . "\n";
?>

輸出結果如下

4
2

Call By Reference

另外一種是...
無論在程式的任何地方使用到該變數,會將該變數在記憶體中的 address 傳給程式使用,所以使用變數的地方都會指向同一塊記憶體。

一旦更動變數時,使用該變數的地方的值都會跟著改變。

例子
<?php
    $x = 2;
    function showX(&$x)
    {
        $x = $x * 2;
        echo $x . "\n";
    }

    showX($x);
    echo $x . "\n";
?>

輸出結果如下

4
4

今天就到這,明天再見囉~

reference from http://php.net/manual/en/language.references.pass.php
reference from IBSN 978-986-476-232-3


上一篇
[Day8] PHP - 函式(function)
下一篇
[Day10] PHP - 陣列(Array) part1
系列文
新手 Back-end 學習記錄30

尚未有邦友留言

立即登入留言