+1 for variable_exists

Cristiano Duarte

"Lars Torben Wilson" <[EMAIL PROTECTED]> escreveu na mensagem
news:[EMAIL PROTECTED]
> On Thu, 2003-08-14 at 08:42, Andi Gutmans wrote:
> > I am not really convinced either that variable_exists() is
> > function_exists() parallel.
> > Under what circumstances is this needed?
> >
> > Andi
>
> The followup I sent to Ilia gives examples of how this patch can be
> used to determine whether, for instance, array keys exist, without
> having to use the array_key_exists() workaround; also, you can check
> whether an object has defined an attribute, even if it hasn't yet
> assigned it a value:
>
> <?php
> class foo {
>     var $bar;
>     var $baz = null;
>     var $quux = 'quux';
> }
> $foo = new foo;
>
> echo "variable_exists(\$foo-&gt;bar): " . (variable_exists($foo->bar) ?
> 'yes' : 'no') . " (should be yes)\n";
> echo "variable_exists(\$foo-&gt;baz): " . (variable_exists($foo->baz) ?
> 'yes' : 'no') . " (should be yes)\n";
> echo "variable_exists(\$foo-&gt;quux): " . (variable_exists($foo->quux)
> ? 'yes' : 'no') . " (should be yes)\n";
> echo "variable_exists(\$foo-&gt;quuux): " .
> (variable_exists($foo->quuux) ? 'yes' : 'no') . " (should be no)\n";
>
> echo "isset(\$foo-&gt;bar): " . (isset($foo->bar) ? 'yes' : 'no') . "
> (should be yes)\n";
> echo "isset(\$foo-&gt;baz): " . (isset($foo->baz) ? 'yes' : 'no') . "
> (should be yes)\n";
> echo "isset(\$foo-&gt;quux): " . (isset($foo->quux) ? 'yes' : 'no') . "
> (should be yes)\n";
> echo "isset(\$foo-&gt;quuux): " . (isset($foo->quuux) ? 'yes' : 'no') .
> " (should be no)\n";
> ?>
>
> ...the output from the above is:
>
> -----------------------------------------------------------------------
> variable_exists($foo->bar): yes (should be yes)
> variable_exists($foo->baz): yes (should be yes)
> variable_exists($foo->quux): yes (should be yes)
> variable_exists($foo->quuux): no (should be no)
> isset($foo->bar): no (should be yes)
> isset($foo->baz): no (should be yes)
> isset($foo->quux): yes (should be yes)
> isset($foo->quuux): no (should be no)
> -----------------------------------------------------------------------
>
> etc. It's a little annoying at times that that isset() doesn't do what
> its name suggests it should, which leads people to try to use it
> for things which is seems that it should be able to do, but can't. When
> I've tried to explain it, the only answer I can give is "Sorry, that's
> just the way it is--and no, you can't do that in PHP".
>
> It seems basic enough functionality that is almost, but not quite,
> satisfied by isset().
>
>
> --
>  Torben Wilson <[EMAIL PROTECTED]>                        +1.604.709.0506
>  http://www.thebuttlesschaps.com          http://www.inflatableeye.com
>  http://www.hybrid17.com                  http://www.themainonmain.com
>  -----==== Boycott Starbucks!  http://www.haidabuckscafe.com ====-----
>
>
>



-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to