Great.
Thanks a lot for the improvement.
--
Sven
> At 17:10 14/06/2005, Sven Fuchs wrote:
>> > This implementation of issetor() actually works fine, except it does
>> > pollute the symbol tables with empty variables ($a and $b in this
>> > examples are created, as nulls).
>>
>>What are the consequences of polluting the symbol tables this way?
> Well, it will increase memory usage, but unless you're dealing with a huge
> amount of variables, that should be pretty negligible. It might also not
> work properly in certain cases, because PHP isn't truly capable of
> differentiating between variables those empty variables and real variables
> that contain nulls. For example,
> function ifsetor(&$x) { }
> ifsetor($foo);
> print $foo;
> will not generate a notice on a non existing variable, but will emit it if
> the call to ifsetor() is removed.
>>Should this issetor() be considered a "bad practice", probably for
>>medium to large scale applications?
> I think that a more practical implementation may be something like:
> function ifsetor(&$x, $default=null)
> {
> if (!isset($x)) {
> $x = $default;
> }
> return $x;
> }
> i.e., assign the variable with the default value if it doesn't yet
> exist. I think it usually desirable (not always, naturally) and since we
> want the variable to exist in this case, there's no pollution issue.
> I fully agree with everyone else that wondered why we're discussing
> this. People can implement this on their own, the way they want it, with
> an assignment or without it, using empty() or isset(), etc.
> Zeev
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php