philos Δημοσ. 19 Φεβρουαρίου 2020 Δημοσ. 19 Φεβρουαρίου 2020 Έχουμε αυτόν τον κώδικα σε 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;
elvizakos Δημοσ. 19 Φεβρουαρίου 2020 Δημοσ. 19 Φεβρουαρίου 2020 Νομίζω πως όταν επιστρέφει αυτό το σφάλμα, το $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]; } 1
vadou Δημοσ. 19 Φεβρουαρίου 2020 Δημοσ. 19 Φεβρουαρίου 2020 Γιατί δεν το κάνεις μια και καλή: $users[$visitor->user_id] = $visitor; 1
elvizakos Δημοσ. 19 Φεβρουαρίου 2020 Δημοσ. 19 Φεβρουαρίου 2020 47 λεπτά πριν, vadou είπε Γιατί δεν το κάνεις μια και καλή: $users[$visitor->user_id] = $visitor; Ακριβώς! Και αν αρχικοποιήσεις το $users σε array, δεν θα χρειαστείς ούτε το if is_array
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα