Fatal error: Can't use function return value in write context
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)
1
2
3
2
3
<?php
$check_username_email = self::check_username_emailadres($_POST['gebruikersnaam'], $_POST['emailadres']);
?>
$check_username_email = self::check_username_emailadres($_POST['gebruikersnaam'], $_POST['emailadres']);
?>
Dit is de class die wordt aangeroepen
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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;
}
}
?>
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!!
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.
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
te doen.
norgmaals thx voor het meedenken :D
Gewijzigd op 18/09/2012 22:32:51 door Sander Heuv
Nu voer je toch geen vergelijking meer uit, maar een toekenning en dat returned altijd true?
inderdaad ja, meteen ff aangepast. vermoeidheid slaat bij mij toe :P