PHP 5.3 引入 class_alias() 函數,允許為冗長的類別名稱建立簡短別名,提升程式碼可讀性與維護性。
class Irrational_Long_Class_Name {
// 空類別
}
class_alias('Irrational_Long_Class_Name', 'ShortAlias');
$shortAliasInstance = new ShortAlias();
var_dump($shortAliasInstance instanceof Irrational_Long_Class_Name); // true
var_dump($shortAliasInstance instanceof ShortAlias); // true
使用 get_class() 可取得原始類別名稱:
class Irrational_Long_Class_Name {
public function getClass() {
print get_class();
}
}
class_alias('Irrational_Long_Class_Name', 'ShortAlias');
$aInstanceWithAlias = new ShortAlias();
$aInstanceWithAlias->getClass(); // 輸出:Irrational_Long_Class_Name
print get_class($aInstanceWithAlias); // 輸出:Irrational_Long_Class_Name
別名可直接用於函數簽章的型別提示:
class TestClass {
public function doSomethingWithShortAliasInstance(ShortAlias $b) { }
}
class_alias('Irrational_Long_Class_Name', 'ShortAlias');
$aInstanceWithAlias = new ShortAlias();
$testClassInstance = new TestClass();
$testClassInstance->doSomethingWithShortAliasInstance($aInstanceWithAlias); // 正常運作
class_alias() 的第一個參數為字串(原類別名),第二個參數為字串(別名)。