Visualizzazione risultati 1 fino 2 di 2

Discussione: Errore count() PHP 8

  1. #1
    spacewars non è connesso Neofita
    Data registrazione
    16-03-2021
    Messaggi
    13

    Predefinito Errore count() PHP 8

    Salve a tutti,
    sto riscontrando un problema con un mio gioco online utilizzando PHP 8 dove riesco a far apparire la lista di errori completa.

    Ovvero:



    Fatal error: Uncaught TypeError: count(): Argument #1 ($var) must be of type Countable|array, null given in /membri/spacewars/ogame/game/battle.php:14 Stack trace: #0 /membri/spacewars/ogame/game/battle.php(720): RepairDefense(Array, false, '70', '10') #1 /membri/spacewars/ogame/game/fleet.php(526): StartBattle('10019', '10009', '1646683422') #2 /membri/spacewars/ogame/game/fleet.php(970): AttackArrive(Array, Array, Array, Array, Array) #3 /membri/spacewars/ogame/game/queue.php(140): Queue_Fleet_End(Array) #4 /membri/spacewars/ogame/game/pages/flotten1.php(15): UpdateQueue(1646683449) #5 /membri/spacewars/ogame/game/index.php(168): include('/membri/spacewa...') #6 {main} thrown in /membri/spacewars/ogame/game/battle.php on line 14



    Sono andato sulla stringa interessata sull'ultima riga che è la seguente:

    $rounds = count ( $res['rounds'] );


    ho sostituito con:

    $rounds = count ( array($res['rounds']) );

    ma non risolvo la questione, nel senso che modificando il codice così invece dell'errore mi rimane la pagina tutta bianca.

    Chi mi sa aiutare a risolvere?

  2. #2
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    4,251

    Predefinito

    Salve,
    con PHP 8.0 count() ora si comporta un po' diversamente dalle versioni precedenti.

    Fatal error: Uncaught TypeError: count(): Argument #1 ($var) must be of type Countable|array, null given in /membri/spacewars/ogame/game/battle.php:14
    Prima di PHP 8.0, se il parametro non era né un array né un oggetto che implementa l'interfaccia Countable, veniva restituito 1, a meno che il valore non fosse null, in tal caso veniva restituito 0. Ora con PHP 8.0, invece vinene genereto un TypeError quando si usa degli array non validi.

    In sisntesi, il messaggio di errore indica che il valore restituito a count(), non è ne un array né un oggetto. Quindi deve riguardarsi con attenzione il codce in battle.php e correggere l'errore.

    Cordiali saluti.
    Ultima modifica di GraphOGLRisorse : 07-03-2022 alle ore 23.25.07

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •