curly brackets necessary in php? 
July 17th, 2005, 04:19 AM
| | | curly brackets necessary in php?
Do I need to use curly brackets in PHP if .. else statements? other constructs?
Does it matter? What are Best Practices? Why?
thanks in advance...
This seems to work WITHOUT curly brackets:
if(ereg("Win", getenv("HTTP_USER_AGENT")))
$visos = "Windows";
elseif((ereg("Mac", getenv("HTTP_USER_AGENT"))) || (ereg("PPC",
getenv("HTTP_USER_AGENT"))))
$visos = "Mac";
elseif(ereg("Linux", getenv("HTTP_USER_AGENT")))
$visos = "Linux";
elseif(ereg("FreeBSD", getenv("HTTP_USER_AGENT")))
$visos = "FreeBSD";
elseif(ereg("SunOS", getenv("HTTP_USER_AGENT")))
$visos = "SunOS";
elseif(ereg("IRIX", getenv("HTTP_USER_AGENT")))
$visos = "IRIX";
elseif(ereg("BeOS", getenv("HTTP_USER_AGENT")))
$visos = "BeOS";
elseif(ereg("OS/2", getenv("HTTP_USER_AGENT")))
$visos = "OS/2";
elseif(ereg("AIX", getenv("HTTP_USER_AGENT")))
$visos = "AIX";
else $visos = "unknown";
And this seems to work WITH curly brackets:
if (isset($_SERVER))
{
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
{
$visip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
elseif (isset($_SERVER["HTTP_CLIENT_IP"]))
{
$visip = $_SERVER["HTTP_CLIENT_IP"];
}
else
{
$visip = $_SERVER["REMOTE_ADDR"];
}
}
else
{
if (getenv('HTTP_X_FORWARDED_FOR'))
{
$visip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif (getenv('HTTP_CLIENT_IP'))
{
$visip = getenv('HTTP_CLIENT_IP');
}
else
{
$visip = getenv('REMOTE_ADDR');
}
} | 
July 17th, 2005, 04:19 AM
| | | Re: curly brackets necessary in php?
On Sun, 21 Mar 2004 00:35:18 GMT, "deko" <dje422@hotmail.com> wrote:
[color=blue]
>Do I need to use curly brackets in PHP if .. else statements? other constructs?
>Does it matter? What are Best Practices? Why?[/color]
You need to use curly brackets if there is more than one statement to be
executed in that conditional branch.
if (condition)
statement;
else
statement2;
if (condition) {
statement;
} else {
statemen2;
}
if (condition) {
statement1;
statement2;
} else
statement2;
All these are fine.
A conditional itself is a single statement, so even:
if (condition1)
if (condition2)
statement1;
else
statement2;
If you only have one statement, you can leave out the curly brackets, which
cuts out a couple of lines and may make the code more (or less) readable.
The risk is that later you add another statement, and forget to add the curly
brackets:
if (condition)
statement1;
statement2;
statement2 will in fact always be executed, even if condition is false.
Same principle applies to all the control structures; while, foreach, etc.
--
Andy Hassall <andy@andyh.co.uk> / Space: disk usage analysis tool http://www.andyh.co.uk / http://www.andyhsoftware.co.uk/space | 
July 17th, 2005, 04:19 AM
| | | Re: curly brackets necessary in php?
I'll have to admit, those curly brackets are a pain. But it would seem better
to ALWAYS use curly brackets for consistency's sake. Do many programmers do
this? Or is it pretty much a free for all?
"Andy Hassall" <andy@andyh.co.uk> wrote in message
news:dirp50d3l9k3fipna6bdvs1di6eo0uh5pa@4ax.com...[color=blue]
> On Sun, 21 Mar 2004 00:35:18 GMT, "deko" <dje422@hotmail.com> wrote:
>[color=green]
> >Do I need to use curly brackets in PHP if .. else statements? other[/color][/color]
constructs?[color=blue][color=green]
> >Does it matter? What are Best Practices? Why?[/color]
>
> You need to use curly brackets if there is more than one statement to be
> executed in that conditional branch.
>
> if (condition)
> statement;
> else
> statement2;
>
> if (condition) {
> statement;
> } else {
> statemen2;
> }
>
> if (condition) {
> statement1;
> statement2;
> } else
> statement2;
>
> All these are fine.
>
> A conditional itself is a single statement, so even:
>
> if (condition1)
> if (condition2)
> statement1;
> else
> statement2;
>
> If you only have one statement, you can leave out the curly brackets, which
> cuts out a couple of lines and may make the code more (or less) readable.
>
> The risk is that later you add another statement, and forget to add the curly
> brackets:
>
> if (condition)
> statement1;
> statement2;
>
> statement2 will in fact always be executed, even if condition is false.
>
> Same principle applies to all the control structures; while, foreach, etc.
>
> --
> Andy Hassall <andy@andyh.co.uk> / Space: disk usage analysis tool
> http://www.andyh.co.uk / http://www.andyhsoftware.co.uk/space[/color] | 
July 17th, 2005, 04:19 AM
| | | Re: curly brackets necessary in php?
deko wrote:[color=blue]
> I'll have to admit, those curly brackets are a pain. But it would seem better
> to ALWAYS use curly brackets for consistency's sake. Do many programmers do
> this? Or is it pretty much a free for all?[/color]
Do as you think it's better for you.
Think that you'll have to read your code again in a few months time, and
make it easy to identify what blocks (or instructions) 'belong' to what
control structure.
I tend to not use braces for most simple and direct "stuff":
if ($bold) echo '<strong>';
echo $content;
if ($bold) echo '</strong>';
but use them for things I might want to change later:
// previous statement
while ($row = mysql_fetch_row($result)) {
$option[] = $row[0];
}
// next statement
this last one could very well be written as
// previous statement
//get db data
while ($row = mysql_fetch_row($result)) $option[] = $row[0];
// next statement
In the last two snippets I use blank lines and coments as shown. Of
course the // next and // previous statement comments, in real code
would be real statements (unless either was another thing I needed a
comment for).
--
USENET would be a better place if everybody read: : mail address : http://www.catb.org/~esr/faqs/smart-questions.html : is valid for : http://www.netmeister.org/news/learn2quote2.html : "text/plain" : http://www.expita.com/nomime.html : to 10K bytes : | 
July 17th, 2005, 04:19 AM
| | | Re: curly brackets necessary in php?
10-4
Think I'll start with using them all the time and see how it goes from there.
{
Thanks for the tip :)
}
"Pedro Graca" <hexkid@hotpop.com> wrote in message
news:c3j2mg$27okta$1@ID-203069.news.uni-berlin.de...[color=blue]
> deko wrote:[color=green]
> > I'll have to admit, those curly brackets are a pain. But it would seem[/color][/color]
better[color=blue][color=green]
> > to ALWAYS use curly brackets for consistency's sake. Do many programmers do
> > this? Or is it pretty much a free for all?[/color]
>
> Do as you think it's better for you.
> Think that you'll have to read your code again in a few months time, and
> make it easy to identify what blocks (or instructions) 'belong' to what
> control structure.
>
> I tend to not use braces for most simple and direct "stuff":
> if ($bold) echo '<strong>';
> echo $content;
> if ($bold) echo '</strong>';
>
> but use them for things I might want to change later:
> // previous statement
> while ($row = mysql_fetch_row($result)) {
> $option[] = $row[0];
> }
> // next statement
>
> this last one could very well be written as
> // previous statement
>
> //get db data
> while ($row = mysql_fetch_row($result)) $option[] = $row[0];
>
> // next statement
>
>
> In the last two snippets I use blank lines and coments as shown. Of
> course the // next and // previous statement comments, in real code
> would be real statements (unless either was another thing I needed a
> comment for).
> --
> USENET would be a better place if everybody read: : mail address :
> http://www.catb.org/~esr/faqs/smart-questions.html : is valid for :
> http://www.netmeister.org/news/learn2quote2.html : "text/plain" :
> http://www.expita.com/nomime.html : to 10K bytes :[/color] | 
July 17th, 2005, 04:19 AM
| | | Re: curly brackets necessary in php?
Just to add on to what's been said...
I always use braces, it makes the code much easier to read I find.
Also, I use braces on separate lines as in
if ( condition )
{
actions...
}
else
{
....
)
Which I personally find easier to read. The use of one brace at the
end of the condition line was started in an attempt to save paper when
developing on teletypes and punched cards.
Gives you some idea of how old I am (:
Steve
On Sun, 21 Mar 2004 04:39:28 GMT, "deko" <dje422@hotmail.com> wrote:
[color=blue]
>10-4
>
>Think I'll start with using them all the time and see how it goes from there.
>{
>Thanks for the tip :)
>}
>"Pedro Graca" <hexkid@hotpop.com> wrote in message
>news:c3j2mg$27okta$1@ID-203069.news.uni-berlin.de...[color=green]
>> deko wrote:[color=darkred]
>> > I'll have to admit, those curly brackets are a pain. But it would seem[/color][/color]
>better[color=green][color=darkred]
>> > to ALWAYS use curly brackets for consistency's sake. Do many programmers do
>> > this? Or is it pretty much a free for all?[/color]
>>
>> Do as you think it's better for you.
>> Think that you'll have to read your code again in a few months time, and
>> make it easy to identify what blocks (or instructions) 'belong' to what
>> control structure.
>>
>> I tend to not use braces for most simple and direct "stuff":
>> if ($bold) echo '<strong>';
>> echo $content;
>> if ($bold) echo '</strong>';
>>
>> but use them for things I might want to change later:
>> // previous statement
>> while ($row = mysql_fetch_row($result)) {
>> $option[] = $row[0];
>> }
>> // next statement
>>
>> this last one could very well be written as
>> // previous statement
>>
>> //get db data
>> while ($row = mysql_fetch_row($result)) $option[] = $row[0];
>>
>> // next statement
>>
>>
>> In the last two snippets I use blank lines and coments as shown. Of
>> course the // next and // previous statement comments, in real code
>> would be real statements (unless either was another thing I needed a
>> comment for).
>> --
>> USENET would be a better place if everybody read: : mail address :
>> http://www.catb.org/~esr/faqs/smart-questions.html : is valid for :
>> http://www.netmeister.org/news/learn2quote2.html : "text/plain" :
>> http://www.expita.com/nomime.html : to 10K bytes :[/color]
>[/color] | 
July 17th, 2005, 04:19 AM
| | | Re: curly brackets necessary in php?
In article <Ti67c.40854$N61.35431@newssvr25.news.prodigy.com> , "deko"
<dje422@hotmail.com> wrote:
[color=blue]
> I'll have to admit, those curly brackets are a pain. But it would
> seem better to ALWAYS use curly brackets for consistency's sake. Do
> many programmers do this? Or is it pretty much a free for all?[/color]
I always use them, unless it's a oneliner, like:
if ($nr == 10) print "It's ten!";
But I usually make them as compact as possible, with:
if (condition){*print "foo"; }
else { print "bar"; }
And if the statements run more than one lines:
if (condition){
print "foo";
$foo = true;
} else {
print "bar";
}
--
Sandman[.net] | 
July 17th, 2005, 04:20 AM
| | | Re: curly brackets necessary in php?
deko wrote:[color=blue]
> But it would seem better to ALWAYS use curly brackets
> for consistency's sake.[/color]
It is, for reasons of consistency, readability, and long-term
maintainability.
[color=blue]
> Do many programmers do this?[/color]
I do, and the people under me on my team do. I do not look kindly on
people who generate error-prone code out of sheer laziness. Always use
the brackets. Always. There is no excuse to leave them out.
bblackmoor
2004-03-21 | 
July 17th, 2005, 04:20 AM
| | | Re: curly brackets necessary in php?
Steve Holdoway wrote:[color=blue]
>
> Also, I use braces on separate lines as in
>
> if ( condition )
> {
> actions...
> }
> else
> {
> ....
> )[/color]
This is my preferred style, as well, and is the style mandated in our
coding guidelines. It makes the code more readable, and thus makes
errors less likely. It also makes searching for pairs of brackets much
easier.
bblackmoor
2004-03-21 | 
July 17th, 2005, 04:20 AM
| | | Re: curly brackets necessary in php?
Well, these's the alternative synatx:
if(IsMad($cows)):
OrderTurkeyBurgers();
CallCDC();
elsif(HasFlu($chickens)):
OrderKungPaoBeef();
Cancel($trip_to_thailand);
else:
FireUpBBQ();
HaveUnprotectedSex();
endif;
for($i = 0; $i < 3; $i++):
ChangeRegime($axis_of_evil[$i]);
endfor;
while($morale < 100):
ContinueBeating();
endwhile;
....etc.
In regular PHP code, this syntax is considered deprecated. Some of us like
to this it though when we place control structure within HTML. <? foreach(
.... )?> ... <? endforeach; ?> is much more readable than <? foreach( ... )
{ ?> ... <? } ?> .
Uzytkownik "deko" <dje422@hotmail.com> napisal w wiadomosci
news:ar57c.40841$7J.38240@newssvr25.news.prodigy.c om...[color=blue]
>
> Do I need to use curly brackets in PHP if .. else statements? other[/color]
constructs?[color=blue]
> Does it matter? What are Best Practices? Why?
>
> thanks in advance...
>
> This seems to work WITHOUT curly brackets:
>
> if(ereg("Win", getenv("HTTP_USER_AGENT")))
> $visos = "Windows";
> elseif((ereg("Mac", getenv("HTTP_USER_AGENT"))) || (ereg("PPC",
> getenv("HTTP_USER_AGENT"))))
> $visos = "Mac";
> elseif(ereg("Linux", getenv("HTTP_USER_AGENT")))
> $visos = "Linux";
> elseif(ereg("FreeBSD", getenv("HTTP_USER_AGENT")))
> $visos = "FreeBSD";
> elseif(ereg("SunOS", getenv("HTTP_USER_AGENT")))
> $visos = "SunOS";
> elseif(ereg("IRIX", getenv("HTTP_USER_AGENT")))
> $visos = "IRIX";
> elseif(ereg("BeOS", getenv("HTTP_USER_AGENT")))
> $visos = "BeOS";
> elseif(ereg("OS/2", getenv("HTTP_USER_AGENT")))
> $visos = "OS/2";
> elseif(ereg("AIX", getenv("HTTP_USER_AGENT")))
> $visos = "AIX";
> else $visos = "unknown";
>
> And this seems to work WITH curly brackets:
>
> if (isset($_SERVER))
> {
> if (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
> {
> $visip = $_SERVER["HTTP_X_FORWARDED_FOR"];
> }
> elseif (isset($_SERVER["HTTP_CLIENT_IP"]))
> {
> $visip = $_SERVER["HTTP_CLIENT_IP"];
> }
> else
> {
> $visip = $_SERVER["REMOTE_ADDR"];
> }
> }
> else
> {
> if (getenv('HTTP_X_FORWARDED_FOR'))
> {
> $visip = getenv('HTTP_X_FORWARDED_FOR');
> }
> elseif (getenv('HTTP_CLIENT_IP'))
> {
> $visip = getenv('HTTP_CLIENT_IP');
> }
> else
> {
> $visip = getenv('REMOTE_ADDR');
> }
> }
>
>[/color] | 
July 17th, 2005, 04:20 AM
| | | Re: curly brackets necessary in php?
yeah, that seems best to me as well. the trade off of screen space for
readability is well worth it.
"Brandon Blackmoor" <bblackmoor@spamcop.net> wrote in message
news:c3l60b$24dt7a$2@ID-97660.news.uni-berlin.de...[color=blue]
> Steve Holdoway wrote:[color=green]
> >
> > Also, I use braces on separate lines as in
> >
> > if ( condition )
> > {
> > actions...
> > }
> > else
> > {
> > ....
> > )[/color]
>
> This is my preferred style, as well, and is the style mandated in our
> coding guidelines. It makes the code more readable, and thus makes
> errors less likely. It also makes searching for pairs of brackets much
> easier.
>
> bblackmoor
> 2004-03-21[/color] | 
July 17th, 2005, 04:20 AM
| | | Re: curly brackets necessary in php?
On Sun, 21 Mar 2004 15:05:37 +0100, Sandman <mr@sandman.net> wrote:
[color=blue]
>In article <Ti67c.40854$N61.35431@newssvr25.news.prodigy.com> , "deko"
><dje422@hotmail.com> wrote:
>[color=green]
>> I'll have to admit, those curly brackets are a pain. But it would
>> seem better to ALWAYS use curly brackets for consistency's sake. Do
>> many programmers do this? Or is it pretty much a free for all?[/color]
>
>I always use them, unless it's a oneliner, like:
>
> if ($nr == 10) print "It's ten!";
>
>But I usually make them as compact as possible, with:
>
> if (condition){*print "foo"; }
> else { print "bar"; }[/color]
For simple stuff like this, you can usually use the ternary operator:
print( $nr == 10 ? "It's ten!" : "" );
print( condition ? "foo" : "bar" );
--
David ( @priz.co.uk ) | 
July 17th, 2005, 04:20 AM
| | | Re: curly brackets necessary in php?
thanks for the example. are my translations correct?
[color=blue]
> print( $nr == 10 ? "It's ten!" : "" );[/color]
if $nr is set to 10, then print "It's ten!", otherwise don't print anything
[color=blue]
> print( condition ? "foo" : "bar" );[/color]
if [some code] evaluates to "foo", then print "bar"
look ma, no curly braces! | 
July 17th, 2005, 04:20 AM
| | | Re: curly brackets necessary in php?
> thanks for the example. are my translations correct?[color=blue]
>[color=green]
> > print( $nr == 10 ? "It's ten!" : "" );[/color]
>
> if $nr is set to 10, then print "It's ten!", otherwise don't print[/color]
anything[color=blue]
>[/color]
Yes.
[color=blue][color=green]
> > print( condition ? "foo" : "bar" );[/color]
>
> if [some code] evaluates to "foo", then print "bar"
>
> look ma, no curly braces!
>[/color]
No. If [some code] evalutates to true, print "foo" else print "bar".
It is equivelant to
if(condition)
print "foo"
else
print "bar"
The ternary operator works thusly:
(condition) ? if_true_do_this : if_false_do_this | 
July 17th, 2005, 04:20 AM
| | | Re: curly brackets necessary in php?
> The ternary operator works thusly:[color=blue]
>
> (condition) ? if_true_do_this : if_false_do_this[/color]
10-4
just curious, does C++ use the same syntax? | 
July 17th, 2005, 04:20 AM
| | | Re: curly brackets necessary in php?
> The ternary operator works thusly:[color=blue]
>
> (condition) ? if_true_do_this : if_false_do_this[/color]
What if I want to *do nothing* if (condition) is false?
print( condition ? "foo" );
If [some code] evalutates to true, print "foo".
is this correct? | 
July 17th, 2005, 04:21 AM
| | | Re: curly brackets necessary in php?
In message <c3l60b$24dt7a$2@ID-97660.news.uni-berlin.de>, Brandon
Blackmoor <bblackmoor@spamcop.net> writes[color=blue]
>Steve Holdoway wrote:[color=green]
>> Also, I use braces on separate lines as in
>> if ( condition )
>> {
>> actions...
>> }
>> else
>> {
>> ....
>> )[/color]
>
>This is my preferred style, as well, and is the style mandated in our
>coding guidelines. It makes the code more readable, and thus makes
>errors less likely. It also makes searching for pairs of brackets much
>easier.[/color]
I also use this, because of finding the pairs being easy, and almost
always use them even for a single statement as I agree with another
poster which is that it's too easy for humans to read the meaning from
the indentation instead of the brackets.[color=blue]
>
>bblackmoor
>2004-03-21[/color]
--
Five Cats
Email to: cats_spam at uk2 dot net | 
July 17th, 2005, 04:21 AM
| | | Re: curly brackets necessary in php?
In message <K4udncJRFti5zMPd4p2dnA@comcast.com>, Chung Leong
<chernyshevsky@hotmail.com> writes[color=blue]
>Well, these's the alternative synatx:
>
>if(IsMad($cows)):
> OrderTurkeyBurgers();
> CallCDC();
>elsif(HasFlu($chickens)):
> OrderKungPaoBeef();
> Cancel($trip_to_thailand);[/color]
<snip>
Good luck to those of you with good enough eyesight to spot the colons &
semi-colons in the above....
--
Five Cats
Email to: cats_spam at uk2 dot net | 
July 17th, 2005, 04:21 AM
| | | Re: curly brackets necessary in php?
Five Cats wrote:[color=blue]
> I agree with another poster which is that it's
> too easy for humans to read the meaning from
> the indentation instead of the brackets.[/color]
The problem with that is twofold: first, indentation can't be trusted to
remain in place. Even if the developers are wise enough to eschew tabs
and use spaces for indentation (and sadly, not all developers are this
wise), code *changes*. A few lines of code may be copied from one place
and pasted into another, and re-indented to fit with its new home. Or
perhaps it might be added to a nested control structure, or an
additional control structure might be added after the current
un-bracketed "if". All of this is simply an error waiting to happen.
Unless you are the only person who works on your code, and you never
touch it a second time after you type it, leaving the brackets out will
result in errors.
At least, that has been my observation.
bblackmoor
2004-03-22 | 
July 17th, 2005, 04:21 AM
| | | Re: curly brackets necessary in php?
In message <c3obop$2amkvf$1@ID-97660.news.uni-berlin.de>, Brandon
Blackmoor <bblackmoor@spamcop.net> writes[color=blue]
>Five Cats wrote:[color=green]
>> I agree with another poster which is that it's
>> too easy for humans to read the meaning from
>> the indentation instead of the brackets.[/color]
>
>The problem with that is twofold: first, indentation can't be trusted
>to remain in place. Even if the developers are wise enough to eschew
>tabs and use spaces for indentation (and sadly, not all developers are
>this wise), code *changes*. A few lines of code may be copied from one
>place and pasted into another, and re-indented to fit with its new
>home. Or perhaps it might be added to a nested control structure, or an
>additional control structure might be added after the current
>un-bracketed "if". All of this is simply an error waiting to happen.
>
>Unless you are the only person who works on your code, and you never
>touch it a second time after you type it, leaving the brackets out will
>result in errors.
>
>At least, that has been my observation.[/color]
I think we are agreed that the brackets should be used.
--
Five Cats
Email to: cats_spam at uk2 dot net | 
July 17th, 2005, 04:22 AM
| | | Re: curly brackets necessary in php?
In article <flgt50dgc83u970oi7o3m7vjgsi1jphka0@4ax.com>,
David Mackenzie <me@privacy.net> wrote:
[color=blue]
> On Sun, 21 Mar 2004 15:05:37 +0100, Sandman <mr@sandman.net> wrote:
>[color=green]
> >In article <Ti67c.40854$N61.35431@newssvr25.news.prodigy.com> , "deko"
> ><dje422@hotmail.com> wrote:
> >[color=darkred]
> >> I'll have to admit, those curly brackets are a pain. But it would
> >> seem better to ALWAYS use curly brackets for consistency's sake. Do
> >> many programmers do this? Or is it pretty much a free for all?[/color]
> >
> >I always use them, unless it's a oneliner, like:
> >
> > if ($nr == 10) print "It's ten!";
> >
> >But I usually make them as compact as possible, with:
> >
> > if (condition){*print "foo"; }
> > else { print "bar"; }[/color]
>
> For simple stuff like this, you can usually use the ternary operator:
>
> print( $nr == 10 ? "It's ten!" : "" );
> print( condition ? "foo" : "bar" );[/color]
I always use these when applicable, so perhaps I should have used this example:
if (condition){*print "foo"; }
else { $errors[]="Can't open file"; }
--
Sandman[.net] | | Thread Tools | Search this Thread | | | |
Posting Rules
| You may not post new threads You may not post replies You may not post attachments You may not edit your posts HTML code is Off | | | | | | What is Bytes?
We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights.
Get the best answers to your questions from over 220,989 network members.
|