randomafk
randomafk

Reputation: 783

php conditionals

I'm having some trouble understanding how PHP parses conditionals.

For instance,

while (list($id, $name, $salary) = mysql_fetch_row($result)) { ...}

(http://php.net/manual/en/function.list.php )

will evaluate true while the list can retrieve values. But printing the list will print the values contained within the list's variables. The manual also says that list() returns an array. How then, does the conditional know that the mysql fetch attempt was successful?

If it does return a boolean, how do you display it directly rather than

if(expr) echo 'true';

thanks!

Upvotes: 2

Views: 96

Answers (1)

Phil
Phil

Reputation: 164736

list() assigns null to the variables listed if assigned a non-array or an array with too few items.

As null evaluates to false and an array with more than one item evaluates to true, the while loop is able to use the expression.

Small update

list() will trigger an "undefined index" E_NOTICE error if the array does not contain enough items

Upvotes: 5

Related Questions