Döngü veya döngü?

8 Cevap php

Bu durumda, bu bir döngü kullanmak ya da daha iyidir?

echo "0";
echo "1";
echo "2";
echo "3";
echo "4";
echo "5";
echo "6";
echo "7";
echo "8";
echo "9";
echo "10";
echo "11";
echo "12";
echo "13";

veya

$number = 0;

while ($number != 13)
{
    echo $number;
    $number = $number + 1;
}

8 Cevap

$string = "<?php \n";

$repeatNum = 20;

for($i = 0; $i < $repeatNum; $i++)
{
    $string .= "echo \"" . $number . "\"; \n";
}

$string = "?>";

Şimdi ya

eval($string);

veya

file_put_contents("newfile.text", $string);

ve tüm ekolar bir dosya alacaksınız!

Note: This is not really a 'serious' answer. If you really want to create a PHP file with a number of echos, it works, but evaling the statement at the end is probably not the best idea fveyaregular programming practice.

Eski bir little daha hızlı olabilir. İkincisi, bir lot daha okunabilir. Seçim sizin ;)

Hatta daha iyi olurdu

$totalWhatevers = 14;
for ($number = 0; $number < $totalWhatevers ; $number++)
{
    echo $number;
}

'TotalWhatevers' aslında sayma ne bize açıklayıcı bir şey olduğu.

Bu bir döngü kullanmak daha net; Eğer döngü kod az çizgi kullanırsanız kural olarak, bunu yapın.

Sizin döngü daha özlü yazılmış olabilir:

foreach (range(0,13) as $n)
    echo $n, "\n";

Ben sadece (orijinal döngü yalnızca 12 kadar baskı görünüyor) açık her şeyi tutmak için, döngü için kullanmak istiyorum:

for ($number = 0; $number <= 13; $number++)
{
    echo $number;
}

Daha sonra bir milyon 'echo' dışarı yazma çok daha temiz, ve kod oldukça kendini açıklayıcı.

Yapmaya çalıştığınız ne bağlı olarak, bir döngü güncellemek için kod net ve basit tutmaya yardımcı olabilir.

Ekranın sayısı değişebilir Örneğin, bir yapılandırma değişkenleri kullanabilirsiniz.

$repeat = 20;

for ($i = 0; $ < $repeat; ++$i) {
   echo $i;
}

Hata bir döngü kodu üretir düşünerek bulunmaktadır. Bu hiç böyle değildir.

echo "0";
echo "1";
echo "2";
echo "3";

PHP gelip biri tarafından bu tabloların her biri yürütecektir.

for ($i = 0; $i <= 3; ++$i) {
    echo $i;
}

Bu durumda, PHP the same echo ifadesi dört kez yürütür. Her zaman bloğunun uç (kaşlı arasında bir blok varlık kod) yürütme geri durumuna atlar ulaşılır. Durumu hala doğru ise, blok tekrar yürütür.

Hangi yöntem en iyi performansı sunar? Bunu söylemek için çok, çok zor.

Yöntemin yavaşlama 1) yankı sayı aralığı büyük, script çözümlenir fazla yankı ifadeler.

Yöntemin yavaşlama 2) yankı sayı aralığı arttıkça, daha çok kez icra, atlamak için bir durum, test edilecek olan birden fazla defa sahiptir ve daha fazla kez bir karşı artan edilmesi gerekir.

Ben senaryo fazla CPU talimatlar neden bilmiyorum, ya da daha fazla bellek kullanımına yol açar. Ama daha önce programlanmış olan biri olarak, ben bir sır biliyorum: it doesn't matter. Yürütme fark muhtemelen bir kaç ten millionths saniyenin civarında tartmak olacak!

Eğer bir yöntem diğerinden daha ikinci bir daha alabilir durumda on milyon numaraları, yankılanan nedenle, etkileri hiç fark hale getirmek için tek yoldur. Bu olsa layık kazanç değil mi? Hayır! Biz on milyon numaraları yankılanıyor zaman, biz iki yöntemi minutes harcama olacak. Aralarındaki tek fark tamamen ihmal olduğunu, bir saniye ile farklı olacaktır. Söz değil, kim hangisini nasıl olsa daha iyi bilir?

Bir programcı olarak, yapabileceğiniz en iyi şey kodunuzu readable ve maintainable olun. Bir döngü yankı hatlarının bir sayfa anlamak için çok daha kolaydır. Bir döngü ile Sana herhangi bir ara numaralarını cevapsız değil biliyorum, ama yankıları ile ben her satır kontrol etmelisiniz.

Teknik jargon versiyonu: Her iki algoritmaları karmaşıklığı O (n) var. Orada sadece performans sürekli bir fark olabilir, ve bu sabit özellikle büyük değilse, bu önemsiz olabilir.

Daha iyi ne demek istiyorsun? Çözümleyici için daha iyi? bilgisayar için daha iyi? Daha hızlı yürütme zamanı? Ben bir döngü yapma kodu ile çalışan insanlar için ve sistem için, her zaman daha iyi olduğunu söyleyebilirim.