5.3.1 PHP局部變量

PHP變量的范圍

?變量的范圍
–當主程序調用函數時,PHP 會暫時停止目前主要程序流程的運行,并傳遞必要的運算參數給目標函數使用,以執行函數的程序碼片段。
–在函數執行結束后,函數會回傳執行結果所得的數值,并將執行流程轉回原本主程序中斷的地方,繼續執行運作。
?變量的能見度
–所謂變量的能見度,意指變量在程序中的可作用范圍。當一個變量執行賦值動作后,會隨著聲明局部的差異,而有不同的作用范圍。大致上來說變量會依據聲明的局部分為下列兩種:局部變量和全局變量

局部變量(內部變量)
在函數之中聲明的變量就是局部變量,并且該變量只有在函數范圍之中才能加以使用。如果其它程序局部需要調用使用該變量值時,必須透過「return」指令,來將其傳回至主程序區塊以作后續處理。

<?php
    $a=0;
    function print_A(){ 
        $a = 3; //定義局部變量
        echo "在函數中顯示局部變量 a 值: $a <p>";
        return $a; 
    }
    $b = print_A();
    echo "在函數外顯示局部變量 b 值: $b <br>";
     echo $a; 
?>

全局變量

在函數范圍之外所聲明的變量就是全局變量。由于函數可以視為單獨的程序片段,所以局部變量會復蓋全局變量的能見度,因此在函數中并無法直接調用使用全局變量。
函數中若要使用全局變量時,必須要利用global關鍵字定義目標變量,以告訴函數主體此變量為全局。

     <?php
       $A=“Hello !!”;         //定義全局變量
        function print_A() {     //定義函數 print_A()       
        global $A;            //利用 global 關鍵字聲明變量 A 為全局變量
               echo $A;
        }
        print_A();
        ?>

也可以使用預定義的全局變量數組$GLOBALS.這是一個特殊變量在程序運行時自動創建。格式:echo $GLOBALS[“A”];

注意事項

?在函數中聲明全局變量時,其名字要與全局變量一致
?通過unset($var)可以手動刪除變量,變量會在內存中被釋放,也就不在全局作用域中了。
?使用require與include包含不會影響作用域
?通過參數列表傳遞給函數的變量,對于函數來說是局部變量,除非在傳遞時帶有&引用符號

例:test.php

<?php
    
if(true) {
        $age = 30;
    }


    echo $age;

    函數內部聲明的變量, 只能在函數內部調用, 這就是--------局部變量

    函數的參數,就是一個局部變量, 聲明成形成的, 可以在調用時,給值, 傳值


    function demo($sex) {
        $age = 30;



        echo "高老師很帥{$age}, 是{$sex}<br>";
    }

    demo("男");

    echo $sex;
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • PHP 學習目錄 ├─PHP視頻教程 1 LAMP網站構建 │ ├─PHP教程 1.1.1 新版視頻形式介紹│ ...
    曹淵說創業閱讀 16,175評論 29 417
  • 目錄### 一、函數的定義二、自定義函數三、函數的工作原理和結構化編程四、PHP變量的范圍五、聲明及應用各種形式的...
    akon2016閱讀 800評論 1 1
  • 函數的定義 函數是什么? 函數(function)是一段完成指定任務的已命名代碼塊。函數可以遵照給它的一組值或參數...
    dptms閱讀 1,067評論 0 2
  • 2016.11.20 沈陽 晴 第一次用簡書,也不知道寫點什么,先說一些自己的近況吧。從去年母親生病的時候,就想做...
    Lakerfan閱讀 141評論 0 0
  • 整體代碼
    Py_Explorer閱讀 1,374評論 0 0