Me encontré con algunos errores obsoletos con 8.1 que quiero abordar.
PHP Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in...
//explode uids into an array $comp_uids = explode(',', $result['comp_uids']); $result['comp_uids'] en este caso está vacío, por lo que se muestra el error nulo. No estoy seguro de por qué están desaprobando esta capacidad, pero ¿cuál es el cambio recomendado para evitar esto? Estoy viendo algo similar con strlen(): Passing null to parameter #1 ($string) of type string is deprecated y algunos otros usan 8.1.
Utilice el operador de fusión nulo para que el valor predeterminado sea una cadena vacía si el valor es null .
$comp_uids = explode(',', $result['comp_uids'] ?? '');No hay necesidad de explotar null , sabes de antemano que no devolverá coincidencias. Si realmente quieres [''] como resultado, es más intuitivo hacerlo explícito:
$comp_uids = $result['comp_uids'] !== null ? explode(',', $result['comp_uids']) : ['']; Todavía encuentro esto un poco contrario a la intuición para sus compañeros programadores. En mi humilde opinión, el concepto de que no se encontraron UID está mejor representado por una matriz vacía y, si también puede esperar cadenas vacías, es posible que se manejen junto con null :
$comp_uids = $result['comp_uids'] != '' ? explode(',', $result['comp_uids']) : [];Simplemente emita el parámetro como una cadena, convertirá nulo a ''.
$comp_uids = explode(',', (string)$result['comp_uids']);