Re: PHP 8.4

From: Date: Wed, 18 Dec 2024 18:53:13 +0000
Subject: Re: PHP 8.4
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-328585@lists.php.net to get a copy of this message
Hello, Didn't know or forgot this. After verification and if I'm correct, recursion during comparison appears when PHP compares 2 objects. Infinite recursion can appear when one of the objects compared references himself. Example : class RecursiveObject { public $self; public function __construct() { $this->self = $this; } } $obj1 = new RecursiveObject(); $obj2 = new RecursiveObject(); try { $result = $obj1 == $obj2; } catch (Error $e) { echo "Une erreur a été capturée : " . $e->getMessage(); } Which results in PHP 8.3: > PHP Fatal error: Nesting level too deep - recursive dependency? in > /var/www/html/api-spotify/public/test.php on line 14 > PHP Stack trace: > PHP 1. {main}() /var/www/html/api-spotify/public/test.php:0 > And in PHP 8.4 : > Une erreur a été capturée : Nesting level too deep - recursive dependency? Regards, Vivien Goncalves PHP Developer "Open To Work" Le lun. 9 déc. 2024 à 03:20, JEFFRY KILLEN <jekillen@prodigy.net> a écrit : > Hello; > > I do not see much activity on this list these days. Has it gone elsewhere > mostly? > > Anyhow I am looking at the online manual, specifically the deprecations. > > I see a heading: > > Recursion during comparison ¶ > > <https://www.php.net/manual/en/migration84.incompatible.php#migration84.incompatible.core.recursion-comparison> > > Encountering recursion during comparison now results in an Error > <https://www.php.net/manual/en/class.error.php> exception > instead of a *E_ERROR > > <https://www.php.net/manual/en/errorfunc.constants.php#constant.e-error>* > fatal > error. > > > I need some more information on the idea of Recursion during comparison: > > I have written a recursive function that walks the file system and can be > programed to respond to files and directories. > > I its simplest form it just produces a file system mapping. But it can be > used to delete, rename, and other operations. > > Does recursion during comparison apply to this? (examples possibly?) > > In truth I have a working function that does not normally produce E_ERROR.. > So I presume my question is partially answered. > > > Thank you for time and attention > > JK >

« previous php.general (#328585) next »