PHP5 中有没有办法只允许某个类或一组类调用特定的函数?例如,假设我有三个类(“Foo”、“Bar”和“Baz”),它们都具有类似名称的方法,并且我希望 Bar 能够调用Foo::foo()
但拒绝 Baz 进行调用:
class Foo {
static function foo() { print "foo"; }
}
class Bar {
static function bar() { Foo::foo(); print "bar"; } // Should work
}
class Baz {
static function baz() { Foo::foo; print "baz"; } // Should fail
}
Foo::foo(); // Should also fail
Foo、Bar 和 Baz 之间不一定有继承关系,因此使用protected
或类似的修饰符无济于事;但是,这些方法不一定是静态的(为了示例的简单性,我在这里制作它们)。