An approach that many people take is to simply have a function return success
or failure, and have any data that needs to be propogated upwards assigned to
pass-by-reference parameters. I like this approach because it removes any
question as to what a function returns. One drawback is that it becomes
difficult to see where values are getting assigned when debugging.

i.e.:
function getMeTwoThings(&$first, &$second) {
        $first++;
        $second--;
        
        if ($first == $second) 
                return true;
        else
                return false;
}

Alternatively, you can return an array of values and use the list() construct to 
assign them.

i.e.:
function foobar() {
        return array($a, $b);
}

list($a, $b) = foobar();

John

On Mon, 12 Feb 2001, James, Yz wrote:

> Hrms.  Got a small problem.
> 
> I'm now using functions on a regular basis, but I've come to another
> sticking point with them:  returning multiple variables from the function...
> 
> Here's a really quick example (nothing to do with what I intend to use the
> functions for):
> 
> function CUP ($connection,$username,$password) {
> 
>     if (($username) && ($password)) {
>         $sql = "SELECT username, password FROM table
>             WHERE username = '$username' AND password = '$password'";
>         $result = etc etc
>         $num = mysql_numrows($result);
> 
>         if ($num != 0) {
>             $valid = "yes";
>         }
> 
>     return $valid;
> 
> }
> 
> 
> 
> $correct_user = CUP ($connection,$username,$password);
> 
> Now, if the user is correct, I'd get a return of
> 
> $correct_user = "yes";
> 
> What if I wanted to "return" more than one variable from the function?  And
> how would I assign it a name?  Like the actual variable, or is that just not
> possible?
> 
> I've tried
> return $var1,$var2;
> But got an error.
> 
> As always, tia :)
> 
> James.
> 
> 
> 
> 

-- 

John Donagher
Application Engineer
Intacct Corp. - Powerful Accounting on the Web
408-395-0989
720 University Ave.
Los Gatos CA 95032
www.intacct.com

Public key available off http://www.keyserver.net
Key fingerprint = 4024 DF50 56EE 19A3 258A  D628 22DE AD56 EEBE 8DDD


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to