Ciklusban elmaradó függvényhívások
Sziasztok!
Van egy kódom, ami elvileg egy táblázatot ír ki úgy, hogy az osztály példányok az oszlopok, a sorokat pedig az oszlopKiir() írja ki. Egyébként egy egyenes kieséses rendszert jelenít meg, változó résztvevővel, rosszul.Az oszlopKiir() függvénybe tettem egy kiírást a legelejére, ami megmutatja, hogy valamiért nem minden sorban hívódik meg a függvény. Valamiért minden 2. sorban elhagy valamennyi függvényhívást.
Egész pontosan ezt a kimenetet adja:
o: 0 | s: 1
o: 1 | s: 1
o: 2 | s: 1
o: 3 | s: 1
o: 0 | s: 2
o: 2 | s: 2
o: 3 | s: 2
o: 0 | s: 3
o: 1 | s: 3
o: 2 | s: 3
o: 3 | s: 3
o: 0 | s: 4
o: 3 | s: 4
o: 0 | s: 5
o: 1 | s: 5
o: 2 | s: 5
o: 3 | s: 5
o: 0 | s: 6
o: 0 | s: 7
o: 1 | s: 7
o: 2 | s: 7
o: 3 | s: 7
o: 0 | s: 8
(o oszlop, s sor, jelenlegi adatokkal ($i=3) mindegyikből 4-et kellene, hogy adjon).
Az $i változót is kiírattam, nem változik a futás során.
Ha valakinek van ötlete, hogy miért lehet, azt nagyon megköszönném.
Misi
■ Van egy kódom, ami elvileg egy táblázatot ír ki úgy, hogy az osztály példányok az oszlopok, a sorokat pedig az oszlopKiir() írja ki. Egyébként egy egyenes kieséses rendszert jelenít meg, változó résztvevővel, rosszul.
- echo"<table><tr>";
- for($k=0;$k<=$i;$k++)
- {
- echo "<th>$k. oszlop</th>\n";
- ${"o".$k}=new Oszlop($i,$k);
- if($k!=$i) echo"<th>pontok</th><th>eredmény</th>";
- }
- echo"</tr>";
- $hatar=pow(2,$i);
- for($sor=1;$sor<=$hatar;$sor++)
- {
- echo"<tr>\n";
- //végigmegy az összes soron
- for($oszlop=0;$oszlop<=$i;$oszlop++)
- {
- ${"o".$oszlop}->oszlopKiir($string);
- }
- echo"\n</tr>\n";
- }
- echo "</table>";
Egész pontosan ezt a kimenetet adja:
o: 0 | s: 1
o: 1 | s: 1
o: 2 | s: 1
o: 3 | s: 1
o: 0 | s: 2
o: 2 | s: 2
o: 3 | s: 2
o: 0 | s: 3
o: 1 | s: 3
o: 2 | s: 3
o: 3 | s: 3
o: 0 | s: 4
o: 3 | s: 4
o: 0 | s: 5
o: 1 | s: 5
o: 2 | s: 5
o: 3 | s: 5
o: 0 | s: 6
o: 0 | s: 7
o: 1 | s: 7
o: 2 | s: 7
o: 3 | s: 7
o: 0 | s: 8
(o oszlop, s sor, jelenlegi adatokkal ($i=3) mindegyikből 4-et kellene, hogy adjon).
Az $i változót is kiírattam, nem változik a futás során.
Ha valakinek van ötlete, hogy miért lehet, azt nagyon megköszönném.
Misi




Végrehajtás során hiba?
Lehet, hogy félreértettem valamit, de
Annyi, hogy kiegészítettem egy Oszlop osztállyal a te kódodat. (illetve a belső for ciklusba tettem <td>-t meg </td>-t, hogy a táblázatba tegye bele a kiírásokat)
echo nélkül működik
Nem tudom miért, de a kiírással volt a baja. Ha az benne volt akkor egyszerűen mintha meg sem hívta volna a függvényeket. Nem tudom, hogy lehet-e valami köze a pufferelésnek hozzá, próbáltam flush();-t írni a ciklus belsejébe, utána tettem bele egy sleep(1)-et is, de attól sem lett jobb.
Végül az összes echo-t lecseréltem $buff.=-re és a két ciklus után kiírtam a tartalmát, így jó lett. Valakinek van valami ötlete, hogy mitől lehetett?
Ha esetleg van annyira érdekes, az egész kódot is feltehetem valahova :)
(Azt meg megírtam mailben, hogy miért nem ott vagyok :] )