PHP 常量與變數

weixin_34075551發表於2016-06-11

寫在前面

常量用於儲存不經常改變的資料資訊的量,常量的值被定義後,在程式整個執行期間,這個值都有效,並且不可再次賦值。
變數用於存數資料臨時資料資訊,是編寫程式中尤為重要的一部分,在定義變數的時候,通常要為其賦值,所以定義變數同事,系統會自動為該變數分配一個儲存空間來儲存變數的值。

個人專案

個人站點:<a href="http://film.noasis.cn">LN電影網</a>
個人部落格:<a href="http://blog.noasis.cn">L&N部落格</a>

常量

1.宣告和使用常量

1) 使用 define() 函式宣告常量
// 語法 
define(string constant_name,mixed value,case_sensitive = true)
// 定義 常量:welcome 值:'hello world'
define('welcome','hello world');

說明:
constant_name: 必須引數,常量名稱即識別符號
value: 必選引數,常量的值
case_sensitive: 可選引數,指定是否大小寫敏感,預設 true 不敏感

2) 使用 constant() 函式獲取常量的值

獲取指定產量的值和直接使用常量名輸出的效果是一樣,但是函式可以動態輸出不同的常量,在使用上更加靈活

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

說明:引數 const_name 為要獲取常量的名稱。如果成功則返回常量值;失敗則提示錯誤資訊”常量沒有被定義“

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

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

2.預定義常量

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

常量名 功能
__FILE__ 預設常量,PHP 成熟檔名
__LINE__ 預設常量,PHP 程式行數
PHP_VERSION 內建常量,PHP 程式版本,如:5.5
PHP_OS 內建常量,執行 PHP 解析器的作業系統名稱,如:Linux 、Windows
TRUE 這個常量是一個真值:true
FALSE 這個常量是一個假值: false
BOLL 這個常量是一個控制:null
E_ERROR 這個常量指到最近的錯誤處
E_WARNING 這個常量指到最近的警告處
E_PARSE 這個常量指到解析語法有潛在問題處
E_NOTICE 這個常量為發生異常,但不一定是錯誤處

注意: __FILE____LINE__ 中的 ”_“ 是兩個下劃線。表中以 E 開頭的常量是 PHP 的錯誤除錯部分。


變數

1. 宣告變數

1)變數定義
// 語法: $變數名 = 變數值;
2)變數的名稱規則

PHP 中變數命名,遵循如下規則:

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

2.變數的賦值

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

3.變數作用域

常量作用域是指變數哪些範圍能被使用,在那些範圍不能被使用。PHP 有三種變數作用域:區域性變數、全域性變數和靜態變數。

1)區域性變數

區域性變數就是在函式的內部定義的變數,其作用域是所在函式

function example(){
    $a = 'hello world';
    echo '函式內部定義的變數 a 的值為:'.$a;
}
example();
$a = 'hello china'; // 在函式外部定義變數 a
echo '函式外部定義的變數 a 的值為:'.$a;
結果:
函式內部定義的變數 a 的值為:hello world
函式外部定義的變數 a 的值為:hello china
2)全域性變數

全域性變數就是被定義在所有函式外面的變數,其作用域是整個 PHP 檔案,但是在使用者自定義內部是不可用的,想在使用者自定義函式內部使用全域性變數,要使用 global 關鍵字宣告

// 定義全域性變數 $a ,並在自定義函式 example() 內部輸出全域性變數的值
$a = 'hello world';

function example(){
    global $a;
    echo '在函式內部獲得全域性變數 a 的值為:'.$a;
}
example();

結果:
在函式內部獲得全域性變數 a 的值為:hello world
3)靜態變數

通過全域性變數的理解可以知道,在函式內部定義的變數,在函式結束時其變數也會失效,但有時仍需要該函式內的變數有效,此時就需要將變數宣告為靜態變數,宣告靜態變數只需要在變數前加 'static' 關鍵字即可

// 分別在函式 中定義靜態變數和區域性變數

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

function example2(){
    $b = 10;
    $b += 1;
    echo '區域性變數 b 的值為:'.$b
}

example1();// 一次執行該函式
example1();// 二次執行該函式
example1();// 三次執行該函式
echo '---';
example2();// 一次執行該函式
example2();// 二次執行該函式
example2();// 三次執行該函式

結果:
靜態變數 a 的值為:11
靜態變數 a 的值為:12
靜態變數 a 的值為:12
---
區域性變數 b 的值為:11
區域性變數 b 的值為:11
區域性變數 b 的值為:11

3. 可變變數

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

// 定義: $$可變變數名稱 = 可變變數值
$a = 'mrkj';// 定義變數
$$a = 'bccd';// 宣告可變變數,該變數名稱是變數 a 的值
echo $a;
echo $$a;
$cho $mrkj;

結果:
mrkj
bccd
bccd

說明:$$a = 'bccd'; 相當於 $mrkj = 'bccd'

總結

PHP 返璞歸真系列是對我在學習 PHP 的一種回顧,看似特別基礎的東西,當你使用了 PHP 幾年後再回頭看就會有意想不到的收穫。

相關文章