rfc:nullsafe_calls
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
rfc:nullsafe_calls [2014/10/22 23:42] – jwatzman | rfc:nullsafe_calls [2014/12/09 23:08] – jwatzman | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== PHP RFC: Nullsafe Calls ====== | ====== PHP RFC: Nullsafe Calls ====== | ||
- | * Version: | + | * Version: 1.0 |
- | * Date: 2014-10-22 | + | * Date: 2014-12-09 |
* Author: Josh Watzman (jwatzman@fb.com), | * Author: Josh Watzman (jwatzman@fb.com), | ||
- | * Status: | + | * Status: |
* First Published at: https:// | * First Published at: https:// | ||
Line 42: | Line 42: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | ==== Short Circuit ==== | ||
+ | If '' | ||
+ | |||
+ | This is done because it parallels what the ''< | ||
+ | |||
+ | It's worth noting that this point has deep implications for the implementation, | ||
==== Implications ==== | ==== Implications ==== | ||
Line 48: | Line 55: | ||
* If '' | * If '' | ||
* If '' | * If '' | ||
- | * If '' | ||
==== Prior Art ==== | ==== Prior Art ==== | ||
* C#, CoffeeScript, | * C#, CoffeeScript, | ||
+ | * Haskell has the "maybe monad", | ||
* Hack has already implemented a proposal identical to this one. | * Hack has already implemented a proposal identical to this one. | ||
===== Backward Incompatible Changes ===== | ===== Backward Incompatible Changes ===== | ||
- | What breaks, and what is the justification for it? | + | Due to an implementation detail, this decreases the maximum number of arguments a function can be called with from '' |
+ | |||
+ | This is just a technicality... all of my attempts to actually hit that limit put my machine into swapdeath long before I got close :-P | ||
+ | |||
+ | See also "RFC Impact To Existing Extensions" | ||
===== Proposed PHP Version(s) ===== | ===== Proposed PHP Version(s) ===== | ||
- | This is proposed for the next major version of PHP, currently PHP 7. | + | PHP7. |
===== RFC Impact ===== | ===== RFC Impact ===== | ||
- | ==== To SAPIs ==== | ||
- | Describe the impact to CLI, Development web server, embedded PHP etc. | ||
- | |||
==== To Existing Extensions ==== | ==== To Existing Extensions ==== | ||
- | Will existing | + | Extensions have access to an opline' |
- | ==== To Opcache ==== | + | If this impact |
- | It is necessary to develop RFC's with opcache in mind, since opcache is a core extension distributed with PHP. | + | |
- | + | ||
- | Please explain how you have verified your RFC's compatibility with opcache. | + | |
==== New Constants ==== | ==== New Constants ==== | ||
- | Describe any new constants so they can be accurately and comprehensively explained in the PHP documentation. | + | Nothing accessible from outside |
- | + | ||
- | ==== php.ini Defaults ==== | + | |
- | If there are any php.ini settings then list: | + | |
- | * hardcoded default values | + | |
- | * php.ini-development values | + | |
- | * php.ini-production values | + | |
===== Open Issues ===== | ===== Open Issues ===== | ||
Line 85: | Line 84: | ||
===== Unaffected PHP Functionality ===== | ===== Unaffected PHP Functionality ===== | ||
- | This RFC does not change any existing PHP behavior, including the ''< | + | This RFC does not change any existing PHP behavior, including the ''< |
===== Future Scope ===== | ===== Future Scope ===== | ||
Line 94: | Line 93: | ||
===== Patches and Tests ===== | ===== Patches and Tests ===== | ||
- | * php-src: I have a scratch | + | * php-src: I have a branch at https:// |
- | * PHP spec: nothing | + | * PHP spec: not yet, but will do if the RFC is accepted. |
* PHP docs: import Hack's documentation when they add it: https:// | * PHP docs: import Hack's documentation when they add it: https:// | ||
rfc/nullsafe_calls.txt · Last modified: 2020/08/03 10:09 by ilutov