可以在 PHP 類別中包含程式碼嗎?
PHP 類別定義需要特定的語法,並且直接將程式碼包含在類別主體中是不可行的允許的。允許在類別定義中包含文件,但僅限於類別主體之外或方法主體內部。
分離類別行為
要將類別定義與其行為分離,您可以使用非常規方法:
class MyClass { // Class definition public function __construct() { // Include methods from external file include('Myclass_methods.php'); } }
請注意,此方法包括方法範圍內的方法,而不是類別範圍本身。
包含檔案的限制
禁止在類別主體中直接包含方法。使用 include 動態修補類別以變更其行為也不建議這樣做。
介面和策略模式
動態修改類別行為的更好解決方案是使用一個介面並實現策略模式。為常見行為定義一個接口,實現不同的Meowing 策略,然後允許您的類別在這些策略之間切換:
interface Meowing { public function meow(); } class RegularMeow implements Meowing { public function meow() { return 'meow'; } } class LolkatMeow implements Meowing { public function meow() { return 'lolz xD'; } } class Cat { private Meowing $meowing; public function setMeowing(Meowing $meowing) { $this->meowing = $meowing; } public function meow() { return $this->meowing->meow(); } }
這種方法允許您透過切換實現的Meowing 策略來動態更改類別的行為.
以上是PHP 類別可以直接包含程式碼嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!