[S]o as long as $info gets assigned a value other than false, this code will execute?
Quite, yes. Even there is an assignment operator within that expression, the expression itself still stands for a value. In this case the result of the whole expression is equal to the assignment to $info. In other words: The expression is the same as $info or the expression has been assigned to $info - the last variant is perhaps the best description.
So now whenever $info equals to true, the code block inside while will be executed.
Keep in mind that the comparison is a loose comparison.
So not only false but as well NULL, 0, a zero-length string '' (and it's '0' integer zero counterpart), or an empty array array() ([]) will stop the execution of the inner code-block. ¹
¹ Anything object is commonly non-empty, even (object) NULL or (object) [], however some PHP internal objects (those from extensions) can be true === empty($object) (e.g. an empty SimpleXMLElement (php.net) "<empty/>" or "<empty></empty>" -- but not "<not-empty>0</not-empty>"). But this is merely added for completeness.