Voting

: min(four, zero)?
(Example: nine)

The Note You're Voting On

rob at ubrio dot us
15 years ago
You can always call protected members using the __call() method - similar to how you hack around this in Ruby using send.

<?php

class Fun
{
protected function
debug($message)
{
echo
"DEBUG: $message\n";
}

public function
yield_something($callback)
{
return
$callback("Soemthing!!");
}

public function
having_fun()
{
$self =& $this;
return
$this->yield_something(function($data) use (&$self)
{
$self->debug("Doing stuff to the data");
// do something with $data
$self->debug("Finished doing stuff with the data.");
});
}

// Ah-Ha!
public function __call($method, $args = array())
{
if(
is_callable(array($this, $method)))
return
call_user_func_array(array($this, $method), $args);
}
}

$fun = new Fun();
echo
$fun->having_fun();

?>

<< Back to user notes page

To Top