private function toLastAct($whatToDo)
{
if (is_integer($whatToDo)) {
return function () use($whatToDo) {
exit($whatToDo);
};
}
if (is_string($whatToDo)) {
return function () use($whatToDo) {
echo $whatToDo;
};
}
if (is_array($whatToDo) && count($whatToDo) === 2) {
if (is_object($whatToDo[0])) {
return $whatToDo;
}
list($status, $message) = $whatToDo;
return function () use($status, $message) {
echo $message;
exit($status);
};
}
if (is_callable($whatToDo)) {
return $whatToDo;
}
throw new InvalidArgumentException("'{$whatToDo}' could not be converted to an action to be performed after death");
}