Fatal error: Can't use function return value in write context

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sander Heuv

Sander Heuv

18/09/2012 21:18:50
Quote Anchor link
Hallo allemaal,

ik ben op het moment bezig met een user class, maar kom tegen het volgende probleem aan. In een functie roep ik met het volgende regeltje een functie aan die checkt of een gebruikersnaam en of emailadres al in de database zit.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$check_username_email
= self::check_username_emailadres($_POST['gebruikersnaam'], $_POST['emailadres']);
?>


Dit is de class die wordt aangeroepen

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
public static function check_username_emailadres(){
    global $database;
    $query = "SELECT * from `users` WHERE `gebruikersnaam` = '".$_POST['gebruikersnaam']."'
                        OR
                          `emailadres` = '"
.$_POST['emailadres']."'";                                                  
    $result = $database->fire_query($query);
            
    if(mysqli_num_rows($result) == 0){
        return TRUE;
    }

    else{
        return FALSE;
    }
            
}


?>


Het is dus uiteindelijk de bedoeling dat $check_username_email de waarde true of false krijgt.

Op dit moment krijg ik de melding 'Fatal error: Can't use function return value in write context'. ik heb verschillende mogelijkheden geprobeerd met de if statement, maar de waarde wordt niet gereturned naar $check_username_email.

weet iemand hier de oplossing? waarschijnlijk heb ik iets logisch over het hoofd gezien.

alvast bedankt!!
 
PHP hulp

PHP hulp

25/11/2024 02:32:07
 
Mathias B

Mathias B

18/09/2012 21:54:54
Quote Anchor link
Die error betekent dat je functie nietS teruggooit. Volgens mij wordt je if-statement niet uitgevoerd, dit kun je checken door standaard false te returnen. En handel eens de fouten af van je query, want ik denk dat het daaraan ligt.
 
Sander Heuv

Sander Heuv

18/09/2012 22:08:15
Quote Anchor link
De foutafhandeling van de query wordt gedaan in de $database->fire_query($query) functie. Ik heb de $result geprint, en dit resultaat kreeg ik eruit:

mysqli_result Object ( [current_field] => 0 [field_count] => 6 [lengths] => [num_rows] => 23 [type] => 0 )

Ik neem aan dat het dan niet aan de query ligt omdat er een juist resultaat wordt teruggegeven.

Als ik de in de functie False return krijgt $check_username_email de waarde 1, en als ik hem op false zet, wordt er geen waarde meegegeven.

Dus ik neem aan dat het aan de if statement ligt.


Toevoeging op 18/09/2012 22:11:05:

Ik heb het probleem al opgelost door simpelweg

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if($result == 0){
        return TRUE;
    }

    else{
        return FALSE;
    }

?>


te doen.

norgmaals thx voor het meedenken :D
Gewijzigd op 18/09/2012 22:32:51 door Sander Heuv
 
Mathias B

Mathias B

18/09/2012 22:13:35
Quote Anchor link
Nu voer je toch geen vergelijking meer uit, maar een toekenning en dat returned altijd true?
 
Sander Heuv

Sander Heuv

18/09/2012 22:34:03
Quote Anchor link
inderdaad ja, meteen ff aangepast. vermoeidheid slaat bij mij toe :P
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.