CuteNews PHP 8.2 Fatal Error hibakeresés


Ismét egy PHP verzió frissítési probléma:

8.2 php verzióra frissítés esetén felépő hiba üzenet:

Fatal error: Array and string offset access syntax with curly braces is no longer supported ..core\security.php on line 204

A security.php 204. sorának tartalma: ${$vars{$j}} = $hash[$j]; Tehát valószínűsíthető, hogy megint egy tömb kezelési probléma lépett fel. javítsuk: ${$vars[$j]} = $hash[$j];

és szokás szerint jön a következő:

Fatal error: Array and string offset access syntax with curly braces is no longer supported in ..core\security.php on line 237

A security.php 237. sorában ismét feltűnik a {$vars{$j}} javítsuk: ${$vars[$j]}

és a következő:

Fatal error: Uncaught ArgumentCountError: Too few arguments to function user_error_handler(), 4 passed in index.php on line 14 and exactly 5 expected in ..core\core.php:382 Stack trace: #0 index.php(14): user_error_handler(2, 'Undefined array...', '\\htdoc...', 14) #1 {main} thrown in ..core\core.php on line 382

A core.php 382.sora: function user_error_handler($errno, $errmsg, $filename, $linenum, $vars) itt is előkerül a $vars változó mint paraméter, alapértelmezett érték nélkül.

Ha végig nézzük a függvényt láthajuk, hogy a $vars paraméter ebben a verzióban nincs használatban. Két javítási lehetőségünk van:

1. Töröljük a $vars paramétert: function user_error_handler($errno, $errmsg, $filename, $linenum)

2. Alapértelmezett értéket adunk neki: function user_error_handler($errno, $errmsg, $filename, $linenum, $vars = NULL )

A második megoldás azért jobb, mivel ha mégis érkezik $vars paraméter akkor a NULL érték helyére bekerül és nem veszítünk a funkcionalitásból.

További szép napot és hibakeresést mindenkinek.