You are here: Re: Macros in php « PHP Programming Language « IT news, forums, messages
Re: Macros in php

Posted by Oli Filth on 11/18/72 11:45

Jerry Stuckle wrote:
> Oli Filth wrote:
> > Oli Filth said the following on 09/04/2006 13:44:
> >> Jerry Stuckle said the following on 09/04/2006 06:14:
> >>> Oli Filth wrote:
> >>>
> >>>> <?php
> >>>>
> >>>> function getValueWithDefault(&$array, $key, $default = NULL)
> >>>> {
> >>>> return (isset($array[$key])) ? $array[$key] : $default;
> >>>> }
> >>>>
> >>>> $var = array();
> >>>> echo getValueWithDefault($var, "Roger", "Dodger") . "\n";
> >>>>
> >>>> ?>
> >>>
> >>> Take out the $var=array() line and see what you get.
> >>
> >> But anyway, removing the $var = array() line does not result in any
> >> error/warning. Because it's being passed by reference, PHP
> >> automatically creates a variable $var in the global scope
> >
> > That should be *caller* scope...
>
> OK, you want to argue with everyone who supports the idea of macros. Fine.

Woah, easy there tiger! Did I at any point say, or even imply, that
macros were a bad idea? No.

All I've done so far is correct your claim that one couldn't do the
getValueWithDefault thing without a macro.

I'm a C/C++ programmer at heart, I use macros there, and I know the
benefits (and otherwise) of them.


> Let's see you to this as easily and as cleanly without macros:
>
> define('FOREACH(X, K, V)', 'if (isset(X) && isarray(X)) foreach(X as K=>V)
>
>
> FOREACH($var,$key,$value) {
>
> // Process data in $key=>$value here.
> }
>
> FOREACH($var2, $key2, $value2) {
> // Different processing of $key2=>value2 here
> }

Again, that just implies bad practice. You should always know whether
a *variable* exists, and as such, should have no reason to call isset()
on it.


--
Oli

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация