您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

我可以在PHP类中包含代码吗?

我可以在PHP类中包含代码吗?

在定义类的文件中,您只能在 或 包括文件

根据您的描述,我认为您需要这样做:

运行此代码将导致

这是可能的

这样,会将包含文件内容导入方法范围,而不是类范围。您可以在包含文件包括函数和变量,但不能包括方法。您 将整个脚本放入其中并更改方法的作用,例如

但是,用这种方式修补类以表现出不同的行为并不是您在OOP中应该做的。这完全是错误的,应该使您的眼睛流血。

由于要动态更改行为,因此扩展类也不是一个好选择(请参见下面的原因)。您真正想要做的是编写一个接口,并使您的类使用实现此接口的对象,从而确保可以使用适当的方法。这称为策略模式,其工作方式如下:

现在,您获得了所有喵喵行为都必须遵守的合同,即拥有喵喵方法。接下来定义喵叫行为:

现在使用它,使用:

通过将MeowingTypeHint添加到setMeowing,可以确保所传递的参数实现了Meowing接口。让我们定义另一个喵叫行为:

现在,您可以轻松地交换如下行为:

通过定义抽象的BaseCat和meow方法,然后从中派生具体的RegularCat和Lolkat类,您也可以通过继承解决上述问题,但是您必须考虑要实现的目标。如果您的猫永远不会改变它们的喵叫方式,请继续使用继承,但是如果您的RegularCat和Lolkat应该能够发出任意叫声,请使用“策略”模式。

php 2022/1/1 18:15:21 有509人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶