> On Apr 4, 2021, at 3:07 PM, Jair López <jair_lopez4321@xxxxxxxxxxx> wrote: > > Sorry for the typos in my previous message. I stand corrected, it is > > > setcookie('name', 'value', 1, new Foo()); > > instead of > > > setcookie('name', 'value', 1, => new Foo()); > > and here is the fixed test file: > --TEST-- > setcookie() sends header before throwing `Error` exception > --FILE-- > <?php > ob_start(); > > class Foo{ > } > > try { > setcookie('name', 'value', array( > 'expires' => 1, > 'path' => new Foo() > )); > } catch (\Error $e) { > echo $e->getMessage() . "\n"; > } > > var_dump(headers_list()); > echo "Done\n"; > ?> > --EXPECTHEADERS-- > > --EXPECTF-- > Object of class Foo could not be converted to string > array(1) { > [0]=> > string(23) "X-Powered-By: PHP/8.0.3" > } > Done Hello; This may not make the difference but the line: > 'path' => new Foo() ‘path’=>needs a string, so how is ‘new foo()’ returning a string? Could it be sending the header and then choking because ‘path’ doesn’t have a valid value assignment?