PHP 类可以直接包含代码吗?有哪些更好的选择?

Linda Hamilton
发布: 2024-11-17 22:27:02
原创
226 人浏览过

Can PHP Classes Include Code Directly, and What Are Better Alternatives?

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板