請幫幫我。我需要更好地理解PHP OOP原則。在PHP中組織類和屬性 - 正確的方法?
如果我有一個類屬性,它是不可變的所有它應該被定義爲靜態的類實例? 如果是這樣,有沒有辦法確保靜態屬性在所有類型的類中定義?正如我在PHP手冊中看到的,靜態屬性既不能被控制器也不能通過抽象類來控制?或者我錯了?
簡單的例子。
<?php
// Parent class
abstract class Employee
{
abstract public function getAlias();
}
// Child classes
class Manager extends Employee
{
public function getAlias()
{
return 'manager';
}
}
class Security extends Employee
{
public function getAlias()
{
return 'security';
}
}
告訴我,alias
屬性應該放在哪裏? 我必須確定將來創建的任何員工後代都將定義該屬性。在動態方法中保留這種屬性可以嗎?或者他們應該被放置在常量,靜態方法或靜態屬性?
你能解釋一下,你打算使用別名是什麼? – Gordon
例如,可以在數據庫表中存儲'alias'屬性(與其他任何相似的屬性一樣),並用於單表繼承 - 根據檢索到的DB記錄的別名實例化適當的類。 – Roman
你可以在這種情況下使用實際的類名而不是別名。 'Manager :: class'會給你完全合格的類名稱。另外,您的ORM不應該爲您處理?不要誤解我的意思。這是一個有效的問題。它只是聞起來可能或應該通過類型檢查來處理。但是要決定這需要一些背景。 – Gordon