Re: PHP strategy -- pass complex parameters by value or by reference?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Clancy schreef:
> I have a function to process a data file.  This process opens the file, and then calls
> another function to process each entry.  This function in turn calls another function to
> process each line of the entry.  A set of fairly complex arrays specifies how all the
> possible types of entries and lines should be processed, and each function passes sections
> of these arrays to the next function.
> 
> Is it better to pass the parameters by value, in which case they have to be copied into
> yet more memory when the function is called, or to pass by reference, which I suspect may
> involve additional overhead every time they are accessed?
> 
> And is it better to combine several specifications arrays into one more complex array, and
> pass a single parameter, or to pass them individually as half a dozen different
> parameters?
> 
> I suspect that I am probably asking a "how long is a piece of string?" type of question,
> but are there any general rules which are applicable to this type of situation?

by reference is pointless (and less performant IIRC) unless the input will be changed,
php does copy-on-write magic under the hood.

one complex param or many simpler ones? I doubt either makes any difference, comes
down to personal preference. ask yourself: "will I still grok all this configuration
magic/params 12 months from now?"

I might suggest you look into a refactoring the code to use an object, and have it store
the parsing config/spec centrally as a property which each of the functions (methods)
you mentioned can then read.

in dutch they have a silly saying: "'How Long' is a chinaman."

>  


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux