Hozzászólások
[quote:50565bffbb="cln"]Én úgy értelmezem hogy a kiíró nem RETURN -al tér vissza hanem EXIT -el. Ez lehet a baj ?
ELaci
Sajna nem. :( A Kiiro fuggvenynek nincs visszatérési értéke és nem is küld jelzést a PHP felé, hanem úgy lehet meghívni, mint egy egyszavas parancsot, és a PHP nyelv ezt úgy kell hogy értelmezze, hogy miután a "parancs" tehát a függvény tartalmán végigment, folytatódik a futás. Sehol nem kap a PHP olyan jelzést, ami megszakítást válthatna ki. Például, ha van egy függvényem, ami ezt tartalmazza:
[code:1:50565bffbb]function Kiir() {
print "Ez egy szöveg";
}
[/code:1:50565bffbb]
Akkor ez a függvényhívás:
Kiir();
ekvivalens azzal, mint ha azt mondanám, hogy
print "Ez egy szöveg";
Ilyen egyszerű... A baj az, hogy amikor a programomon belül egy hasonló, bár nem ennyire triviális tartalmú függvényt meghívok, akkor miután a függvény hiba nélkül lefut, a program egyszerűen nem megy tovább... és nincs látható jele, hogy miért. Próbáltam úgy is, hogy a kérdéses függvényt kikommenteltem, és csináltam ugyanazon a néven egy 'dummy' fügvényt, ami ennyit tartalmazott:
print "a";
ezzel is ugyanaz lett az eredmény, kiírta, hogy "a" és nem futott tovább, tehát a kód sem túl komplex, itt valami más baj van. Az Apache processz sem fagy le, vagy lép ki abnormálisan a program futtatásakor. :(
ugyanakkor, ha Kiiro fügvényben lévő dolgokat beleépítem abba a függvénybe, amelyből meghívom Kiiro függvényt, akkor megy... :(
Ötlet?
- A hozzászóláshoz be kell jelentkezni
Tipp:
Én úgy tudom hogy a függvényeket előbb kell definiálni mint ahogy a programban hivatkoznánk rá, tehát a kiiro -t az első hívása elé kell betenni.
ELaci
- A hozzászóláshoz be kell jelentkezni
Sziasztok! :)
PHP programnyelvvel kapcsolatban írok.
Egy olyan hibával akadtam össze, amivel nem tudok mit kezdeni. A lényeg az, hogy van egy progam, ami sematikusan kb. így néz ki:
[code:1:b0704a3f8d]
function Fuggveny($valtozok) {
print "valamiszöveg A...<br>";
/** ELJÁRÁSOK, PROGRAMKÓD **/
Kiiro_Fuggveny($valtozok);
print "valamiszöveg B...<br>";
/** ELJÁRÁSOK, PROGRAMKÓD **/
}
function Kiiro_Fuggveny($valtozok){
/** ELJÁRÁSOK, PROGRAMKÓD **/
print "valamiszöveg C...<br>";
}
Fuggveny($valtozok);
[/code:1:b0704a3f8d]
Ha ezt lefuttatod, akkor a kimenet így kellene, hogy kinézzen:
[code:1:b0704a3f8d]
valamiszöveg A...
valamiszöveg C...
valamiszöveg B...
[/code:1:b0704a3f8d]
Ehelyett az történik, hogy a program futása minden hibaüzenet nélkül megszakad a Kiiro_Fuggveny végrehajtása után, és a futás nem folytatódik. Tehát a fenti példaprogram alapján az output:
[code:1:b0704a3f8d]
valamiszöveg A...
valamiszöveg C...
[/code:1:b0704a3f8d]
Ugyanakkor, ha fogom a Kiiro_Fuggveny-t, megszüntetem, és a tartalmát (eljárásokat, kiírásokat, mindent) át 'copizom' a Fuggveny megfelelő helyére, akkor az output megfelelő lesz.
Az a kérdésem, hogy miért szakad meg a program futása a Kiiro_Fuggveny után, és miért nem kapok semmilyen hibaüzenetet még (E_ALL) esetén sem?
Köszi minden tanácsot és véleményt! :)
- A hozzászóláshoz be kell jelentkezni
Én úgy értelmezem hogy a kiíró nem RETURN -al tér vissza hanem EXIT -el. Ez lehet a baj ?
ELaci
- A hozzászóláshoz be kell jelentkezni