php完全自學手冊login
php完全自學手冊
作者:php.cn  更新時間:2022-04-15 13:53:54

PHP 變數



PHP變數是什麼?

1、在PHP中變數是用來儲存資訊的容器,類似數學中的集合。

2、賦值方法與數學中的代數相類似。

變數是用來儲存值的,我們命令伺服器去工作的時候,往往需要產生一些數據,需要臨時性存放起來,方便取用。我們也可以理解為,變數就像一個購物袋,我們可以用來裝蘋果、榴槤(當然也可以用來裝玫瑰),需要注意的是,一般情況下一個變數只能裝一個(不要太貪心)值,除非是複合變數(後面變數類型時會介紹),當我們放進去一個蘋果後,再放進榴蓮的時候,蘋果就被替換掉,再放入香蕉,那麼榴槤就被替換了。


變數是用來儲存資訊的"容器":

實例

<?php
$x=5;
$y=6;
$z=$x+$y;
echo $z;
?>

##執行實例»點擊"運行實例" 按鈕查看線上實例


與代數類似

x=5

y=6
z=x +y

在代數中,我們使用字母(如x),並給它賦值(如5)。

從上面的表達式 z=x+y ,我們可以計算 z 的值為 11。

在 PHP 中,這些字母稱為

變數

變數是用來儲存資料的容器。
lamp


PHP 變數

與代數類似,可以給予PHP 變數某個值(x=5)或表達式( z=x+y)。

變數可以是很短的名稱(如 x 和 y)或更具描述性的名稱(如 age、carname、totalvolume)。

PHP 變數規則:

  • 變數以$ 符號開始,後面跟著變數的名稱

  • 變數名稱必須以字母或底線字元開始

  • 變數名稱只能包含字母數字字元以及底線(A-z、0-9 和_ )

  • 變數名稱不能包含空格

  • 變數名稱是區分大小寫的($y 和$Y 是兩個不同的變數)

PHP 語句和PHP 變數都是區分大小寫的。

建立(宣告)PHP 變數

PHP 沒有宣告變數的指令。

變數在您第一次賦值給它的時候被建立:

實例

<?php
$txt="Hello world!";
$x=5;
$y=10.5;
echo $txt;
?>

##執行實例»點擊"運行實例" 按鈕查看線上實例

在上面的語句執行中,變數

txt 將保存值Hello world! ,且變數x 將保存值5

註解:當您賦一個文字值給變數時,請在文字值兩邊加上引號。


PHP 是一門弱型別語言

在上面的實例中,我們注意到,不必向 PHP 宣告該變數的資料型別。

PHP 會根據變數的值,自動把變數轉換為正確的資料型別。

在強型別的程式語言中,我們必須在使用變數前先宣告(定義)變數的型別和名稱。


PHP 變數作用域

變數的作用域是腳本中變數可被引用/使用的部分。

PHP 有四種不同的變數作用域:

  • local

  • global

  • static

  • parameter


#局部和全域作用域

在所有函數外部定義的變量,擁有全域作用域。除了函數外,全域變數可以被腳本中的任何部分訪問,要在一個函數中存取一個全域變量,需要使用 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"; 
?>

lamp
運行實例»點擊"運行實例" 按鈕查看線上實例在上述實例中myTest() 函數定義了$x 和$y 變數。 $x 變數在函數外聲明,所以它是全域變量 , $y 變數在函數內宣告所以它是局部變數。 當我們呼叫myTest()函數並輸出兩個變數的值, 函數會輸出局部變數$y 的值,但是不能輸出$x 的值,因為$x 變數在函數外定義,無法在函數內使用,如果要在一個函數中存取一個全域變量,則需要使用global 關鍵字。 然後我們在myTest()函數外輸出兩個變數的值,函數會輸出全局部變數$x 的值,但不能輸出$y 的值,因為$y 變數在函數中定義,屬於局部變數。
Note
#####################你可以在不同函數中使用相同的變數名稱,因為這些函數內定義的變數名稱是局部變量,只作用於此函數內。 ############

PHP  global 關鍵字

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

在函數內呼叫函數外定義的全域變量,我們需要在函數中的變數前面加上global 關鍵字:

實例

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

function myTest()
{
global $x,$y;
$y=$x+$y;
}

myTest();
echo $y; 
?>

運行實例»

點擊"運行實例" 按鈕查看線上實例

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

上面的實例可以寫成這樣:

實例

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

function myTest()
{
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
} 

myTest();
echo $y;
?>

執行實例»

點擊"運行實例" 按鈕查看線上實例

註:上述程式碼在PHP5版本下輸出值是15;但是PHP中文網線上實例環境是PHP7版本的,所以輸出值應為10。因為在最新的php7版本中,PHPglobal變數處理機制進行了修改,此版本下global關鍵字只能引用簡單變數。詳情區別介紹可查看此文:

關於PHP5和PHP7版本下global變數機制有哪些變化? (程式碼實測)


Static 作用域

當一個函數完成時,它的所有變數通常都會被刪除。然而,有時候您希望某個局部變數不要被刪除。

要做到這一點,請在您第一次宣告變數時使用static 關鍵字:

實例

<?php

function myTest()
{
static $x=0;
echo $x;
$x++;
}

myTest();
myTest();
myTest();

?>

執行實例»

點擊"運行實例" 按鈕查看線上實例

然後,每次呼叫函數時,該變數將會保留著函數前一次被呼叫時的值。

註解:該變數仍然是函數的局部變數。


參數作用域

參數是透過呼叫程式碼將值傳遞給函數的局部變數。

參數是在參數清單中聲明的,作為函數宣告的一部分:

實例

<?php

function myTest($x)
{
echo $x;
}

myTest(5);

?>

##運行實例» 點擊"運行實例" 按鈕查看線上實例

我們將在

PHP 函數 章節對它做更詳細的討論。

#