首頁 後端開發 PHP問題 php怎麼讓變數稱為全域變數

php怎麼讓變數稱為全域變數

Sep 26, 2019 am 09:34 AM
全域變數

php怎麼讓變數稱為全域變數

我們知道,變數呢,其實就等於我們用來儲存資訊的容器。關於它的命名規則什麼的,相信大家也是比較清楚的,這裡就不贅述了。這裡呢,主要就來看PHP變數的兩個作用域,全域變數&局部變數。

看到這兩個變數作用域,相信大家腦海裡會浮現兩個單字global&static。沒錯,就是這兩個字。

我們知道,在所有函數外部定義的變量,擁有全域作用域。除了函數外,全域變數可以被腳本中的任何部分訪問,要在一個函數中存取一個全域變量,需要使用 global 關鍵字。然而,在 PHP 函數內部宣告的變數是局部變量,僅能在函數內部存取。下面,我們來看個實例:

<?php
$x=5; // 全局变量

function myTest()
{
    $y=10; // 局部变量
    echo "<p>测试函数内变量:<p>";
    echo "变量 x 为: $x";
    echo "<br>";
    echo "变量 y 为: $y";
}

myTest();

echo "<p>测试函数外变量:<p>";
echo "变量 x 为: $x";
echo "<br>";
echo "变量 y 为: $y";
?>
登入後複製

在上述實例中 myTest() 函數定義了 $x 和 $y 變數。 $x 變數在函數外聲明,所以它是全域變量, $y 變數在函數內宣告所以它是局部變數。

當我們呼叫myTest()函數並輸出兩個變數的值,函數將會輸出局部變數$y 的值,但不能輸出$x 的值,因為$x 變數在函數外定義,無法在函數內使用,如果要在函數中存取一個全域變量,則需要使用global 關鍵字。

然後我們在myTest()函數外輸出兩個變數的值,函數會輸出全局部變數$x 的值,但不能輸出$y 的值,因為$y 變數在函數中定義,屬於局部變數。

由此,我們可以知道,我們可以在不同函數中使用相同的變數名稱,因為這些函數內定義的變數名是局部變量,只作用於該函數內。這也算是小技巧了哈。

廢話不多說,我們先來看global關鍵字。 global 關鍵字用於函數內存取全域變數。在函數內呼叫函數外定義的全域變量,我們需要在函數中的變數前面加上global 關鍵字,來看個實例:

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

PHP 將所有全域變數儲存在一個名為$GLOBALS[index] 的陣列中。 index 保存變數的名稱。這個數組可以在函數內部訪問,也可以直接用來更新全域變數。所以,上面的實例可以寫成這樣:

<?php
$x=5;
$y=10;

function myTest()
{
    $GLOBALS[&#39;y&#39;]=$GLOBALS[&#39;x&#39;]+$GLOBALS[&#39;y&#39;];
}

myTest();
echo $y;
?>
登入後複製

以上是php怎麼讓變數稱為全域變數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1422
52
Laravel 教程
1316
25
PHP教程
1266
29
C# 教程
1239
24
C++ 函數的局部變數和全域變數有什麼不同? C++ 函數的局部變數和全域變數有什麼不同? Apr 19, 2024 pm 03:42 PM

C++局部變數和全域變數的差異:可見性:局部變數僅限於定義函數,而全域變數在整個程式中可見。記憶體分配:局部變數在堆疊上分配,而全域變數在全域資料區分配。作用域:局部變數在函數內,而全域變數在整個程式中。初始化:局部變數在函數呼叫時初始化,而全域變數在程式啟動時初始化。重新創建:局部變數在每次函數呼叫時重新創建,而全域變數僅在程式啟動時創建。

php request什麼意思 php request什麼意思 Jul 07, 2021 pm 01:49 PM

request的中文意思是“請求”,是php中的一個全域變量,是一個包含了“$_POST”、“$_GET”和“$_COOKIE”的數組。 「$_REQUEST」變數可以取得POST或GET方式提交的資料、COOKIE資訊。

go語言有靜態全域變數麼 go語言有靜態全域變數麼 Jul 11, 2023 pm 03:37 PM

go語言沒有靜態全域變量,它使用了一種更靈活的方式來處理全域變量的需求,全域變量通常是在包級被聲明,也就是在函數外部聲明的變量,這些變量在整個包中均是可見的,可以在套件中的任何函數中使用。

在JavaScript中實現全域變數的安全性 在JavaScript中實現全域變數的安全性 Jun 15, 2023 pm 10:33 PM

隨著JavaScript的流行,越來越多的網站和應用程式都依賴JavaScript。然而,JavaScript中全域變數的使用可能存在安全性問題。在此文中,我將介紹如何在JavaScript中實現全域變數的安全性。避免使用全域變數最好的方法是避免使用全域變數。在JavaScript中,所有變數都預設為全域變量,除非它們在函數中聲明。因此,應盡可能使用局部變數

Golang函數的全域變數和局部變數的資料競爭分析 Golang函數的全域變數和局部變數的資料競爭分析 May 21, 2023 am 08:19 AM

Golang是一種強型別程式語言,具有高效、簡潔、並發等特點,因此逐漸受到了越來越多的開發者的青睞。而在Golang的開發中,函數的全域變數和局部變數往往涉及資料競爭的問題。本文將從實際編碼的角度,對Golang函數中全域變數和局部變數的資料競爭問題進行分析。一、全域變數的資料競爭Golang全域變數在所有函數中均可訪問,因此如果不進行嚴謹的設計與編碼

C程式中全域變數的重新聲明 C程式中全域變數的重新聲明 Sep 20, 2023 pm 10:29 PM

我們將了解在不初始化的情況下重新宣告全域變數、透過初始化重新宣告全域變數、重新宣告全域變數並初始化兩次時,C和C++的行為有何不同。另外,我們將使用局部變數重複上述組合。 1.A)C程式:重新宣告全域變數而不進行初始化#include<stdio.h>intvar;intvar;intmain(){  printf("Var=%d",var);  return0;}輸出Var=0B) C++程式:

golang函數能否在goroutine中直接存取全域變數? golang函數能否在goroutine中直接存取全域變數? May 01, 2024 pm 05:51 PM

是的,Go函數在Goroutine中預設可以直接存取全域變數。原因:Goroutine繼承創建它的Goroutine的記憶體空間,包括對全域變數的存取權。

php全域變數都有哪些 php全域變數都有哪些 Aug 01, 2023 pm 01:21 PM

php全域變數有:1、$_SERVER,目前腳本運行的伺服器和執行環境資訊的超全域變數;2、$_GET,透過GET方法傳遞給目前腳本的變數的關聯數組;3、$_POST,透過POST方法傳遞給目前腳本的變數的關聯陣列;4、$_SESSION,儲存目前工作階段中使用者相關資訊;5、$_COOKIE,透過HTTP Cookie傳遞給目前腳本的變數的關聯陣列;6、$_FILES等等。

See all articles