Re: Re: Preferred Syntax
| From: | Jim Lucas | Date: | Thu, 15 Dec 2011 16:07:17 +0000 |
| Subject: | Re: Re: Preferred Syntax | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-316030@lists.php.net to get a copy of this message | ||
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