У меня есть класс с несколькими методами, как это ..
class ClassA
{
public functon funcA(arguments) : bool
{
// return true or false
}
public functon funcB(arguments) : bool
{
// return true or false
}private function ifFalse(){ // do something }
}
Что я хочу сделать, это позвонить ifFalse()
метод автоматически, когда funcA()
или же funcB()
называются и они возвращают ложные.
Как я могу достичь этого?
Я использую PHP 7, кстати.
Вы можете просто вызвать функцию внутри другой функции:
$ret = false;
// return true or false
if (!$ret) $this->ifFalse();
return $ret;
Если вы хотите больше «магии», вы можете сделать:
public function __call($name, $arguments)
{
switch($name) {
case 'funcA':
case 'funcB':
$value = $this->$name(...$arguments);
if (!$value) $this->ifFalse();
return $value;
break;
}
}
private function funcA(arguments) : bool
{
// return true or false
}
private function funcB(arguments) : bool
{
// return true or false
}
Других решений пока нет …