2010-07-02 40 views
6

मेरी समस्या: मैं लूप के लिए उलटा गिनना चाहता हूं।PHP में इसके लिए उलटी गिनती कैसे करें?

for($i=1;$i<=10;$i++){ 
    echo $i; 
} 

अगर मैं डाल $i-- काम करता है (अपने सर्वर क्रैश हो जाता है) नहीं करता है:

यह है कि मैं क्या करना चाहते हैं के विपरीत है।

मेरी मदद करें!

शुभकामनाओं सहित, एडम

+1

यदि यह आपके सर्वर को क्रैश करता है ... कुछ गलत हो रहा है। या यह "दुर्घटना" के उदार उपयोगों में से एक है? – Artefacto

+0

@Atetefacto: उसका क्या मतलब है "PHP स्क्रिप्ट कभी वापस नहीं आती है और सीपीयू लोड बढ़ जाता है"। ऐसा होता है जब आप अनंत लूप लिखते हैं। – Tomalak

+0

यह क्रैश हो रहा था क्योंकि मैंने एक अनंत लूप शुरू किया: पी @ थैटाइको ने मेरे लिए हल किया है। सहायता के लिए धन्यवाद! – Adam

उत्तर

23

जब आप कहते हैं कि $i-- आपके सर्वर क्रैश हो जाता है, तो आप $i के लिए प्रारंभ और स्थिति बदल दिया?

for($i=10; $i>=1; $i--){ 
    echo $i; 
} 
+1

ओमग :))) मैं ऐसा नोब हूं, हां मैंने इसे बदल दिया है, लेकिन इस तरह से और यह धन्यवाद काम करता है: डी – Adam

6

आप for लेते हैं जैसा कि आप ने लिखा है और सिर्फ $i-- साथ $i++ की जगह, $i का मूल्य हर यात्रा (1, 0, -1, -2, आदि) और पाशन शर्त के साथ कम कर दिया जाएगा $i<=10 हमेशा सत्य है।

आप पीछे की ओर की गणना करना चाहते हैं, तो आप भी अन्य भागों (आरंभीकरण और पाशन हालत) को बदलने की जरूरत:

for ($i=10; $i>=1; $i--){ 
    echo $i; 
} 

या आप पिछले लेते हैं और इसे से वर्तमान मूल्य घटाना और पहली मूल्य जोड़ने यह करने के लिए:

for ($first=1, $i=$first, $last=10; $i<=$last; $i++){ 
    echo $last - $i + $first; 
} 
+0

बहुत बहुत धन्यवाद! – Adam

2

मैं समझ नहीं है, बस कर

for($i=10;$i>=1;$i--){ 
    echo $i; 
} 

n है पर्याप्त है?

+0

बहुत बहुत धन्यवाद! – Adam

1
PHP manual

के लिए

से

(; expr2; expr1 expr3) बयान

पहली अभिव्यक्ति (expr1) पाश की शुरुआत में मूल्यांकन किया है (निष्पादित) एक बार बिना शर्त है।

प्रत्येक पुनरावृत्ति की शुरुआत में, expr2 का मूल्यांकन किया जाता है। यदि यह सत्य का मूल्यांकन करता है, तो लूप जारी रहता है और नेस्टेड कथन निष्पादित होते हैं। यदि यह गलत मूल्यांकन करता है, तो लूप का निष्पादन समाप्त होता है।

प्रत्येक पुनरावृत्ति के अंत में, expr3 का मूल्यांकन (निष्पादित) किया जाता है।

+0

बहुत बहुत धन्यवाद! – Adam