PHP 常量與變量

寫在前面

常量用于存儲不經(jīng)常改變的數(shù)據(jù)信息的量,常量的值被定義后,在程序整個執(zhí)行期間,這個值都有效,并且不可再次賦值。
變量用于存數(shù)數(shù)據(jù)臨時(shí)數(shù)據(jù)信息,是編寫程序中尤為重要的一部分,在定義變量的時(shí)候,通常要為其賦值,所以定義變量同事,系統(tǒng)會自動為該變量分配一個存儲空間來存儲變量的值。

個人項(xiàng)目

個人站點(diǎn):<a >LN電影網(wǎng)</a>
個人博客:<a >L&N博客</a>

常量

1.聲明和使用常量

1) 使用 define() 函數(shù)聲明常量
// 語法 
define(string constant_name,mixed value,case_sensitive = true)
// 定義 常量:welcome 值:'hello world'
define('welcome','hello world');

說明:
constant_name: 必須參數(shù),常量名稱即標(biāo)識符
value: 必選參數(shù),常量的值
case_sensitive: 可選參數(shù),指定是否大小寫敏感,默認(rèn) true 不敏感

2) 使用 constant() 函數(shù)獲取常量的值

獲取指定產(chǎn)量的值和直接使用常量名輸出的效果是一樣,但是函數(shù)可以動態(tài)輸出不同的常量,在使用上更加靈活

// 語法:mixed constant(string const_name)
echo constant('welcome');

說明:參數(shù) const_name 為要獲取常量的名稱。如果成功則返回常量值;失敗則提示錯誤信息”常量沒有被定義“

3)使用 defined() 函數(shù)判斷常量是否被定義
// 語法:bool defined(string constant_name)
var_dump(defined('welcome'));

// 說明:參數(shù) constant_name 為要獲取常量的名稱,成功返回 true 否則返回 false

2.預(yù)定義常量

在 PHP 中提供了很多預(yù)定義常量,可以獲取 PHP 中的信息,但不能任意修改這些常量的值。預(yù)定義常量的名稱及作用如下:

常量名 功能
__FILE__ 默認(rèn)常量,PHP 成熟文件名
__LINE__ 默認(rèn)常量,PHP 程序行數(shù)
PHP_VERSION 內(nèi)建常量,PHP 程序版本,如:5.5
PHP_OS 內(nèi)建常量,執(zhí)行 PHP 解析器的操作系統(tǒng)名稱,如:Linux 、Windows
TRUE 這個常量是一個真值:true
FALSE 這個常量是一個假值: false
BOLL 這個常量是一個控制:null
E_ERROR 這個常量指到最近的錯誤處
E_WARNING 這個常量指到最近的警告處
E_PARSE 這個常量指到解析語法有潛在問題處
E_NOTICE 這個常量為發(fā)生異常,但不一定是錯誤處

注意: __FILE____LINE__ 中的 ”_“ 是兩個下劃線。表中以 E 開頭的常量是 PHP 的錯誤調(diào)試部分。


變量

1. 聲明變量

1)變量定義
// 語法: $變量名 = 變量值;
2)變量的名稱規(guī)則

PHP 中變量命名,遵循如下規(guī)則:

  • 在 PHP 中變量名是區(qū)分大小寫的
  • 變量名前面必須加美元符號($),表示一個變量
  • 變量名不能一數(shù)字字符開頭
  • 變量名可以包含一些擴(kuò)展字符(如重音拉丁字母),但是能包含非法擴(kuò)展字符(如:漢字字符和漢字字母)

2.變量的賦值

1)直接賦值
// 直接賦值就是使用 ”=“ 直接將值賦給某個變量
$name = "zZ愛吃菜";
$age = "26";
2)傳值賦值
// 傳值賦值就是使用 ”=“ 講一個變量值賦給另一個變量
$name = 'zZ愛吃菜';
$myName = $name;
3)引用賦值
// 引用賦值就是一個變量引用另一個變量的值
$name = 'zZ愛吃菜';
$myName = & $name; // $myName 引用了 $name 對應(yīng)內(nèi)存地址中的值
$myName = 'zZ';
echo $name;
echo '<br>';
echo $myName;
//結(jié)果:'zZ' 'zZ'
//說明:引用賦值是將兩個變量指向同一個內(nèi)存地址,即任何一個變量被改變值,內(nèi)存地址對應(yīng)的值改變,另一個引用變量也會相應(yīng)改變

3.變量作用域

常量作用域是指變量哪些范圍能被使用,在那些范圍不能被使用。PHP 有三種變量作用域:局部變量、全局變量和靜態(tài)變量。

1)局部變量

局部變量就是在函數(shù)的內(nèi)部定義的變量,其作用域是所在函數(shù)

function example(){
    $a = 'hello world';
    echo '函數(shù)內(nèi)部定義的變量 a 的值為:'.$a;
}
example();
$a = 'hello china'; // 在函數(shù)外部定義變量 a
echo '函數(shù)外部定義的變量 a 的值為:'.$a;
結(jié)果:
函數(shù)內(nèi)部定義的變量 a 的值為:hello world
函數(shù)外部定義的變量 a 的值為:hello china
2)全局變量

全局變量就是被定義在所有函數(shù)外面的變量,其作用域是整個 PHP 文件,但是在用戶自定義內(nèi)部是不可用的,想在用戶自定義函數(shù)內(nèi)部使用全局變量,要使用 global 關(guān)鍵字聲明

// 定義全局變量 $a ,并在自定義函數(shù) example() 內(nèi)部輸出全局變量的值
$a = 'hello world';

function example(){
    global $a;
    echo '在函數(shù)內(nèi)部獲得全局變量 a 的值為:'.$a;
}
example();

結(jié)果:
在函數(shù)內(nèi)部獲得全局變量 a 的值為:hello world
3)靜態(tài)變量

通過全局變量的理解可以知道,在函數(shù)內(nèi)部定義的變量,在函數(shù)結(jié)束時(shí)其變量也會失效,但有時(shí)仍需要該函數(shù)內(nèi)的變量有效,此時(shí)就需要將變量聲明為靜態(tài)變量,聲明靜態(tài)變量只需要在變量前加 'static' 關(guān)鍵字即可

// 分別在函數(shù) 中定義靜態(tài)變量和局部變量

function example1(){
    static $a = 10;
    $a += 1;
    echo '靜態(tài)變量 a 的值為:'.$a;
}

function example2(){
    $b = 10;
    $b += 1;
    echo '局部變量 b 的值為:'.$b
}

example1();// 一次執(zhí)行該函數(shù)
example1();// 二次執(zhí)行該函數(shù)
example1();// 三次執(zhí)行該函數(shù)
echo '---';
example2();// 一次執(zhí)行該函數(shù)
example2();// 二次執(zhí)行該函數(shù)
example2();// 三次執(zhí)行該函數(shù)

結(jié)果:
靜態(tài)變量 a 的值為:11
靜態(tài)變量 a 的值為:12
靜態(tài)變量 a 的值為:12
---
局部變量 b 的值為:11
局部變量 b 的值為:11
局部變量 b 的值為:11

3. 可變變量

可變變量是一個特殊的變量,這種變量名稱是由另一個變量的值來確定的。聲明可變變量的方法是在變量名稱前加兩個 ’$‘符號

// 定義: $$可變變量名稱 = 可變變量值
$a = 'mrkj';// 定義變量
$$a = 'bccd';// 聲明可變變量,該變量名稱是變量 a 的值
echo $a;
echo $$a;
$cho $mrkj;

結(jié)果:
mrkj
bccd
bccd

說明:$$a = 'bccd'; 相當(dāng)于 $mrkj = 'bccd'

總結(jié)

PHP 返璞歸真系列是對我在學(xué)習(xí) PHP 的一種回顧,看似特別基礎(chǔ)的東西,當(dāng)你使用了 PHP 幾年后再回頭看就會有意想不到的收獲。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容