[PHP] Return Value Vergelijkingen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een probleempje met een paar eigen functies. Ik heb mijn functies zo gemaakt dat ze true teruggeven als ze successvol zijn en false als dat niet zo is. Het probleem is dat functies die een getal teruggeven voor problemen zorgen.

Als de functie namelijk 0 teruggeeft en ik ga checken of de functie gelukt is, dan wordt 0 dus als een false gezien...

Ik gebruik nu de === operator om dit te voorkomen, maar dit blijkt ook niet te werken vooralsnog. De volgende code werkt niet zoals het zou moeten:

if(($result = geefeenterug()) === FALSE){ echo "dit is zichtbaar terwijl de functie 1 teruggeeft en dus NIET false is" }

ik weet niet precies wat ik hier verkeerd doe, maar het is vast iets simpels in dit geval. Ik hoop dat iemand me verder kan helpen.

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Ik denk dat je ergens anders een fout maakt, want dit werkt precies zoals verwacht:
PHP:
1
2
3
4
5
6
function geefeenterug() { return 1; }

if (($result = geefeenterug()) === FALSE)
{
    echo "dit is niet zichtbaar omdat de functie 1 teruggeeft en dus NIET false is";
}

[ Voor 3% gewijzigd door crisp op 23-10-2005 18:36 ]

Intentionally left blank


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Je hebt gelijk, het blijkt met een update query te maken te hebben in de functie. Blijkbaar geeft mysql_query false terug als de update betrekking heeft op 0 rijen?

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

mysql_query geeft enkel false terug bij een error, mysql_affected_rows geeft het aantal rows terug waarop de laatste insert, update of delete betrekking had (kan dus ook 0 zijn) of -1 als de laatste insert/update/delete mislukt is.

Intentionally left blank


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Vreemd, als ik de query in phpmyadmin uitvoer werkt hij (wel 0 affected rows) maar in de code blijkbaar een error. Ik zal waarschijnlijk iets over het hoofd zien, maar ik weet nu iig zeker hoe het in mekaar zit, bedankt voor de hulp.