程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP的變量總結 新手推薦

PHP的變量總結 新手推薦

編輯:PHP綜合
PHP中不需要顯示聲明變量,變量聲明可以與賦值同時進行。好的編程習慣是:所有變量應當在使用前進行聲明,最好帶有注釋。

一、變量的賦值

變量聲明後就可以給其賦值,有兩種方式:值賦值和引用賦值。
1、值賦值
$color = "red" ;
$sum = 12+"15" ; /* $sum = 27 */

2、 若希望兩個變量指向一個值的同一個副本,則需要通過引用賦值。
引用賦值
所創建的變量與另一個變量引用的內容相同,如果多個變量引用了同一個內容,修改其中任意一個變量,在其余的變量上都將有所反映。
例子:
<?php
$value1 = "hello" ;
$value2 = &value1 ; /*$value1 and $value2 both equal "hello" .*/
$value2 = "goodbye" ; /*$value1 and $value2 both equeal "goodbye". */
?>

二、變量的作用域
PHP腳本的任何位置都可以聲明變量,但聲明變量的位置會大大影響訪問變量的范圍。這個可訪問的范圍稱為作用域(scope)。
PHP變量的4中作用域:
△ 局部變量
△ 函數參數
△ 全局變量
△ 靜態變量
1、局部變量
在函數中聲明的變量認為是局部變量,只能在函數中引用,退出聲明變量的函數時,該變量及相應的值就會撤銷。消除了導致全局訪問的變量被有意或無意修改的可能性。

$x = 4 ;
function assignx ( ) {
$x = 0 ;
print "\$x inside function is $x . <br>" ;
}
assignx ( ) ;
print "\$x outside of function is $x . <br>" ;
代碼的執行結果為:
$x inside function is 0 .
$x outside function is 4 .

2、函數參數
PHP和其他編程語言一樣,任何接受參數的函數都必須在函數首部中聲明這些參數。雖然這些參數接受函數外部的值,但退出函數後就無法再訪問這些參數。(按引用傳遞的參數除外)
例如:
function x10 ( $value ) {
$value = $value * 10 ;
return $value ;
}
函數執行完畢,參數即將撤銷。

3、全局變量
與局部變量相反,全局變量可以在程序的任何位置訪問。當在函數中改變全局變量時,需要在該函數中將變量顯示地生命為全局變量,只要在函數中的該變量前加上GLOBAL即可。
例如:
$somevar = 15 ;
function addit ( ) {
GLOBAL $somevar ;
$somevar ++ ;
print "somevar is $somevar" ;
}
addit ( ) ;
$somevar 顯示的值應為16 ,但是,若去掉 GLOBAL $somevar ; 這行,變量$somevar 將被隱含的設置為0,再加1 ,最後顯示的值就是1 。
聲明全局變量的另一方法是使用PHP的$GLOBAL數組,如下:
$somevar = 15 ;
function addit ( ) {
$GLOBALS[ 'somevar' ]++ ;
}
addit ( ) ;
print "somevar is ". $GLOBALS[ 'somevar' ] ;
返回值如下: somevar is 16 .

4、靜態變量
靜態(static)作用域。普通變量的函數參數在函數結束時會撤銷,但靜態變量在函數退出時不會丟失值,並且再次調用此函數時還能保留這個值。在汴梁明前加上關鍵字 STATIC 就可以聲明一個靜態變量。
STATIC $somevar ;
考慮一個例子:
function keep_track ( ) {
STATIC $count = 0 ;
$count ++ ;
print $count ;
print "<br>" ;
}
keep_track ( ) ;
keep_track ( ) ;
keep_track ( ) ;
keep_track ( ) ;
若$count 沒有被指明為靜態(相應的,$count就是一個局部變量),輸出將會是
1
1
1
1
因為$count是靜態的,它會在每次執行函數時保留前面的值。輸出如下:
1
2
3
4
靜態作用域對於遞歸函數很有用。遞歸函數(recursive function)是一個功能強大的編程概念,它是一個可以重復調用自身的函數,直到滿足某個條件為止。

5、 PHP的超級全局變量
PHP提供了很多有用的預定義變量,可以在執行腳本的人和位置訪問,用於提供大量與環境有關的信息。可以通過這些變量獲得關於當前用戶會話、用戶操作系統環境和本地操作環境等詳細信息。PHP會創建部分變量,而其他許多變量的可用性和值則取決於操作系統和WEB服務。

輸出所有預定義變量:
foreach ( $_SERVER as $var => $value ) {
echo "$var => $value <br>" ;
}
顯示用戶的IP地址:
print "HI!Your IP address is ".$_SERVER[ ' REMOTE_ADDR' ] ;

PHP中要使用預定義變量數組,必須在PHP.INI文件中啟用配置參數 track_vars 。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved