php基礎--變數及作用域
阿新 • • 發佈:2019-01-10
php變數定義規則
- 變數必須以$符號開頭,後面接變數名
- 變數名必須以字母或者下劃線開頭
- 變數名只能包含字母數字和下劃線(A-z,0-9和_)
- 變數名不能包含空格
- 變數名區分大小寫
建立變數
在php中,不必事先宣告變數,在給變數賦值的時候被建立
<?php
$txt = 'Hello,world'; //在給文字賦值的時候要加上引號
$x = 5;
$number = 5.5;
?>
通過上面的變數賦值可以看出,沒有對變數宣告資料型別,這是因為php是一門弱型別的語言,php會自動把變數轉換為正確的資料型別
php變數作用域
變數的作用域是指令碼中變數可被引用/使用的範圍,共有四種
- local
- global
- static
- paramter
全域性作用域和區域性作用域
在所有函式外部定義的變數,擁有全域性作用域global;在函式內部定義的變數用於區域性作用域local。全域性變數可以被指令碼的任何位置訪問,但在函式內部訪問全域性變數要使用global關鍵字。而區域性變數只能在函式內部進行訪問。
<?php
$x = 2;
function test(){
$y = 3;
echo $x;
echo "<br>";
echo $y;
echo "<br>";
}
test();
echo $x;
echo "<br>";
echo $y;
上面的程式碼中,當呼叫test()函式時,會輸出兩個變數的值,函式會輸出區域性變數$y
的值,但是不能輸出全域性變數$x
的值。
而在函式外輸出的兩個變數的值中,會輸出變數$x
的值,但是不能輸出$y
的值,因為$y
是區域性變數,不能在函式外部訪問。
函式內部訪問全域性變數
在函式內部訪問全域性變數,要使用global關鍵字
<?php
$x = 1;
function test(){
global $x;
$y = 2;
echo $x+$y;
}
test(); //輸出3
?>
static作用域
當一個函式呼叫完後,它的所有變數都會被刪除,如果想要某個區域性變數不被刪除,那麼可以使用static關鍵字
<?php
function test(){
$x = 0;
echo $x;
$x++;
}
test(); //輸出0
test(); //輸出0
test(); //輸出0
?>
<?php
function test(){
static $x = 0;
echo $x;
$x++;
}
test(); //輸出0
test(); //輸出1
test(); //輸出2
?>
parameter 引數作用域
引數是通過呼叫程式碼將值傳遞給函式的區域性變數,引數是在引數列表中宣告的,作為函式宣告的一部分。
<?php
function test($x){
echo $x;
}
test(1); //輸出1
test(2); //輸出2
?>