Php 是否可以禁止直接实现接口

Php 是否可以禁止直接实现接口,php,interface,Php,Interface,是否可以禁止直接实现接口?而不是该类必须实现该接口的子代(like)。可以使用protected关键字定义接口,因此只有同一包中的类才能实现该接口。Traversable是一个内部接口。没有它的后代。只是当您在PHP用户区(即编写PHP代码的地方)时,您不能直接实现可遍历的,而只能实现可遍历的其中一个: 但原因并不是您可以在PHP用户空间中控制某些子代关系,而是遍历是用户空间中不可用的内部接口 除了接口,您可以做的是创建一个不能实例化的抽象类。稍后您会要求使用该抽象类型: abstract

是否可以禁止直接实现接口?而不是该类必须实现该接口的子代(like)。

可以使用
protected
关键字定义接口,因此只有同一包中的类才能实现该接口。

Traversable是一个内部接口。没有它的后代。只是当您在PHP用户区(即编写PHP代码的地方)时,您不能直接实现可遍历的,而只能实现可遍历的其中一个:

  • 但原因并不是您可以在PHP用户空间中控制某些子代关系,而是遍历是用户空间中不可用的内部接口

    除了接口,您可以做的是创建一个不能实例化的抽象类。稍后您会要求使用该抽象类型:

    abstract class Mineable 
    {
       // ...
    }
    
    class MineAggregate extends Mineable 
    {
       // ...
    }
    
    class Mine extends Mineable
    {
       // ...
    }
    
    这些不是接口,这是一个很好的理由。可遍历的示例可能误导了您,通常不应该像在那里做的那样做。另见:

    因此,当然,您也可以使用接口来构建它,但是任何接口都可以实现:

    interface Mineable {} // this interface is empty just for the taste of it
    
    interface MineAggregate extends Mineable 
    {
       // ...
    }
    
    interface Mine extends Mineable
    {
       // ...
    }
    

    我不知道这是否是您想要的,我必须承认,您的问题对我来说并不清楚。

    从未听说过接口的后代。你能告诉我你的意思吗?你能提供一个小的伪代码来举例说明你在寻找什么吗?你已经看到这个问题被标记为PHP?谢谢你详尽的回答。我正在寻找这样的结构:接口PaymentSystem{}接口SORT1 PaymentSystem Extendes PaymentSystem{public function check();}接口SORT2 PaymentSystem Extendes PaymentSystem{publick function create();}类付款人{//$ps_处理程序必须实现Sort1PaymentSystem或//Sort2PaymentSystem.Not PaymentSystem直接公共函数pay(PaymentSystem$ps_处理程序){}