常量(Constant)聽起來與變量相似,但就容易混淆。
變量的值會改變而稱為變量,那相對於變量的常量,則表示是恆常不變的值,因而稱作常量,常量類似於變量,但是常量一旦被定義就無法更改或撤銷定義,那麼問題是在 PHP 中如何定義常量呢?
常量是一個簡單值的識別符號(名字)。在指令碼執行期間該值不能被修改和刪除,常量可以不用理會變量範圍的規則而在任何地方定義和訪問。
常量預設為大小寫敏感,有分別。
PHP_VERSION:PHP版本號,當前解析器的版本號。它可以告訴我們當前PHP解析器的版本號,我們可以提前知道我們的PHP代碼是否可被該PHP解析器解析。
PHP_OS:執行當前PHP版本的操作系統名稱。
魔術常量以雙下劃線開始、以雙下劃線結束
LINE:當前所在行數
DIR:當前文件所在路徑(絕對路徑)
FILE:當前文件所在路徑(絕對路徑,包含文件名稱)
FUNCTION:函數內部使用,所處函數名,區分大小寫,包含函數的名字
CLASS:類內部使用,表示類名
NAMESPACE:命名空間內部使用,表示當前所屬命名空間
METHOD:類內部方法使用,表示當前方法名字
TRAIT :代碼覆用的一個方法,稱為traits
PHP 實現了代碼復用的一個方法,稱為traits。
Trait 包括其被聲明的作用區域,從基類繼承的成員被插入的winnie,Trait 中的Hellowinnie 方法所覆蓋,與Hellowinnie 類中定義的方法一致,優先順序是當前類中的方法會覆蓋trait 方法,而trait 方法又覆蓋了基類中的方法。
<?php
namespace MyProject;
echo __LINE__;
echo '<hr>';
echo __DIR__;
echo '<hr>';
echo __FILE__;
echo '<hr>';
echo __NAMESPACE__;
echo '<hr>';
// __CLASS__ __FUNCTION__ __METHOD__
class test {
function hello() {
echo '類名:' . __CLASS__ . "<br>";
echo '函數名:' . __FUNCTION__. "<br>" ;
echo '方法名:'.__METHOD__. "<br>";
}
}
$t1 = new test();
$t1->hello();
echo '<hr>';
// __TRAIT__
class Base {
public function Hello() {
echo 'Hello ';
}
}
trait winnie {
public function Hello() {
parent::Hello();
echo 'winnie!';
}
}
class Hellowinnie extends Base {
use winnie;
}
$test = new Hellowinnie();
$test->Hello();
今天介紹常量,包含語法、命名規則和魔術常量,變量的好處是可以隨時根據需求改變變量所代表的數據,常量則是一開始定義並賦值後,在整個腳本中不允許改變的量,這是兩個蠻大的差別唷!
今天就到這裡~~ 明天見><