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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> 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?



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux