- call_user_func: documentation ( source)
<?php
namespace Paypal;
use \Antiquated\API as PaypalsShittyAPI;
class PaypalIsShittyException extends \Exception {}
class PaypalInconsistencyException extends PaypalIsShittyException {}
class PaypalExperience extends PaypalsShittyAPI {
protected $garbage;
public function isGarbage() {
return $this->garbage;
}
public function setIsGarbage($garbage) {
$this->garbage = $garbage;
}
public function canUpdate() {
return false;
}
public function isIntuitive() {
throw new PaypalInconsistencyException('lol');
}
public function makeMoney() {
throw new PaypalIsShittyException('This feature is unsupported.');
}
}
$paypal = new PaypalExperience;
try {
if ($paypal->canUpdate() && $paypal->isIntuitive()) {
call_user_func(function() use ($paypal) {
return $paypal->makeMoney();
});
} else {
$paypal->setIsGarbage(true);
}
} catch(PaypalInconsistencyException $e) {
die('Wait, what the fuck?');
}