But there is no property set to NULL !!
Fred.
M. Sokolewicz wrote:
next time, please read the isset documentation carefully. I quote:
[quote]isset() will return FALSE if testing a variable that has been set
to NULL.[/quote]
Catalin Trifu wrote:
Hi,
Is this really a bug. I think not.
There is no variable $o->a or $a->b in the class OO
there is only the variable $elem and $a and $b is a member
of that array
So ...
The fact that PHP5 provides __set and __get magic
functions does not mean that the actual variables exist with
that particular name in the class ?
Perhaps it would be nice to have a __isset magic function ?
Cheers
Catalin
<?php
class OO
{
private $elem = array("a" => 1);
public function __get ($prop)
{
if (isset($this->elem[$prop])) {
return $this->elem[$prop];
} else {
return NULL;
}
}
public function __set ($prop, $val)
{
$this->elem[$prop] = $val;
}
}
$o = new OO();
echo isset($o->a) ? "yes\n" : "no\n";
echo isset($o->b) ? "yes\n" : "no\n";
echo is_null($o->a) ? "yes\n" : "no\n";
echo is_null($o->b) ? "yes\n" : "no\n";
?>
I expected something like this:
yes
no
no
yes
But got this:
no
no
no
yes
It looks like isset() can't handle object properties correctly. I'll
post the bug on php.net.
--
Daniel Schierbeck
--
===================================================================
Frederic HARDY Email: [EMAIL PROTECTED]
HEXANET SARL URL: http://www.hexanet.fr/
ZAC Les Charmilles Tel: +33 (0)3 26 79 30 05
3, allée Thierry Sabine Direct: +33 (0)3 26 61 77 84
BP 202 - 51686 REIMS CEDEX 2 FRANCE
===================================================================
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php