PHP 常量與變數
寫在前面
常量用於儲存不經常改變的資料資訊的量,常量的值被定義後,在程式整個執行期間,這個值都有效,並且不可再次賦值。
變數用於存數資料臨時資料資訊,是編寫程式中尤為重要的一部分,在定義變數的時候,通常要為其賦值,所以定義變數同事,系統會自動為該變數分配一個儲存空間來儲存變數的值。
個人專案
個人站點:<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 幾年後再回頭看就會有意想不到的收穫。
相關文章
- PHP變數與常量學習PHP變數
- 常量與變數變數
- PHP基礎__變數、常量PHP變數
- 六、常量與變數變數
- 自學PHP筆記(四) PHP變數和常量PHP筆記變數
- 自學PHP筆記(四) PHP常量和變數PHP筆記變數
- PHP實踐之路(四)PHP中常量和變數PHP變數
- destoon 系統常量與變數變數
- JAVA基礎04——變數與常量Java變數
- VBA靜態變數與常量(轉)變數
- 變數與常量 - Go 學習記錄變數Go
- Java培訓教程分享:變數與常量Java變數
- 重溫手冊(二):變數與常量變數
- 二,Java中常量與變數的理解Java變數
- java變數及常量Java變數
- java常量和變數Java變數
- swift基礎語法(一)——常量與變數Swift變數
- 四:java常量和變數Java變數
- Swift(一)常量和變數Swift變數
- Java基礎-基礎語法-變數與常量Java變數
- TensorFlow筆記(2) 常量與變數【僅供自學】筆記變數
- 大樓的基石 資料型別 變數與常量資料型別變數
- PHP中GET與POST變數PHP變數
- kettle 引數——變數引數和常量引數變數
- Java培訓基礎知識-Java的常量與變數Java變數
- C++入門教程(20):變數、不變數和常量C++變數
- Go基礎系列:常量和變數Go變數
- Day08-常量、變數、作用域變數
- php變數的型別是如何轉換的?常量如何定義?系統常量是如何定義的?PHP變數型別
- 逍遙自在學C語言 | 變數、常量與資料型別C語言變數資料型別
- PHP變數PHP變數
- [go 學習筆記] 二、變數、常量Go筆記變數
- c#小灶——常量、變數和賦值C#變數賦值
- 變數常量類的命名格式以及用法變數
- ThinkPHP 3.2 系統預設變數/常量PHP變數
- Java基礎06:變數、常量、作用域Java變數
- 語法1-變數、常量、作用域變數
- 5.Go變數 常量 變數命名規則 程式碼風格Go變數