PHP之變量、常量學(xué)習(xí)筆記
有關(guān)變量的傳地址賦值
PHP 3 中,變量總是傳值賦值。PHP 4 提供了另外一種方式給變量賦值:傳地址賦值。使用傳地址賦值,即簡(jiǎn)單地追加一個(gè)(&)符號(hào)到將要賦值的變量前(源變量)。這意味著新的變量簡(jiǎn)單的引用了原始變量,改動(dòng)新的變量將影響到原始變量,反之亦然。
<?php
$foo = 'Bob';
$bar = &$foo;
$bar = "My name is $bar";
echo $bar;
echo $foo;
?>
變量foo只在首行被賦值,正常應(yīng)輸出為“Bob”,然而傳址賦值給變量bar,在變量bar值發(fā)生變化的同時(shí),變量foo的值也發(fā)生了變化。
關(guān)于(超)全局變量
PHP全局變量的聲明是在引用變量時(shí)聲明的,而非在程序首行定義、賦值變量時(shí)來(lái)定義是全局還是局部變量。
<?php
$a = 1;
$b = 2;
function Sum()
{
global $a, $b;
$b = $a + $b;
}
Sum();
echo $b;
?>
如果函數(shù)Sum()內(nèi)沒(méi)有使用global聲明全局變量,程序會(huì)報(bào)錯(cuò)未定義的變量。
當(dāng)然,在PHP中還有一些變量在某程序功能范圍內(nèi)是不需要global聲明,這些變量稱為 超全局變量,而這些超全局變量基本都不是用戶自定義的,而是PHP預(yù)定義的一些變量,比如 $_GET、$_POST、$_COOKIE等。
有關(guān)可變變量
PHP中比較有意思的可變變量,比如 $a="bruce" ,還可以使用 $$a 表示為 $bruce ,即可變變量是使用的兩個(gè)美元符號(hào)。
但其中在 $$a[1] 中,是 $a[1] 作為一個(gè)變量,還是 $$a 作為一個(gè)變量并取出該變量中索引為 [1] 的值?這里沒(méi)有前后的依次關(guān)系,而是使用 ${$a[1]} 或 ${$a}[1] 來(lái)表示上述兩種情況。
=========================================================
關(guān)于常量
常量區(qū)別于變量,從常量被定義起其范圍就是全局的
量默認(rèn)為大小寫(xiě)敏感,按照慣例常量標(biāo)識(shí)符總是大寫(xiě)的
常量前面沒(méi)有美元符號(hào)($)
常量一旦定義就不能被重新定義或者取消定義
常量只能用 define() 函數(shù)定義,而不能通過(guò)賦值語(yǔ)句
比如 define("MYNAME","cnbruce") 就是定義了一個(gè)值為“cnbruce”的MYNAME常量
<?php
define("MYNAME","cnbruce");
$MYNAME="cnrose";
echo MYNAME;
echo $MYNAME;
?>
另外,如何將常量和變量的值一起輸出,這需要涉及到PHP的字符串運(yùn)算,使用英文句號(hào)(.)可將字符串連接合并成新的字符串,類似ASP中的&。
echo MYNAME.",".$MYNAME; 輸出為“cnbruce,cnrose”
和變量中的預(yù)定義變量一樣,PHP也有預(yù)定義常量(或稱魔術(shù)常量),即不需要define() 函數(shù)定義。比如
__FILE__ 表示文件的完整路徑和文件名,類似于ASP中Server.Mappath當(dāng)前文件
<?php
echo __FILE__;
?>
PHP預(yù)定義常量分為:
內(nèi)核預(yù)定義常量,在 PHP 內(nèi)核、Zend 和 SAPI 模塊中定義的常量
標(biāo)準(zhǔn)預(yù)定義常量,PHP 中默認(rèn)定義的常量
相關(guān)文章
PHP正則替換函數(shù)preg_replace()報(bào)錯(cuò):Notice Use of undefined constant的解
這篇文章主要介紹了PHP正則替換函數(shù)preg_replace()報(bào)錯(cuò):Notice Use of undefined constant的解決方法,結(jié)合具體實(shí)例形式分析了preg_replace()報(bào)錯(cuò)的原因與相關(guān)解決技巧,需要的朋友可以參考下2017-02-02
PHP日期函數(shù)date格式化UNIX時(shí)間的方法
這篇文章主要介紹了PHP日期函數(shù)date格式化UNIX時(shí)間的方法,實(shí)例分析了php中date函數(shù)的使用技巧,需要的朋友可以參考下2015-03-03
php XMLWriter類的簡(jiǎn)單示例代碼(RSS輸出)
這是一段寫(xiě)博客RSS的代碼,需要的朋友可以參考下。2011-09-09
解析如何通過(guò)PHP函數(shù)獲取當(dāng)前運(yùn)行的環(huán)境 來(lái)進(jìn)行判斷執(zhí)行邏輯(小技巧)
本篇文章是對(duì)如何通過(guò)PHP函數(shù)獲取當(dāng)前運(yùn)行的環(huán)境 來(lái)進(jìn)行判斷執(zhí)行邏輯的技巧進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
PHP定時(shí)任務(wù)延緩執(zhí)行的實(shí)現(xiàn)
這篇文章主要介紹了PHP定時(shí)任務(wù)延緩執(zhí)行的實(shí)現(xiàn),很簡(jiǎn)單,但很實(shí)用,需要的朋友可以參考下面的示例2014-10-10
php遇到錯(cuò)誤Call to undefined function ImageCreate()解決方法
剛配置好服務(wù)器,運(yùn)行php的時(shí)候提示Call to undefined function imagecreate錯(cuò)誤,經(jīng)過(guò)百度發(fā)現(xiàn)是php不支持gd庫(kù),linux服務(wù)器需要重新make,windows下比較簡(jiǎn)單了,下面是具體的方法2021-09-09
php和javascript之間變量的傳遞實(shí)現(xiàn)代碼
本文提供一種解決php和javascript之間變量的傳遞的方法,需要的朋友可以參考下2012-12-12

