例如:
<?php
class BLAH {
public static function A ()
{
self::B();
//Do something
}
public static function B()
{
//Do something
}
}
目标:将B绑定到A以确保无法在静态方法A之外的其他位置调用B.
答案 0 :(得分:2)
我猜您想要B
private
或protected
,而您的目的是确保B
只能从您的内部调用类。但是,如果你真的想确保只能从B
调用A
:
public static function B()
{
$trace=debug_backtrace();
$caller=array_shift($trace);
if ($caller['function'] != 'A' || $caller['class'] != 'BLAH') {
throw new Exception('Illegal function invocation');
}
else {
//do something
}
}
答案 1 :(得分:1)
简单:受保护的方法:
class BLAH {
public static function A ()
{
self::B();
//Do something
}
protected static function B()
{
//Do something
}
}