Re: Pointers For Newbies, Reminders For Oldies

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

 



2010/1/27 Michael A. Peters <mpeters@xxxxxxx>:
> Paul M Foster wrote:
>>
>> "... should be obvious - but are often overlooked - points within coding
>> practice that can cause the programmer to develop bad habits and bad
>> code." - Dan Brown
>>
>> Tip #1:
>>
>> Don't use count() in loops unless there are very few items to count and
>> performance doesn't matter, or the number will vary over the loop. That
>> is, don't do this:
>>
>> for ($i = 0; $i < count($items); $i++)
>>
>> Instead, do this:
>>
>> $number = count($items);
>> for ($i = 0; $i < $number; $i++)
>
> Gah!
>
> for ($i=0;$i<sizeof($array);$i++)
>
> is something I do all the time.
> So the array size is being calculated each iteration?
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

for ($i = 0, $j = count($a) ; $i < $j ; ++$i) {
}

is a very common way to handle that.

Of course...

foreach(range(0, count($a)) as $i) {
}

is an alternative.

You can see the effect of the counting if you replace ...

count($a)

with ...

mycount($a)

and have ...

function mycount($a) {
  echo 'Counting : ', count($a), PHP_EOL;
  return count($a);
}

-- 
-----
Richard Quadling
"Standing on the shoulders of some very clever giants!"
EE : http://www.experts-exchange.com/M_248814.html
EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
ZOPA : http://uk.zopa.com/member/RQuadling

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