PHP變量與常量

本文是復(fù)習(xí)所寫榜聂,并不會涵蓋一些基礎(chǔ)知識點

變量

命名

有數(shù)字、字母的畴、下劃線組成末融,不能以數(shù)字開頭,用正則表達式描述為^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$晤锥。這大概是所有語言通用的規(guī)則掉蔬,只不過PHP中變量名前要加上$

賦值

變量有兩種賦值方式:傳值賦值引用賦值廊宪。

默認是傳值賦值

預(yù)定義變量

PHP提供了大量的預(yù)定義變量,這些變量被分別放到幾個數(shù)組中女轿,稱為預(yù)定數(shù)組箭启。這些數(shù)組在全局范圍內(nèi)生效,所以也被稱為超全局變量

  1. $GLOBALS

  2. $_SERVER

  3. $_GET

  4. $_POST

  5. $_REQUEST

  6. $_SESSION

  7. $_COOKIE

  8. $_ENV

  9. $php_response_header - HTTP 響應(yīng)頭蛉迹,當使用HTTP包裝器時將會被HTTP響應(yīng)頭信息填充

  10. $argc

  11. $argv

作用域

<?php
/*
 * 當前文件范圍內(nèi)生效
 * 包括require傅寡、include進來的文件
 */
$a = 1;

include 'b.php';
 
function c()
{
    /*
     * 函數(shù)內(nèi)部的變量是跟函數(shù)外部的隔離的
     * 通過global關(guān)鍵字可以將函數(shù)外部的變量引用進來
     */
    global $a;
    
    $d = 2;
    $d += $a;
    $d += $GLOBALS['a']; // 也可以通過這種方式來訪問$a變量

    /*
     * 也可以將變量聲明為靜態(tài)的
     * 靜態(tài)變量是在編譯階段就分配到特殊的內(nèi)存空間,稱為靜態(tài)空間
     * 靜態(tài)變量只會初始化一次北救,并且不會隨著函數(shù)的退出而銷毀
     * 千萬不要引用賦值給靜態(tài)變量荐操,不會報錯但是會跟預(yù)期不一致
     */
    static $e = 0;
    $e += 1;
}

可變變量

<?php
$a = 'hello';
$b = ['hello'];
 
/*
 * 等價于${$a}
 * {}是限定符,用來明確范圍
 * $a的值是純數(shù)字的話也可以正常執(zhí)行
 */
$a = 'hi';
${$b[0]} = 'hi';
 
// 類屬性也可以通過這種方式訪問
class Test
{
    public $hello = 'class inner';
}
(new Test())->$a;
(new Test())->{$b[0]};

常量

命名

常量命名跟變量命名一樣珍策,只不過不需要前面帶$

定義常量

<?php
/*
 * 可以使用define()托启、const定義常量
 * 常量值只能是標量或數(shù)組,一但被定義攘宙,其值便無法更改
 *
 * const定義常量是在預(yù)編譯階段執(zhí)行的屯耸,所以必須處于最頂端的作用域。這就是說不能在函數(shù)蹭劈、循環(huán)疗绣、try/catch語句內(nèi)使用
 */
const BOOK_TOTAL = 20;    
define('PRICE', 200);
 
class Test
{
    const BOOKS = [];
}    
 
$a = 'PRICE';
echo constant($a); // 當需要動態(tài)獲取變量的時候,建議使用這種方式
get_defined_constants(); // 獲取所有已定義常量列表

作用域

常量的作用域是全局的

預(yù)定義常量

魔術(shù)常量

  1. __LINE__

  2. __FILE__

  3. __DIR__

  4. __FUNCTION__

  5. __CLASS__

  6. __TRAIT__

  7. __METHOD__

  8. __NAMESPACE__

  9. ClassName::class

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末链方,一起剝皮案震驚了整個濱河市持痰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌祟蚀,老刑警劉巖工窍,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異前酿,居然都是意外死亡患雏,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門罢维,熙熙樓的掌柜王于貴愁眉苦臉地迎上來淹仑,“玉大人,你說我怎么就攤上這事肺孵≡冉瑁” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵平窘,是天一觀的道長吓肋。 經(jīng)常有香客問我,道長瑰艘,這世上最難降的妖魔是什么是鬼? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任肤舞,我火速辦了婚禮,結(jié)果婚禮上均蜜,老公的妹妹穿的比我還像新娘李剖。我一直安慰自己,他們只是感情好囤耳,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布篙顺。 她就那樣靜靜地躺著,像睡著了一般紫皇。 火紅的嫁衣襯著肌膚如雪慰安。 梳的紋絲不亂的頭發(fā)上腋寨,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天聪铺,我揣著相機與錄音,去河邊找鬼萄窜。 笑死铃剔,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的查刻。 我是一名探鬼主播键兜,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼穗泵!你這毒婦竟也來了普气?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤佃延,失蹤者是張志新(化名)和其女友劉穎现诀,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體履肃,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡仔沿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了尺棋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片封锉。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖膘螟,靈堂內(nèi)的尸體忽然破棺而出成福,到底是詐尸還是另有隱情,我是刑警寧澤荆残,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布奴艾,位于F島的核電站,受9級特大地震影響脊阴,放射性物質(zhì)發(fā)生泄漏握侧。R本人自食惡果不足惜蚯瞧,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望品擎。 院中可真熱鬧埋合,春花似錦、人聲如沸萄传。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽秀菱。三九已至振诬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間衍菱,已是汗流浹背赶么。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留脊串,地道東北人辫呻。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像琼锋,于是被迫代替她去往敵國和親放闺。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容