Unsupported operand types na een PHP-update
Unsupported operand types betekent dat een bewerking wordt uitgevoerd met soorten waarden die daarvoor niet geschikt zijn.
Welke PHP-versie meldt jouw site?
Passieve check van headers, versie en de kop van de homepage. Geen login, geen scan.
Meer uitleg
Een operand is simpelweg een waarde waarop de bewerking wordt toegepast.
Verschijnt dit na een PHP-update bij een prijs, korting of hoeveelheid, laat dan de invoer van de berekening onderzoeken.
Alleen de melding onderdrukken zegt niets over de juistheid van het resultaat.
Voor je begint
Bewaar de volledige foutregel met tijdstip in een privénotitie. Noteer welke handeling misging, welke PHP-versieEen PHP-versie is het nummer van de uitgave van PHP waarop jouw website draait, zoals 8.3. nu draait en welke onderdelen tegelijk zijn bijgewerkt. Deel alleen gegevens die nodig zijn voor onderzoek.
Een openbaar forum is geen geschikte plek voor klantgegevens, toegangscodes of volledige serverpaden.
Maak een back-upEen back-up is een kopie van je hele website, apart bewaard, zodat je hem kunt terugzetten als er iets misgaat. van bestanden en database voordat je wijzigingen laat uitvoeren. Controleer of die back-up bruikbaar is. Gebruik een afgeschermde testkopie met dezelfde PHP-versie en relevante instellingen.
Schakel daar echte betalingen en uitgaande klantmails uit. Spreek af wie de wijziging uitvoert en wie het resultaat controleert. Deze stappen zijn een onderzoeksadvies, geen diagnose van jouw website.
Van een melding naar een berekening
PHPPHP is de programmeertaal waarmee veel websites, zoals WordPress-sites, hun pagina's maken op het moment dat een bezoeker erom vraagt. beschrijft dat niet-numerieke tekst in een numerieke context vanaf PHP 8.0 een TypeError kan veroorzaken. Dat is één mogelijke aanleiding voor dit soort meldingen. De complete foutregel en de betreffende code moeten uitwijzen welke bewerking en welke waarden in jouw geval betrokken zijn.
Niet elke fout met operands is dezelfde tekstconversie.
Vraag de ontwikkelaar om beide kanten van de bewerking in gewone taal te beschrijven. Gaat het om een bedrag en een percentage, twee aantallen of iets anders? Laat ook vastleggen waar die waarden vandaan komen.
De zichtbare prijs op een pagina is niet automatisch dezelfde waarde als de invoer waarmee code rekent.
Oplossen in vijf stappen
- Bewaar de foutregel met de genoemde types en het regelnummer. Noteer welke keuze de berekening activeert, zoals een kortingscode, verzendmethode of productvariant. Vermeld of het probleem bij alle keuzes optreedt of alleen bij een kleine combinatie die je kunt herhalen.
- Laat de oorspronkelijke waarden vóór de bewerking controleren. Vraag naar de gegevensbron, de betekenis en de verwachte vorm. Houd echte klantgegevens uit testnotities. Een voorbeeld met hetzelfde type en dezelfde structuur is doorgaans bruikbaarder dan een screenshot van alleen het eindscherm.
- Spreek af hoe ongeldige invoer moet worden behandeld. Mag een ontbrekende korting nul zijn, of moet de aankoop stoppen omdat een prijs ontbreekt? Dat zijn verschillende keuzes. Laat geen standaardnul toevoegen zonder dat de gevolgen voor de berekening zijn beoordeeld.
- Test de gerichte correctie met normale getallen, een lege invoer en onverwachte tekst. Neem ook de decimale notatie mee die jouw invoerbron gebruikt. Vraag om een vooraf berekend verwacht resultaat. Daarmee beoordeel je de inhoud van de uitkomst, niet uitsluitend het verdwijnen van de fout.
- Controleer de volledige route waarin de berekening wordt gebruikt. Vergelijk tussenresultaat, eindbedrag en opgeslagen gegevens. Gebruik bij een webshop een testbestelling zonder echte betaling. Controleer vervolgens verse logs en bewaar het testvoorbeeld bij de uitgevoerde wijziging.
Bedrag en presentatie uit elkaar houden
Stel voor de test een bedrag vast dat met een valutateken op het scherm verschijnt. Vraag welke waarde intern de berekening ingaat en op welk moment de zichtbare opmaak wordt toegevoegd. Een ontwikkelaar hoort te kunnen uitleggen waar getallen worden gecontroleerd en waar tekst voor bezoekers ontstaat.
Dit is een onderzoeksvoorbeeld; het zegt niet hoe jouw winkel is gebouwd.
Laat bij importbestanden ook naar de kolomafspraken kijken. Een veld met een bedrag kan anders bedoeld zijn dan een veld met een beschrijving van dat bedrag. Leg vast welke vorm je accepteert en hoe een ongeldige rij wordt gemeld.
Vraag of de overige rijen doorgaan of dat de hele import stopt, en controleer dat gekozen gedrag op de testkopie.
Als een fout alleen bij een specifieke korting optreedt, bewaar dan juist die combinatie voor onderhoud. Een test met een standaardproduct zonder korting bewijst weinig over dat probleem. Voeg een controle toe waarbij de korting bewust ontbreekt.
Zo ontstaat een kleine, herhaalbare controle die ook bij een volgende pluginEen WordPress-plugin is een uitbreiding die je aan je WordPress-site toevoegt voor een extra functie, zoals een formulier of een webshop.- of PHP-update bruikbaar blijft.
Hulp en controle na herstel
Gebruik het hulpformulier hieronder als je geen toegang hebt tot de logs of niet weet wie de betreffende code onderhoudt. Beschrijf één mislukte handeling en het verwachte resultaat. Vraag om een voorstel dat de oorzaak, de wijziging en de controle afzonderlijk benoemt.
Stuur geen wachtwoorden mee met je aanvraag.
Herhaal na herstel de oorspronkelijke handeling op de testkopie. Controleer ook een normale bezoekersroute, een leeg resultaat en een foutieve invoer waar dat relevant is. Bekijk verse logregels bij het nieuwe testtijdstip.
Bewaar versies en uitkomsten bij je onderhoudsnotities. Laat de verantwoordelijke beheerder bepalen wanneer de geteste wijziging naar de echte website kan.