Re: Why does `setcookie` send header before throwing `Error` exception?

From: Date: Sun, 04 Apr 2021 23:39:37 +0000
Subject: Re: Why does `setcookie` send header before throwing `Error` exception?
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-327536@lists.php.net to get a copy of this message
> On Apr 4, 2021, at 3:07 PM, Jair López <jair_lopez4321@hotmail.com> 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?

« previous php.general (#327536) next »