PHP的變數總結 新手推薦

來源:互聯網
上載者:User

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 。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.