首頁 >後端開發 >PHP問題 >js全域變數和php全域變數的差別是什麼

js全域變數和php全域變數的差別是什麼

WBOY
WBOY原創
2022-02-21 14:54:042066瀏覽

js全域變數和php全域變數的差異:PHP在函數中呼叫全域變數需要利用global關鍵字,該關鍵字是用來匯入全域變數的,而在js中呼叫全域變數則不需要利用關鍵字。

js全域變數和php全域變數的差別是什麼

本文操作環境:Windows10系統、PHP7.1版、Dell G3電腦。

js全域變數和php全域變數的差異是什麼

PHP global 關鍵字

global 關鍵字用於在函數內存取全域變數。

要做到這一點,請在(函數內部)變數前面使用global 關鍵字:

實例

<?php
$x=5;
$y=10;
function myTest() {
  global $x,$y;
  $y=$x+$y;
}
myTest();
echo $y; // 输出 15
?>

js全域變數

##JS中宣告全域變數主要分為顯式宣告或隱式宣告下面分別介紹。

宣告方式一:

使用var(關鍵字) 變數名(標識符)的方式在function外部聲明,即為全域變量,否則在function聲明的是局部變數。此方式即為明確宣告詳細如下:

var test = 5;  //全局变量
function a()
{
  var cc=3; //局部变量
  alert(test);
}
function b(){alert(test);}

宣告方式二:

沒有使用var,直接給予識別碼test賦值,這樣會隱式的宣告了全域變數test。即使該語句是在一個function內,當該function被執行後test變成了全域變數。

test = 5;//全局变量 
function a()
{
  aa=3; //全局变量
  alert(test);
}

js全域變數的優點:

可以減少變數的個數,減少由於實際參數和形式參數的資料傳遞所帶來的時間消耗。

js全域變數的缺點:

(1)全域變數保存在靜態存貯區,程式開始運行時為其分配內存,程式結束釋放該記憶體。與局部變數的動態分配、動態釋放相比,生存期比較長,因此過多的全域變數會佔用較多的記憶體單元。

(2)全域變數破壞了函數的封裝效能。函數像一個黑盒子,一般是透過函數參數和回傳值進行輸入輸出,函數內部實現相對獨立。但函數中如果使用了全局變量,那麼函數體內的語句就可以繞過函數參數和返回值進行訪問,這種情況破壞了函數的獨立性,使函數對全局變量產生依賴。同時,也降低了此函數的可移植性。

(3)全域變數使函數的程式碼可讀性降低。由於多個函數都可能使用全域變量,函數執行時全域變數的值可能隨時會變化,對於程式的查錯和偵錯都非常不利。

因此,如果不是萬不得已,最好不要使用全域變數。

推薦學習:《

PHP影片教學

以上是js全域變數和php全域變數的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn