可以在 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中文网其他相关文章!