Re: Re: Preferred Syntax

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

 



On 12/14/2011 11:50 PM, Ross McKay wrote:
> On Wed, 14 Dec 2011 07:59:46 -0500, Rick Dwyer wrote:
> 
>> Can someone tell me which of the following is preferred and why?
>>
>>  echo "<a style='text-align:left;size:14;font-weight:bold' href='/ 
>> mypage.php/$page_id'>$page_name</a><br>";
>>
>>  echo "<a style='text-align:left;size:14;font-weight:bold' href='/ 
>> mypage.php/".$page_id."'>".$page_name."</a><br>";
>> [...]
> 
> Just to throw in yet another possibility:
> 
> echo <<<HTML
> <a style="text-align:left;size:14;font-weight:bold"
>    href="/mypage.php/$page_id">$page_name</a><br>
> HTML;
> 
> I love HEREDOC for slabs of HTML, sometimes SQL, email bodies, etc.
> because they allow you to drop your variables into the output text
> without crufting up the formatting with string concatenation, AND they
> allow you to use double quotes which can be important for HTML
> attributes that may contain single quotes.
> 
> So whilst either above option is fine for the specific context, I prefer
> HEREDOC when there's attributes like href.
> 
> But what is "preferred" is rather dependent on the "preferrer".

I second this example, with one minor change, I would add '{' and '}' around
variables.

echo <<<HTML
<a style="text-align:left;size:14;font-weight:bold"
   href="/mypage.php/{$page_id}">{$page_name}</a><br>
HTML;

This works for $variables, $objects, and variable functions calls.  But doesn't
work if you try to call functions directly (bummer).

$ cat variable_usage.php
<?php

$v1 = 'Variable 1';

$o1 = new stdClass();
$o1->v1 = 'Object 1';

function something($str) {
        return "...{$str}...";
}

$f1 = "something";

echo <<<_
{$v1}
{$o1->v1}
{$f1('Function 1')}
{something('F1')}
_;

?>

Results in this

$ php -f variable_usage.php
Variable 1
Object 1
...Function 1...
{something('F1')}


This is why I like heredoc syntax over pretty much everything else.
-- 
Jim Lucas

http://www.cmsws.com/
http://www.cmsws.com/examples/
http://www.bendsource.com/

C - (541) 408-5189
O - (541) 323-9113
H - (541) 323-4219

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