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 :] )