Προς το περιεχόμενο

PHP - Error: Unsupported operand types


Προτεινόμενες αναρτήσεις

Δημοσ.

Έχουμε αυτόν τον κώδικα σε php:

			$visitor = \XF::visitor();
			if ($visitor->user_id && !isset($users[$visitor->user_id]))
			{
				$users = [$visitor->user_id => $visitor] + $users;
			}

Μπορεί κάποιος να φανταστεί γιατί η γραμμή:

$users = [$visitor->user_id => $visitor] + $users;

Μερικές φορές, επιστρέφει: Error: Unsupported operand types;

Αν ναι, τι έλεγχο / if να βάλω για να πάψει το error; πχ κάποια isset, is_array ή !empty;

Δημοσ.

Νομίζω πως όταν επιστρέφει αυτό το σφάλμα, το $users δεν είναι array ( ίσως είναι undefined ή κάποιος άλλος τύπος).

Λογικά το πρόβλημα θα λυθεί αν αντικαταστήσεις το "$users = [$visitor->user_id => $visitor] + $users;" με αυτό:

if ( is_array ( $users ) ) {

	$users = [$visitor->user_id => $visitor] + $users;

} else {

	$users = [$visitor->user_id => $visitor];

}

 

  • Thanks 1
Δημοσ.
47 λεπτά πριν, vadou είπε

Γιατί δεν το κάνεις μια και καλή:


$users[$visitor->user_id] = $visitor;

Ακριβώς! Και αν αρχικοποιήσεις το $users σε array, δεν θα χρειαστείς ούτε το if is_array

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...