Re: How do YOU set default function/method params?

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

 



why bother, i use available good library

http://swiftmailer.org/



On 10/6/09, Jim Lucas <lists@xxxxxxxxx> wrote:
> Eddie Drapkin wrote:
>> On Mon, Oct 5, 2009 at 8:48 PM, Jim Lucas <lists@xxxxxxxxx> wrote:
>>> Here is a problem that I have had for years now.  I have been trying to
>>> come up
>>> with the perfect solution for this problem.  But, I have come down to two
>>> different methods for solving it.
>>>
>>> Here is the problem...
>>>
>>> <?php
>>>
>>> function sendEmail(
>>>    $to,
>>>    $from,
>>>    $subject,
>>>    $body,
>>>    $attachments=array(),
>>>    $headers=array()
>>>    ) { # I typically do not put each argument on seperate lines, but I
>>> ran
>>>        #out of width in this email...
>>>
>>>    # do something here...
>>>    mail(...);
>>>
>>> }
>>>
>>> sendEmail('john@xxxxxxx',
>>>    'marykate@xxxxxxxx',
>>>    'Hi!',
>>>    'Check out my new pictures!!!',
>>>    $hash_array_of_pictures
>>>    );
>>>
>>> Now, we all have a function or method like this floating around
>>> somewhere.
>>>
>>> My question is, how do YOU go about setting the required entries of the
>>> $headers
>>> array() ?
>>>
>>> I see three possible solutions.  I want to see a clean and simple
>>> solution.
>>>
>>> Here are my ideas so far:
>>>
>>> function sendEmail(
>>>    $to,
>>>    $from,
>>>    $subject,
>>>    $body,
>>>    $attachments=array(),
>>>    $headers=array()
>>>    ) { # I typically do not put each argument on seperate lines, but I
>>> ran
>>>        #out of width in this email...
>>>
>>>    if ( empty($headers['Date']) ) {
>>>        $headers['Date'] = date('c');
>>>    }
>>>    if ( empty($headers['Message-ID']) ) {
>>>        $headers['Date'] = md5($to.$subject);
>>>    }
>>>    # and the example goes on...
>>>
>>>    # do something here...
>>>    mail(...);
>>>
>>> }
>>>
>>> Or, another example.  (I will keep it to the guts of the solution now)
>>>
>>>    $headers['Date']       = empty($headers['Date']) ?
>>>                             date('c') : $headers['Date'];
>>>    $headers['Message-ID'] = empty($headers['Message-ID']) ?
>>>                             md5($to.$subject) : $headers['Message-ID'];
>>>
>>> OR, yet another example...
>>>
>>> $defaults = array(
>>>    'Date'       => date('c'),
>>>    'Message-ID' => md5($to.$subject),
>>> );
>>>
>>> $headers += $defaults;
>>>
>>> END of examples...
>>>
>>> Now, IMO, the last one is the simplest one and for me, I think it will be
>>> the
>>> new way that I solve this type of problem.
>>>
>>> But, my question that I put out to all of you is...
>>>
>>>        How would you solve this problem?
>>>
>>> TIA
>>>
>>> Jim Lucas
>>>
>>> --
>>> PHP General Mailing List (http://www.php.net/)
>>> To unsubscribe, visit: http://www.php.net/unsub.php
>>>
>>>
>>
>> How does this look to you?
>>
>> function sendEmail(
>> 	$to,
>> 	$from,
>> 	$subject,
>> 	$body,
>> 	$attachments=array(),
>> 	$headers=array()
>> 	) {
>> 	# I typically do not put each argument on seperate lines, but I ran
>>     #out of width in this email...
>>
>> 	$default_headers = array(
>> 		'Date' => date('c'),
>> 		'Message-ID' => md5($to.$subject)
>> 	);
>>
>>    $headers = array_merge($default_headers, $headers);
>>    # and the example goes on...
>>
>>    # do something here...
>>    mail(...);
>>
>> }
>>
>
> Good, since it is a combination of the examples I gave.
>
> I am looking at how you would solve the problem.  Unless this is the way you
> would solve the
> problem.. :-D
>
> Jim
>
> --
> Jim Lucas
>
>     "Some men are born to greatness, some achieve greatness,
>         and some have greatness thrust upon them."
>
> Twelfth Night, Act II, Scene V
>      by William Shakespeare
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

-- 
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