【问题标题】:PHP: Passing Interface as ParameterPHP:将接口作为参数传递
【发布时间】:2011-12-04 01:21:23
【问题描述】:

在 .NET 中,我将接口作为类方法中的参数传递。我想知道在PHP中可以吗?

我的 scnerio 是我有一个处理 mqin 系统功能的类。现在我想将通知系统与它集成。我想将通知系统分开,因为它不是系统的主要部分,而且我可以在其他地方使用它。如果我有以下结构:

Interface INotification
{
  public set()
  public send()
}

然后我做:

class MyClass
{
   public setNotifier(INotification $notifier)
  {
  }
}

那么在类中实现 set() 和 send() 之后,我可以在这里访问它们吗?我想知道this C# Example 如何设置接口类型的参数。

谢谢

【问题讨论】:

  • 您只是忘记了到处都是function 关键字和接口声明中的分号。但这就是它的工作原理。
  • 这对 php 的大多数部分都很重要:去做吧。只需调用参数上的方法,它就会起作用。

标签: php oop interface


【解决方案1】:

是的,这是可能的,就像你写的那样。此类接口示例:http://api.nette.org/2.0/source-Http.IResponse.php.html#18 和此类参数示例:http://api.nette.org/2.0/source-Http.Context.php.html#32

【讨论】:

  • 太棒了。一个非常清楚的解释 OOPS 复杂功能将如何工作。事实上,其他事情也得到了很好的解释。非常感谢!
  • 将接口作为参数而不是类类型的对象传递有什么好处?看代码。 pastebin.ca/2088573
【解决方案2】:

是的,您可以按照自己的编码进行操作。你可以找到more information and examples on php.net

请注意,允许在方法参数 (type hinting) 中指定类型 (PHP >= 5),但不是必需的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-20
    • 1970-01-01
    • 2010-10-16
    • 2017-05-29
    • 2011-02-02
    • 1970-01-01
    • 2011-02-21
    • 2015-03-18
    相关资源
    最近更新 更多