rfc:callable-types

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
rfc:callable-types [2016/05/23 14:11] – Rename to callable prototypes + add voting nikita2206rfc:callable-types [2017/09/22 13:28] (current) – external edit 127.0.0.1
Line 3: Line 3:
   * Date: 2015-08-27   * Date: 2015-08-27
   * Authors: Nikita Nefedov <inefedor@gmail.com>, Márcio Almada <marcio3w@gmail.com>   * Authors: Nikita Nefedov <inefedor@gmail.com>, Márcio Almada <marcio3w@gmail.com>
-  * Status: Voting+  * Status: Declined
   * First Published at: http://wiki.php.net/rfc/callable-types   * First Published at: http://wiki.php.net/rfc/callable-types
  
Line 195: Line 195:
 </code> </code>
  
-Optional parameters count just like any other arguments if they are typed:+Optional parameters count just like any other parameters if they are typed:
 <code php> <code php>
 function foo(callable() $cb) { } function foo(callable() $cb) { }
Line 240: Line 240:
  
 There's no way to declare that you expect a callable that returns reference due to syntax limitations. There's no way to declare that you expect a callable that returns reference due to syntax limitations.
 +
 +==== Parameters with default values ====
 +
 +It's not possible to declare default value of a parameter in a callable prototype. Because currently PHP doesn't consider parameter's default values in signature validation (their invariance is not enforced in overridden methods in classes).
  
 ==== Syntax Choices ==== ==== Syntax Choices ====
Line 462: Line 466:
 Besides that, even with named callable types support, inlined callable types could be a way to keep the type unexposed from public API Besides that, even with named callable types support, inlined callable types could be a way to keep the type unexposed from public API
 while PHP lacks first class packages. while PHP lacks first class packages.
- 
-==== Reflection API ==== 
- 
-An extension to the reflection API will be proposed in case the RFC is approved. 
  
 ===== Votes ===== ===== Votes =====
  
-This RFC requires a 2/3 majority to pass.+This RFC requires a 2/3 majority to pass. Vote started on May 23, 2016, ends June 6, 2016.
  
-<doodle title="Accept callable prototypes properties?" auth="nikita2206" voteType="single" closed="false">+<doodle title="Accept callable prototypes?" auth="nikita2206" voteType="single" closed="true">
    * Yes    * Yes
    * No    * No
rfc/callable-types.1464012696.txt.gz · Last modified: 2017/09/22 13:28 (external edit)