Ben PHP "goto" komutu tanıtan planlıyor söylentiler duydum. Ne yapıyor olması gerekiyordu?
Biraz arama denedim, ama çok açıklayıcı bir şey bulamadı. Ben bir "GOTO 10
" gibi komut olmayacağını anlıyorum ...
Onlar gerçek bir GOTO ekleyerek, ama statik etiket kullanmak için BREAK anahtar uzanan değildir. Temelde, patlak yeteneğini arttırmak olacaktır switch ifadeleri ise iç içe. Burada bulunan konsept örnek:
<?php
for ($i = 0; $i < 9; $i++)
{
if (true) {
break blah;
}
echo "not shown";
blah:
echo "iteration $i\n";
}
?>
GOTO "söylenti" üzerinden bir kez Tabii ki, ek COMEFROM şaka yaymak için bazı kötü adamlar durdurmak için hiçbir şey yoktu. Uyanık olun.
Ayrıca bkz:
Verilen, ben bir PHP programcısı değilim, ve ben GOTO PHP'nin tam bir uygulaması gibi görüneceğini bilmiyorum, ama burada GOTO benim anlayış:
GOTO diğerleri gibi sadece daha açık bir akış kontrol ifadedir. Diyelim ki bazı iç içe döngüler var ve sadece tek bir şey bulmak gerekiyor diyelim. Bir koşullu deyim (veya birkaç) koyabilirsiniz ve koşullar düzgün sağlandığında, bunun yerine bir koşullu deyimi ile her yuvalanma düzeyinde bir 'mola' deyimi sahip (tüm döngüler çıkmak için bir GOTO deyimi kullanabilirsiniz her Ve evet, ben geleneksel uygulama GOTO deyimi adıyla atlayabilirsiniz etiketleri adında var olduğuna inanıyorum Sen böyle bir şey yapabilirsiniz..:
for(...) {
for (...) {
for (...) {
// some code
if (x) GOTO outside;
}
}
}
:outside
Bu GOTO ifadeleri olmadan daha basit (ve daha verimli) uygulamasıdır. Eşdeğer olacaktır:
for(...) {
for (...) {
for (...) {
// some code
if (x) break;
}
if(x) break;
}
if(x) break;
}
(Yaygın bir uygulama) ikinci durumda tabii ki sadece bir tane olan daha yavaştır üç koşullu ifadeler vardır. Yani, optimizasyon / Sadeleştirilmesi nedenlerle, sıkıca iç içe döngüler GOTO ifadeleri kullanmak isteyebilirsiniz.
Tarafından verilen örnekte steveth45 yerine bir işlevi kullanabilirsiniz:
function findItem(...) {
for (...) {
for (...) {
for (...) {
if (x) {
return theItem;
}
}
}
}
}
// no need for label now
theItem = findItem(a, b, c);
> http://php.net/manual/en/control-structures.goto.php, ama ben sadece normal kod yazmak, kullanmak olmaz ... - Orada bir goto
php olduğunu