#PHP#(二)變量和常量

1、PHP變量


變量是存儲數據的“容器”

PHP變量規則:

  • 變量以 $ 符號開始,後面跟着變量的名稱

  • 變量名必須以字母或者下劃線字符開始

  • 變量名只能包含字母數字字符以及下劃線(A-z、0-9 和 _ ),不可以包含空格

  • 變量名是區分大小寫的(y Y 是兩個不同的變量)

demo

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

我們注意到當我們聲明變量的時候不必向PHP聲明該變量的數據類型,PHP會根據變量的值自動將變量轉爲化爲正確是數據類型,這是因爲PHP是一門弱類型的語言。

2、PHP變量作用域

變量的作用域是腳本中變量可被引用/使用的部分
PHP 有四種不同的變量作用域:

  • local

  • global

  • static

  • parameter

————————————————————————

01、局部作用域和全局作用域

全局作用域:所有函數外部定義的變量,擁有全局作用域。除了函數外,全局變量可以被腳本中的任何部分訪問,若想在一個函數中訪問一個全局變量,需要用到global關鍵字。
局部作用域:PHP 函數內部聲明的變量是局部變量,僅能在函數內部訪問

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

function myTest() 
{ 
    $y=10; // 局部變量 
    echo "<p>測試函數內變量:<p>"; 
    echo "變量 x 爲: $x"; 
    echo "<br>"; 
    echo "變量 y 爲: $y"; 
}  

myTest();    //變量 x 爲:
             //變量 y 爲:10

echo "<p>測試函數外變量:<p>"; 
echo "變量 x 爲: $x";  //變量x爲:5
echo "<br>"; 
echo "變量 y 爲: $y";  //變量y爲:
?>

02、PHP 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['y']=$GLOBALS['x']+$GLOBALS['y'];
} 

myTest();
echo $y;  //15
?>

03、Static 作用域

當一個函數完成時,它的所有變量通常都會被刪除。然而,有時候希望某個局部變量不要被刪除,在JavaScript中一般用閉包來處理,在PHP中這裏可以在邊框前加static 關鍵字即可

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

myTest();  //0
myTest();  //1
myTest();  //2
?>

若函數內部定義的變量x前不加關鍵詞static,則三次函數調用的結果應該都是爲0,注意:該變量仍然是函數的局部變量。

04、參數作用域
參數是通過調用代碼將值傳遞給函數的局部變量,參數是在參數列表中聲明的,是函數聲明的一部分。

<?php
function myTest($x) {
    echo $x;
}
myTest(5);  //5
?>

–> 其實這種有點類似於函數的傳參

3、PHP常量

常量是一個簡單值的標識符。該值在腳本中不能改變。

一個常量由英文字母、下劃線、和數字組成,但數字不能作爲首字母出現。 (常量名不需要加 $ 修飾符)。

設置常量(使用 define() 函數)函數語法如下:
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )

  • name:必選參數,常量名稱,即標誌符。

  • value:必選參數,常量的值。

  • case_insensitive :可選參數,如果設置爲 TRUE,該常量則大小寫不敏感。默認是大小寫敏感的。

一個區分大小寫的常量demo:

<?php
// 區分大小寫的常量名
define("GREETING", "歡迎訪問 Runoob.com");
echo GREETING;    // 輸出 "歡迎訪問 Runoob.com"
echo '<br>';
echo greeting;   // 輸出 "greeting"
?>

一個不區分大小寫的常量demo:

<?php
// 不區分大小寫的常量名
define("GREETING", "歡迎訪問 Runoob.com", true);
echo greeting;  // 輸出 "歡迎訪問 Runoob.com"
?>

常量是全局的
常量在定義後,默認是全局變量,可以在整個運行的腳本的任何地方使用。下面寫一個在函數內使用常量的demo:

<?php
define("GREETING", "歡迎訪問 Runoob.com");

function myTest() {
    echo GREETING;
}

myTest();    // 輸出 "歡迎訪問 Runoob.com"
?>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章