Kezdőoldal » Számítástechnika » Programozás » Egyszerű helyzet, de miért ad...

Ragua kérdése:

Egyszerű helyzet, de miért ad hibát?

Figyelt kérdés

Sziasztok!

Lett egy pici gondom, eddig egész jól haladtam, viszont gondoltam a későbbi munkám könnyítése miatt megírtam az első functionom. A function működik, a hiba maradt...


Ez a kód:

<?php

function nincs_adat($x){

if(empty($x)){

$x="Nincs adat";

return $x;

break;

}

else{

return $x;

}

}


$file = fopen("animelista.txt","r") or exit("Nem lehet megnitni a fájlt!");

echo('<a href="animeleltar.php">Vissza.</a><br />');

while(!feof($file)) {

$sor = fgets($file);

$tomb = explode(", ", $sor);

$sortomb= array();


for($i=0;$i<count($tomb);$i++){

$sortomb[$i] = $tomb[$i];

}


$mentesiido = nincs_adat($sortomb[4]);

print $sortomb[0].", ".$sortomb[1].", ".$sortomb[2].", ".$sortomb[3].", ".$mentesiido;

echo("<br />");

}



echo('<a href="animeleltar.php">Vissza.</a>');

fclose($file);



?>

A proglémám az, hogy functionba elküldöm a nemlétező változót, és kiadja a hibaüzenetet, ugyanakkor beírja a változóba azt amit szeretnék hogy bent legyen. Ezt hogy tudnám megoldani?

(kezdő programozó vagyok, nagyon kezdő)

Internetre ez nem kerülne fel, ez csak nekem készül itthonra.



2017. máj. 9. 09:39
1 2 3
 1/21 anonim ***** válasza:
Amit szeretnél elmondhatatlanul értelmetlen.
2017. máj. 9. 09:41
Hasznos számodra ez a válasz?
 2/21 A kérdező kommentje:

Egy txt fájlból kinyerem az adatokat, soronként egy tömbben, és ezeket akarom kiíratni, hibakód nélkül.

Viszont vannak adatok, amiknél a tömböm azon indexe még nem került legenerálásra ($sortomb[4]). Az adatokat változókhoz rendelem, viszont a $mentesiido = nincs_adat($sortomb[4]) valamiért hibát is dob, ugyanakkor elvégzi nekem azt, amint előtte functionban el akarok végeztetni vele (Vagyis ha a változó üres, akkor a változóba a "Nincs adat" szöveg kerüljön).


A hibát erre a sorra dobja ki:

$mentesiido = nincs_adat($sortomb[4]);

A készített függvény hozzá az elején van, de ide teszem azt is:

function nincs_adat($x){

if(empty($x)){

$x="Nincs adat";

return $x;

break;

}

else{

return $x;

}

}

2017. máj. 9. 09:52
 3/21 anonim ***** válasza:

Jesszum, miért kell ezt így agyon bonyolítani? Eleve, minek a break, ha már előtte van egy return?


Ezt így kellene:

function nincs_adat($x){

return empty($x) ? "Nincs adat" : $x;

}

2017. máj. 9. 10:01
Hasznos számodra ez a válasz?
 4/21 A kérdező kommentje:

Sajnálom, amatőr szinten programozok, mondhatni a magam szórakoztatása miatt. :)

Pill gyorsan kipróbálom.

2017. máj. 9. 10:03
 5/21 A kérdező kommentje:

A hiba megmaradt, meg a szöveget is ugyanúgy odatette:

Notice: Undefined offset: 4 in C:\xampp\htdocs\proba\animelistazas.php on line 18

próba, 12, 24 perc, TV; , Nincs adat


a 18. sorban ez van:

$mentesiido = nincs_adat($sortomb[4]);

2017. máj. 9. 10:06
 6/21 anonim ***** válasza:

$sor = fgets($file);

$tomb = explode(", ", $sor);

$sortomb= array();


for($i=0;$i<count($tomb);$i++){

$sortomb[$i] = $tomb[$i];

}


Tehát először beolvasol egy sort, explode-olod, majd a kapott tömböt átmásolod egy új tömbbe? Könyörgöm, miért?! Nem lenne egyszerűbb eleve az explodeolt tömböt használni?


$mentesiido = nincs_adat($sortomb[4]);

Itt meg, ha a $sortomb[4] nincs definiálva, még szép, hogy hibát ad. Talán isset($sortomb[4])-tel meg kellene vizsgálni, hogy egyáltalán létezik-e.

2017. máj. 9. 10:06
Hasznos számodra ez a válasz?
 7/21 A kérdező kommentje:

Ezt a vizsgálatot akartam áttenni functionba, viszont ha issetet, ha emptyt használtam, mindig kiadta a hibákat.

külön minden változóra le tudom vezetni az issetet is, meg az emptyt is, viszont akkor a functionnak nem lenne értelme az elején. Vagy legalábbis szerintem nem sok.

2017. máj. 9. 10:13
 8/21 anonim ***** válasza:
Nincs is értelme.
2017. máj. 9. 10:21
Hasznos számodra ez a válasz?
 9/21 A kérdező kommentje:

jelenleg a functionnak számomra az az értelme, hogy ne kelljen minden változóhoz feltételt kötnöm, hogy írja ki a szöveget, ha nincs adat abban a változóban.

ezen kívül ezt a funkciót más helyen is használnám ilyenre, ez mellett meg (szerintem) számomra egy ideális gyakorlási lehetőség lenne.


Viszont a kérdésem akkor így már az, hogy ezt a fajta változó ellenőrzést egy functionon belül el lehet végezni valahogy, vagy nem?

2017. máj. 9. 10:26
 10/21 CspCsj ***** válasza:

Nem értek hozzá, esetleg így?


function nincs_adat(&$x){

...

}

2017. máj. 9. 10:41
Hasznos számodra ez a válasz?
1 2 3

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!