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"
?>