Ez PHP funkció miért NULL-t ad vissza?
Sziasztok!
Egy oldalt szerettem volna csinálni, ami MySQL-ből beolvassa egy klán tagjainak nevét, múltheti szintjét, és a jelenlegi szintjét. Ezután kiszámolja, hogy mennyit lépett, és ha ez több, mint a követelmény, akkor kiírja a Jutalmazottakhoz
Viszont, egy funkció, ami visszaadná a szintjéhez képest a szükséges követelményt, NULL-t ad vissza a szint helyett. Maga a funkció tartalma működik külön, mikor kiíratom az értékeke, de vissza mégsem ad semmit.
A kód a következő: [link]
A szintek tábla jelenleg ebből áll:
Also Felso Kovet
30 40 8
40 50 7
50 60 6
60 70 5
70 80 4
80 90 3
90 93 3
A karakterek táblát kiírja ez az oldal: [link]
A return után az (int)-et csak azért raktam oda, hogy a semmi helyett legalább egy 0-t kiírjon
Kritizálni meg nem kell a kódot, mivel első komolyabb próbálkozásom, előtte csak C#-ot tanultam :)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Ez van a kódodban:
function getreq($szint)
{
for($i=0; $i<count($also); ++$i)
{
if($szint>=$also[$i] && $szint<=$felso[$i])
{
$szintkovet=$kovet[$i];
}
}
return (int)$szintkovet;
}
Vagyis a for belseje sose fog lefutni mert a függvényen belül nem inicializáltad az $also tömböt, vagy nem adod át a függvénynek mint paramétert. Emiatt skippelődik a teljes belseje, vagyis nem kap értéket a $szintkovet se
Értem, akkor az egészet a funkcióba kellene raknom?
Csak mert kívülre raktam, mert nem akartam, hogy minden egyes híváskor újra lekérdezze őket
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
nem kell, csak akkor add át a függvénynek, tehát
function getreq($szint,$also)
-legyen ahol létrehozod és így hivatkozz rá:
getreq(80,$also)
illetve
$req=getreq($karilvl,$also);
Ilyenkor a függvényhívásba ugye átadja az $also értékét is, amit a függvény így már fel tud magában használni.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
ja ugyanez vonatkozik a $felso -re is :)
szóval function getreq($szint,$also,$felso) {
és a meghívás is eszerint módosul
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!