Re: Final variables
| From: | Marco Pivetta | Date: | Thu, 29 Jun 2017 09:08:39 +0000 |
| Subject: | Re: Final variables | ||
| References: | 1 2 3 4 5 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-99673@lists.php.net to get a copy of this message | ||
Final is about having immutable data. Immutable doesn't mean that it's a
system wide constant, it means that it's referentially pure in its scope.
On 29 Jun 2017 11:05 AM, "lists@rhsoft.net" <lists@rhsoft.net> wrote:
>
>
> Am 29.06.2017 um 04:50 schrieb Kalle Sommer Nielsen:
>
>> 2017-06-28 20:46 GMT+02:00 David Rodrigues <david.proweb@gmail.com>:
>>
>>> The "final" keyworks make a "local scope" variable value
>>> "blocked to
>>> rewrite" after instantiate it.
>>> Okay, it sounds like a "const", and it is, but "not as we known
>>> it".
>>>
>>
>> I get that, but I still don't understand why you would forcefully need
>> it to be a variable still then if you know the value is gonna be
>> constant, of course besides global visibility or in iterations
>>
>
> because constants are expensive in PHP when "define()" is a function call
> and "const" is very limited for no good reason
>
> "no good reason" because if it really would be compile time the following
> won't work and so why can't you use 'const' within a if-statement when you
> in fact can CONCAT two with define() set constant which are part of a
> if-statement themself
> ____________________________________________________
>
> if(PHP_SAPI !== 'cli')
> {
> define('MY_PHP_SELF', $_SERVER['SCRIPT_NAME']);
> define('rh_serverurl', PROTOCOL_PREFIX . MY_SERVER_NAME . $rh_port);
> }
> else
> {
> define('MY_PHP_SELF', '/' . basename($_SERVER['SCRIPT_NAME']));
> define('rh_serverurl',
> 'http://localhost');
> }
> const rh_phpself = rh_serverurl . MY_PHP_SELF;
>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>