You can also use session variables, but this is simpler and will work, depending upon what the function does. If it's something like a db insert, it works, just fine and makes it easier to test what's going on when things break.
I do this sort of thing a lot, especially when retrieving lists and getting a count of the resulting array. It makes for a little more coding effort, but I think it's worth it for clarity.
function trySomething($sql)
{
//insert $sql and return T/F OR set a variable
}
function trySomethingElse($sql)
{
//insert modified $sql and return T/F OR set a variable
}
function doSomething()
{
//optional, of course
$indicator = array();
//examples not intended to work, just an idea
$indicator[result] = if( $this->trySomething($sql) ) ? '1' : '0';
$indicator[result2] = $this->trySomethingElse($sql);
$indicator[message] = $setErrorMessage($indicator[result]);
$indicator[arraysize] = count($indicator[result]);
RETURN $indicator;
}