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

PHP之變量、常量學習筆記

編輯:PHP綜合


有關變量的傳地址賦值

PHP 3 中,變量總是傳值賦值。PHP 4 提供了另外一種方式給變量賦值:傳地址賦值。使用傳地址賦值,即簡單地追加一個(&)符號到將要賦值的變量前(源變量)。這意味著新的變量簡單的引用了原始變量,改動新的變量將影響到原始變量,反之亦然。


<?php
$foo = 'Bob';
$bar = &$foo;
$bar = "My name is $bar";
echo $bar;
echo $foo; 
?> 



變量foo只在首行被賦值,正常應輸出為“Bob”,然而傳址賦值給變量bar,在變量bar值發生變化的同時,變量foo的值也發生了變化。

關於(超)全局變量

PHP全局變量的聲明是在引用變量時聲明的,而非在程序首行定義、賦值變量時來定義是全局還是局部變量。


<?php
$a = 1;
$b = 2;

function Sum()
{
global $a, $b;
$b = $a + $b;
}

Sum();
echo $b;
?> 




如果函數Sum()內沒有使用global聲明全局變量,程序會報錯未定義的變量。

當然,在PHP中還有一些變量在某程序功能范圍內是不需要global聲明,這些變量稱為 超全局變量,而這些超全局變量基本都不是用戶自定義的,而是PHP預定義的一些變量,比如 $_GET、$_POST、$_COOKIE等。

有關可變變量

PHP中比較有意思的可變變量,比如 $a="bruce" ,還可以使用 $$a 表示為 $bruce ,即可變變量是使用的兩個美元符號。

但其中在 $$a[1] 中,是 $a[1] 作為一個變量,還是 $$a 作為一個變量並取出該變量中索引為 [1] 的值?這裡沒有前後的依次關系,而是使用 ${$a[1]} 或 ${$a}[1] 來表示上述兩種情況。

=========================================================

關於常量

常量區別於變量,從常量被定義起其范圍就是全局的

量默認為大小寫敏感,按照慣例常量標識符總是大寫的

常量前面沒有美元符號($)

常量一旦定義就不能被重新定義或者取消定義

常量只能用 define() 函數定義,而不能通過賦值語句

比如 define("MYNAME","cnbruce") 就是定義了一個值為“cnbruce”的MYNAME常量


<?php
define("MYNAME","cnbruce");
$MYNAME="cnrose";
echo MYNAME;
echo $MYNAME;
?> 



另外,如何將常量和變量的值一起輸出,這需要涉及到PHP的字符串運算,使用英文句號(.)可將字符串連接合並成新的字符串,類似ASP中的&。

echo MYNAME.",".$MYNAME; 輸出為“cnbruce,cnrose”


和變量中的預定義變量一樣,PHP也有預定義常量(或稱魔術常量),即不需要define() 函數定義。比如

__FILE__ 表示文件的完整路徑和文件名,類似於ASP中Server.Mappath當前文件


<?php
echo __FILE__;
?> 



PHP預定義常量分為:
內核預定義常量,在 PHP 內核、Zend 和 SAPI 模塊中定義的常量
標准預定義常量,PHP 中默認定義的常量 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved