Re: how to say "inverse your value" (to a boolean)?

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

 



Daevid Vincent wrote:
>  
> 
>> -----Original Message-----
>> Daevid Vincent wrote:
>>> NO! For the love of God and all that is holy, don't do that 
>> accumulator / mod "hack". 
>>> That's sooooo 1980's. And why make the CPU do all that math 
>> for every row...
>>> Just do this. It's quick and simple:
>>>
>>> CSS:
>>> 	.dataRow1 { background-color: #DFDFDF; }
>>> 	.dataRow2 { background-color: #FFFFFF; }
>>>
>>> foreach ($foo_array as $foo) {
>>>    ?><tr class="<?= ($dr = !$dr) ? "dataRow1" : "dataRow2" 
>> ?>"><td><?= $foo
>>> ?></td></tr><?php
>> Wow, were to start with all the problems in the above code:
>> 1.  Short tags?
> 
> Nothing wrong with them. Do yourself a test. There is zero speed difference
> in a page. It makes your code cleaner and easier to read, plus less
> kilobytes you have to pull from the hard drive, therefore faster pages.
> 
> http://stackoverflow.com/questions/662891/is-there-a-speed-difference-betwee
> n-php-echo-var-and-var
> 
> http://cubicspot.blogspot.com/2009/06/maximum-failure-php-6-deprecates-short
> .html
> 

Looks like all your code is going to stop working when PHP 6 comes
around.  Since the "<?= " is part of the family they look to deprecate.
(read next comment)

> Are you sure you're not confused with "short_open_tags" ie. <? ?> -- which I
> am fully against (as am I against <% %> too), although sadly they are lumped
> into the same directive, when IMHO they should be separate.
> 
> http://us.php.net/manual/en/ini.core.php#ini.short-open-tag
> 
> http://www.php.net/~derick/meeting-notes.html#remove-support-for-and-script-
> language-php-and-add-php-var
> 

Glad you mention this.  If you look at the note for the short-open-tag
option, it says:

Note: This directive also affects the shorthand "<?= ", which is
identical to "<? echo ". Use of this shortcut requires short_open_tag
to be on.

So, you are saying you do not like to promote the use of short_open_tag,
but in your examples of how to write your code, you use them because it
shortens your code, etc...

So, which is it, do you like using short_open_tag or not???  Because
"<?=" is part of the short_open_tag family

>> 2.  Not using echo or print.  
> 
> <?= ?> is a fantastic shortcut to the antiquated <?php echo ""; ?> B.S.

Yours requires short_open_tag to be on and uses them, mine doesn't

Plus, I would never do this in side of HTML to begin with.  If I was in
the middle of a script, then I would have PHP echo the entire HTML
portion of the code rather then breaking out of PHP - do some HTML -
break in to PHP and echo a variable - break out and finish the HTML.

> The vast majority of your page is output in little fragments like this, so
> why not keep it clean and easy to read. Why would you purposely choose to be
> more verbose than you need to be for something as basic as "print".
> 
>> You actually recommend breaking in/out of php?
> 
> Hell yeah I do. THAT is one of the MAIN reasons to use PHP. Otherwise, why
> not just render your whole page with a bunch of $html .= '<tr><td>...';
> tags and print $html at the end. Welcome to the year 2000 my friend.
> 

So, your example above would tell me that you are the type of guy that
would echo all your HTML code from within your nested php functions? hmmm

Breaking in/out of PHP all the time, what a mess of code that would be.

I have tried tasting that soup before.  I didn't like it...

> You're probably the same kind of person that does this crap:
> 
> if ($foo == true)
> {
>    echo "A";
> }
> else
> {
>    echo "B";
> }
> 

Actually, my crap would look like this:

if ( $foo ) {
	echo 'A';
} else {
	echo 'B';
}

No double quotes (no variables need to be worked with)
Open curly bracket on the end of the previous line
    I actually wrote a script that will take your example and turn it
    into my crap

> (complete with extra braces and checking for 'true' explicitly, but not
> using === in such cases)
> 

I do know the difference between == and ===

> Rather than a much cleaner, easier to read/write and more concise:
> 
>  <?= ($foo) ? 'A' : 'B' ?>
> 

Again with your short_open_tag recommendations...  When will you learn
that this is going against what you preach.

> 
>> 3.  Using uninitialized variables (I run with the E_ALL crowd)
> 
> I'm so happy for you. Do you have a membership card and everything? That's
> your own masochistic fault then. I run with the
> save-myself-the-headache-and-write-clean-efficient-code crowd.
> 

I don't think I am causing myself any pain.

clean !== use uninitialized variables
efficient !== squelching the NOTICE(s) that get generated by your code
that uses uninitialized variables.  Not having them be generate in the
first place would be better.

>> 4.  Using the <tr class=''> and not the <td class=''>...  Hmmm
> 
> Maybe you're new to how HTML works, but if you want to highlight a ROW (as
> the OP did), then you put the background color on the highest parent that it
> applies to. Hey imagine that, there is a TR tag which stands for TABLE ROW
> tag. Seems obvious to me. This reduces your page size in kilobytes, makes a
> much cleaner HTML rendering to read in source, and is the PROPER way to do
> it.
> 

I have found, in a number of cases, that using only the <TR > tag
doesn't work all the time.

>>> }
>>>
>>> No need to initialize $dr as by default PHP will make it a 
>> boolean "false",
>>> then each itteration, it will toggle true/false and 
>> substitute the CSS class
>>>> -----Original Message-----
>>>> From: Jim Lucas [mailto:lists@xxxxxxxxx] 
>>>> Sent: Monday, August 10, 2009 4:03 PM
>>>> To: John Butler
>>>> Cc: PHP-General List
>>>> Subject: Re:  how to say "inverse your value" (to a boolean)?
>>>>
>>>> John Butler wrote:
>>>>> quick Q:
>>>>> I have this inside a foreach{}  that I want to alternate 
>>>> between on and
>>>>> off so I can alternate the background-color of my <tr>'s.
>>>>>
>>>>> $tableRowBGcolorBoolCounter != $tableRowBGcolorBoolCounter; 
>>>> //-boolean
>>>>> on and off
>>>>>
>>>>> I am looking thru' docs and books, but can't remember (nor 
>>>> find now) in
>>>>> PHP how to say "inverse your value" (to a boolean).
>>>>> ?
>>>>>
>>>>> TIA! -G
>>>>>
>>>>>
>>>> <?php
>>>>
>>>> $arr = range(1, 10);
>>>>
>>>> $i = 0;
>>>> foreach ( $arr AS $row ) {
>>>>
>>>> 	$row_color = ( ( $i++ % 2 ) ? 'green' : 'red');
>>>>
>>>> 	echo $row_color;
>>>>
>>>> }
>>>>
>>>> ?>
>>>>
>> another (neat|strange)+ way I use the above is like so
>>
>> <style>
>> 	.rowColor0 { background: #FFFFFF; }
>> 	.rowColor1,
>> 	.rowColor3 { background: #EEEEEE; }
>> 	.rowColor2 { background: #DDDDDD; }
>> </style>
>> <?php
>>
>> $arr = range(1, 10);
>>
>> $i = 0;
>>
>> foreach ( $arr AS $row ) {
>>
>> 	echo '<tr><td class="rowColor'.( $i++ % 4 
>> ).'"'>'.$row.'</td></tr>';
>>
>> }
>> ?>
>>
>>>> -- 
>>>> PHP General Mailing List (http://www.php.net/)
>>>> To unsubscribe, visit: http://www.php.net/unsub.php
>>>>
>>>
>>
>> -- 
>> 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


[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