Re: Why does `setcookie` send header before throwing `Error` exception?
| From: | JEFFRY KILLEN | 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?