On Tue, 17 Jan 2023, Christian Schneider wrote:

> Am 17.01.2023 um 15:59 schrieb G. P. B. <george.bany...@gmail.com>:
> > 
> > I might be again misunderstanding, but one cannot extend an enum as 
> > they are final classes under the hood. Currently, the only other 
> > native enum is the one that was added with the Randomizer Additions 
> > RFC [1] so this topic hasn't come up yet as the enum for ext-random 
> > is definetely complete.
> 
> I'm talking about adding new values in later PHP versions, let's for 
> example assume they would add a SameSite mode "Stricter" and PHP wants 
> to support that. How would one write code to use "Stricter" in code 
> meant to work for both old and new PHP versions?

if (version_compare(phpversion(), "8.4.0", ">")) {
        setcookie("test", "value", samesite: SameSite::Stricter);
} else {
        setcookie("test", "value", samesite: SameSite::Strict);
}

These are run time checks, not compile time:

      8      > JMPZ                                                     $1, ->18
    ...
     13        FETCH_CLASS_CONSTANT                             ~2      
'SameSite', 'Stricter'
    ...
     17      > JMP                                                      ->26
     18    >   EXT_STMT
    ...
     22        FETCH_CLASS_CONSTANT                             ~4      
'SameSite', 'Strict'


cheers,
Derick

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to